Iptables (rc.firewall)
rc.firewall avançado
Categoria: Segurança
Software: Iptables
[ Hits: 20.711 ]
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
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (20)
Alguém pode me ajudar porfavor como executar comandos ao iniciar no i3... (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba