Escrevendo um firewall simples com o iptables

3

Estou aprendendo como usar o iptables e estou escrevendo um firewall muito simples no Ubuntu.

Usando apenas a tabela de filtros , adicionei as seguintes regras

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

como eu quero deixar passar apenas os pacotes que eu desejo.

Então eu tentei adicionar regras para fazer conexões HTTP simples e, assim, para uma primeira tentativa, adicionei

iptables -A INPUT -p tcp -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

a primeira linha para aceitar todo o tráfego TCP e a segunda para aceitar as respostas do DNS.

Da mesma forma, para a cadeia OUTPUT, adicionei

iptables -A OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

Mas quando tento usar lynx , a conexão não ocorre.

Eu acho que o único problema é o DNS, já que todo o tráfego TCP é aceito. Mas os pacotes de / para a porta 53 podem passar pelo firewall ... então, onde está o problema?

Eu adicionei as duas regras a seguir e agora funciona.

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

e usando o Wireshark, percebi que as solicitações de DNS também são de / para a interface de loopback. Eu nunca imaginei isso ... por quê?

    
por JustTrying 06.11.2012 / 09:44

1 resposta

1

Use apenas iptables-save e reinicie seu computador. Isso fará com que suas configurações do iptables funcionem.

Se você está configurando o firewall, por que você está habilitando todas as portas tcp? Eu preferiria permitir somente portas selecionadas. isto é, para o lince. Eu usaria:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
sudo init 6

Além disso, por que você está usando

sudo iptables -A OUTPUT -j DROP

Isso eliminará todo o tráfego de saída de todas as portas.

    
por s.m 06.11.2012 / 11:19