это мой сценарий:
Нетбук (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
.