Iptables

De Fórum Debian Wiki


Índice de conteúdo


Introdução

Essa página contem um simples exemplo de como manter um firewall bem básico para uma máquina com uma placa de rede usando o Netfilter / Iptables.

Regras

Salve esse arquivo como /etc/firewall.sh

#!/bin/sh
# Um script IPtables / Netfilter muito simples.
# por Lucas Saliés Brum, <lucas@sistematico.org>
# Original em: http://wiki.debian.org/DebianFirewall

PATH='/sbin' # Caminho do Iptables
INET='wlan0' # Interface conectada a um router, ou diretamente a Internet
LOCAL='10.0.0.0/24' # Faixa de IPs locais, você pode usar o formato 10.0.0.0/24 ou 10.0.0.2
LOOP='127.0.0.0/8' # Faixa de IPs de loopback, você pode usar o formato 127.0.0.0/8 ou 127.0.0.1

# Limpa as regras para aplicar mudanças
iptables -F
iptables -X
iptables -Z

# Política padrão, dropar tudo, exceto o tráfego de saída
iptables -P FORWARD DROP
iptables -P INPUT   DROP
iptables -P OUTPUT  ACCEPT

# Permite conexões estabilizadas(que respondem ao tráfego de saída)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Permite que programas locais usem o loopback(soquetes Unix)
iptables -A INPUT -s $LOOP -d $LOOP -i lo -j ACCEPT

# Comente/Descomente para proibir/permitir conexões de entrada
# Locais
iptables -A INPUT -s $LOCAL -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -s $LOCAL -p tcp --dport 5900 -m state --state NEW -j ACCEPT
# Internet
iptables -A INPUT -i $INET -p tcp --dport 80 -m state --state NEW -j ACCEPT

Uso

Para executar o script, rode o seguinte comando como root:

sh /etc/firewall.sh

Automatizando

Executar o comando acima sempre que conectar pode ser um pouco trabalhoso. Portanto você pode criar o arquivo /etc/network/if-pre-up.d/iptables com o seguinte conteúdo:

#!/bin/bash
if [ -x '/etc/firewall.sh' ]
then
    /bin/sh '/etc/firewall.sh'
fi

Depois de a esse arquivo a permissão de execução:

chmod 755 /etc/network/if-pre-up.d/iptables

Em seguida dê a mesma permissão para o script:

chmod 755 /etc/firewall.sh

Toda vez que quiser desativar o Firewall é só remover a permissão de execução:

chmod 644 /etc/firewall.sh

Assim, da próxima vez que você se conectar o Firewall não será ativado.

Créditos

Criei essas regras com base em muitas regras, porem com foco nessa página: http://wiki.debian.org/DebianFirewall

Ferramentas pessoais