Назад | Перейти на главную страницу

iptables - блокировать входящие на Eth1 и разрешать все от eth0

Я немного застрял с iptables, чтобы иметь дело с двумя портами Ethernet.

Порт eth0 для использования в локальной сети (частный IP-адрес 192.168.1.50).

Порт eth1 подключен к Интернету через кабельный модем (публичный IP-адрес 80.0.xxx.xxx).

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

Я хотел заблокировать весь входящий маршрут до eth1 но разрешить только порт 21. Чтобы внешний IP-адрес не мог получить доступ к нашему веб-серверу, ftp-серверу и т. д. Разрешить только порт 21 для доступа по SSH. Пинг тоже должен работать.

В локальной сети (eth0) любой должен иметь доступ к чему угодно, кроме как заблокировать доступ к серверу 192.168.1.50 локальным IP-адресам 192.168.1.20 и 192.168.1.30.

Как это можно сделать с помощью iptables?

Я хотел заблокировать весь входящий маршрут к eth1, но разрешить только порт 21. Чтобы внешний IP-адрес не мог получить доступ к нашему веб-серверу, ftp-серверу и т.д. Разрешить только порт 21 для доступа по SSH. Пинг тоже должен работать.

Самый простой способ - настроить web / ftp-серверы на прослушивание только внутреннего интерфейса. Таким образом, вам вообще не придется беспокоиться о каких-либо сетевых технологиях.

Если вы не можете этого сделать по какой-либо причине, примените следующие правила:

iptables -A INPUT -i eth1 -p icmp -j ACCEPT           # allow ping
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT # allow SSH
iptables -A INPUT -i eth1 -j DROP                     # drop everything else

(Кстати, порт SSH по умолчанию - 22, но я думаю, вы лучше знаете, где ваш SSH прослушивает.)


В локальной сети (eth0) любой должен иметь доступ к чему угодно, кроме как заблокировать доступ к серверу 192.168.1.50 локальным IP-адресам 192.168.1.20 и 192.168.1.30.

Просто:

iptables -A INPUT -i eth0 -s 192.168.1.20 -j DROP 
iptables -A INPUT -i eth0 -s 192.168.1.30 -j DROP

Это отбрасывает все пакеты с этих хостов. Если вы хотите, чтобы здесь также разрешался пинг, используйте аналогичное правило для icmp, как и для eth1.