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

Перенаправление портов Linux на разные IP-адреса

это мой сценарий:

Нетбук (192.168.1.2) ===> (192.168.1.1) Linux Server (192.168.0.4) ===> NAS (192.168.0.2)
Нетбук (192.168.1.2) ===> (192.168.1.1) Linux Server (192.168.0.4) ===> Маршрутизатор (192.168.0.1)

Я хотел бы выполнить переадресацию портов с помощью iptables, чтобы подключиться к NAS и маршрутизатору через порт 80 с помощью моего нетбука. Оба сервера имеют службу на порту 80, поэтому в зависимости от того, что я решаю сделать, иногда я открываю порт 80 на NAS, иногда на маршрутизаторе.

Переадресация IP включена, маскировка тоже.

Это мой файл /etc/iptables.ipv4.nat:

 Generated by iptables-save v1.4.14 on Wed Apr 30 23:02:30 2014  
*nat :PREROUTING ACCEPT [42:14791] :INPUT ACCEPT [31:2623] :OUTPUT ACCEPT [1:48]
:POSTROUTING ACCEPT [1:48]  
-A PREROUTING -i wlan1 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 22  
-A PREROUTING -i wlan1 -p udp -m udp --dport 53 -j REDIRECT --to-ports 53  
-A PREROUTING -i wlan1 -p tcp -m tcp --dport 5901 -j DNAT --to-destination 192.168.0.2:5901  
-A PREROUTING -i wlan1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040  
-A POSTROUTING -o wlan1 -j MASQUERADE COMMIT  
 Completed on Wed Apr 30 23:02:30 2014  
 Generated by iptables-save v1.4.14 on Wed Apr 30 23:02:30 2014  
*filter :INPUT ACCEPT [904:141326] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [946:157235]  
-A FORWARD -d 192.168.0.0/24 -i wlan1 -o wlan0 -p tcp -m tcp --dport 5901 -j ACCEPT  
-A FORWARD -d 192.168.0.0/24 -i wlan1 -o wlan0 -p tcp -m tcp --dport 80 -j ACCEPT COMMIT  
 Completed on Wed Apr 30 23:02:30 2014  

Кроме того, на моем маршрутизаторе (192.168.0.1) у меня есть статический маршрут: сеть 192.168.1.0, подсеть 255.255.255.0, шлюз 192.168.0.4

Причина наличия нескольких сетей / 24 заключается в том, что в сети 192.168.1.0 для всех устройств, подключенных к серверу Linux, работает DHCP-сервер, который действует как точка доступа и маршрутизатор TOR (порт 9040). В то же время на маршрутизаторе 192.168.0.1 работает DHCP-сервер для устройств, подключающихся к маршрутизатору.

Между прочим, переадресация порта для порта 5901 работает как шарм.

Если я не ошибаюсь, почему бы просто не сопоставить разные целевые порты на сервере Linux с портом 80 на внутренних устройствах. Например:

Netbook --> 192.168.1.1:8080 (Linux Server) --> 192.168.0.2:80 (NAS)
Netbook --> 192.168.1.1:8081 (Linux Server) --> 192.168.0.1:80 (Router)

У вас уже есть нужные команды, вам просто нужно установить --dport на другой целевой порт на сервере Linux, указав порт 80 в --to-destination.