Iptables (rc.firewall)
rc.firewall avançado
Categoria: Segurança
Software: Iptables
[ Hits: 20.912 ]
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
UUID da partição efi mudou, multiboot já era...e agora? (0)