iptables bloqueando do lado da internet na eth1?

2

Como usar o iptables para lidar com duas portas Ethernet?

porta eth0 para uso de rede local (192.168.1.50 IP privado).

A porta eth1 está conectada à internet via modem a cabo (IP público 80.0.xxx.xxx).

ifconfig outout:

eth0      Link encap:Ethernet  HWaddr 00:19:99:C1:86:BB
          inet addr:192.168.1.50  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:137532 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55658 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:99968969 (95.3 MiB)  TX bytes:10403525 (9.9 MiB)
          Interrupt:50 Memory:fe700000-fe720000

eth1      Link encap:Ethernet  HWaddr 00:19:99:C1:61:3B
          inet addr:80.0.xxx.xxx  Bcast:255.255.255.255  Mask:255.255.252.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:144558 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70347 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:34500131 (32.9 MiB)  TX bytes:27893843 (26.6 MiB)
          Interrupt:177 Memory:fe600000-fe620000

Como usar o iptables para bloquear toda a rota de entrada para eth1 , mas somente a porta 22. Para que o lado da Internet não possa acessar nosso servidor web, servidor FTP, etc. Somente permita a porta 22 para acesso SSH. Ping também deve funcionar.

Na rede local ( eth0 ), existem mais de 70 PCs clientes - Eles devem poder acessar qualquer coisa no servidor, mas apenas bloquear os ip locais 192.168.1.20 e 192.168.1.30 de acesso a 192.168.1.50 ( ip privado).

Como isso pode ser feito usando o iptables?

    
por I'll-Be-Back 05.02.2013 / 23:33

2 respostas

3

Você pode usar -i device e -o device para corresponder aos dispositivos ethernet. Por exemplo,

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT # must allow machine to talk to itself, else much breakage.
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Ou similar. Você também pode usar -s / -d para filtrar o endereço IP de origem e destino.

Sugiro nomear suas interfaces Ethernet para que você possa ter -i lan & -i wan em vez disso. Você pode nomeá-los em suas regras do udev. No Debian, você editaria /etc/udev/rules.d/70-persistent-net.rules .

PS: Ao filtrar sua interface WAN, verifique se o DHCP ainda funciona, se você estiver usando. Senão sua conexão irá misteriosamente quebrar quando a concessão expirar, o que pode demorar um pouco mais tarde.

    
por 06.02.2013 / 01:00
-1

Cuidado !!

Você mencionou a abertura da porta 21 para o ssh. Uso padrão para a porta 21 é ftp; a porta 22 é o ssh padrão. Embora seja possível (e às vezes desejável) usar uma porta ssh não padrão, se você esquecer (ou esquecer de contar para outros usuários), você ficará com muita dor de cabeça.

Dito isto, uma coleção de exemplos de iptables comumente usados pode ser encontrada aqui.

link

Referência de IPTables mais generalizada:

link

    
por 05.02.2013 / 23:52