Iptables (rc.firewall)
rc.firewall avançado
Categoria: Segurança
Software: Iptables
[ Hits: 20.932 ]
Por: Eduardo Vieira Mendes
Script de firewall com iptables bem comentado e de fácil utilização.
Instalação no slackware:
Copie-o para a pasta /etc/rc.d/
# cp rc.firewall /etc/rc.d
Transforme-o em executável:
# chmod +x /etc/rc.d/rc.firewall
e pronto.
Na próxima inicialização do sistema ele estará rodando.
O uso é bem simples: Se não é passado nenhum parâmetro ele inicia o firewall.
Os parâmetros são:
start - inicia
stop - para
restart - reinicia
Espero que gostem.
Abraços
#!/bin/sh ############################################ # rc.firewall # Criado por: # Eduardo Vieira Mendes # eduardovmendes@gmail.com # LUS: 298813 # Uso: rc.firewall start|stop|restart ############################################ firewall_start() { echo "===========================================" echo "| :: SETANDO A CONFIGURAÇÃO DO IPTABLES :: |" echo "===========================================" # Limpa as regras iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD echo "Limpando todas as regras .................[ OK ]" # Definindo a política default das cadeias iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT echo "Setando as regras padrão .................[ OK ]" # Desabilitando o tráfego IP echo "0" > /proc/sys/net/ipv4/ip_forward echo "Setando ip_foward ........................[ OK ]" # Configurando a proteção anti-spoofing for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do echo "1" > $spoofing done echo "Setando a proteção anti-spoofing .........[ OK ]" # Impedindo que um atacante possa maliciosamente alterar alguma rota echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects echo "Setando anti-redirecionamento ............[ OK ]" # Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu # pacote vai percorrer (roteadores) até seu destino. Junto com spoof, isso se torna muito perigoso. echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo "Setando anti_source_route.................[ OK ]" # Proteção contra responses bogus echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo "Setando anti-bogus_response ..............[ OK ]" # Proteção contra ataques de syn flood (inicio da conexão TCP). Tenta conter ataques de DoS. echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo "Setando proteção anti_synflood ...........[ OK ]" # Carregando os modulos do iptables modprobe ip_tables modprobe iptable_filter modprobe iptable_mangle modprobe iptable_nat modprobe ipt_MASQUERADE echo "Carregando módulos do iptables ...........[ OK ]" # Agora, vamos definir o que pode passar e o que não pode # Cadeia de entrada # LOCALHOST - ACEITA TODOS OS PACOTES iptables -A INPUT -i lo -j ACCEPT # PORTA 80 - ACEITA PARA A REDE LOCAL iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # PORTA 22 - ACEITA PARA A REDE LOCAL iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # No iptables, temos de dizer quais sockets são validos em uma conexão iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT echo "Setando regras para INPUT ................[ OK ]" ################################ # Cadeia de reenvio (FORWARD). # Primeiro, ativar o mascaramento (nat). iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo "Ativando mascaramento de IP ..............[ OK ]" # Agora dizemos quem e o que pode acessar externamente # No iptables, o controle do acesso a rede externa e feito na cadeia "FORWARD" # PORTA 3128 - ACEITA PARA A REDE LOCAL iptables -A FORWARD -i eth0 -p tcp --dport 3128 -j ACCEPT # PORTA 53 - ACEITA PARA A REDE LOCAL iptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT # PORTA 110 - ACEITA PARA A REDE LOCAL iptables -A FORWARD -i eth0 -p tcp --dport 110 -j ACCEPT # PORTA 25 - ACEITA PARA A REDE LOCAL iptables -A FORWARD -i eth0 -p tcp --dport 25 -j ACCEPT # PORTA 21 - ACEITA PARA A REDE LOCAL iptables -A FORWARD -i eth0 -p tcp --dport 21 -j ACCEPT # No iptables, temos de dizer quais sockets são válidos em uma conexão iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT echo "Setando regras para FOWARD ...............[ OK ]" # Finalmente: Habilitando o trafego IP, entre as Interfaces de rede echo "1" > /proc/sys/net/ipv4/ip_forward echo "Setando ip_foward: ON ....................[ OK ]" echo "Firewall configurado com sucesso .........[ OK ]" echo } firewall_restart() { firewall_start } firewall_stop() { echo "===========================================" echo "| :: DESLIGANDO FIREWALL :: |" echo "===========================================" # Limpa as regras iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD echo "Limpando todas as regras .................[ OK ]" } case "$1" in 'start') firewall_start ;; 'stop') firewall_stop ;; 'restart') firewall_restart ;; *) firewall_start esac
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux não é para todo mundo (6)
Dificuldade para renderizar vídeo no kdenlive (8)