gateway debian usando iptables

1

Estou tendo problemas para configurar um servidor gateway da Debian. Meu objetivo:

  • Ter eth1 da interface da WAN.
  • Ter eth0 da interface da LAN.
  • Permitir as duas portas 22 (SSH) e 80 (HTTP) acessadas do mundo externo no gateway (SSH e HTTP executados neste servidor).

O que eu fiz foi o seguinte:

  • Crie um arquivo /etc/iptables.rules com o conteúdo:

/etc/iptables.rules:

*nat
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT

*filter
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -j DROP
COMMIT
  • edite / etc / network / interfaces da seguinte forma:

/ etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback
pre-up iptables-restore < /etc/iptables.rules

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

#auto eth1
#allow-hotplug eth1
#iface eth1 inet dhcp

allow-hotplug eth1
iface eth1 inet static
address 217.119.224.51
netmask 255.255.255.248
gateway 217.119.224.49
dns-nameservers 217.119.226.67 217.119.226.68
  • Remova o comentário da regra net.ipv4.ip_forward=1 in /etc/sysctl.conf para permitir o encaminhamento de pacotes.

As configurações estáticas para eth1, como o endereço IP que recebi do meu roteador (que eu quero substituir); Eu simplesmente copiei isso.

  • Eu tenho um servidor DNS (DNS) + DHCP no endereço IP 10.180.1.10, que atribui o endereço IP 10.180.1.44 a eth0. O que esse servidor faz não é realmente interessante, ele apenas mapeia nomes de domínio em nossa rede local e atribui um ip estático ao gateway.

  • What works : no próprio gateway, posso pingar 8.8.8.8 e google.nl . Então isso é ok.

  • What does not work : (1) Toda máquina conectada a eth0 (indiretamente por meio de um switch) não pode fazer o ping de um ip ou de um domínio. Então eu acho que o gateway não pode ser encontrado. (2) Além disso, quando eu configuro minha máquina linux (um laptop) para usar um ip estático 10.180.1.41, uma máscara e um gateway (10.180.1.44) eu também não consigo pingar um ip ou domínio.

Isso significa que talvez meus iptables estejam incorretos de não serem carregados corretamente. Ou talvez eu tenha que configurar meu DNS / DHCP na minha máquina Windows. Eu não reiniciei a rede do Windows, reinicie os serviços DNS / DHCP, devo fazer isso?

  • Eu não instalei dnsmasq como descrito aqui: link . Eu não acho que isso seja necessário?
por meijuh 31.10.2013 / 14:11

1 resposta

1

Você também deve permitir o tráfego FORWARD em suas regras de firewall, isto é, permitir que os pacotes da eth0 entrem na eth1 e retornem. Algo como

-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

E lembre-se: traceroute é seu amigo para solucionar problemas de rotas ...

    
por 31.10.2013 / 16:29