Я искал в Интернете ответ на утро, но я не могу заставить его работать. Если вы можете мне помочь, я был бы благодарен.iptables forward port over two eth cards
моя установка: сервер: eth1: 192.168.6.2 (подключен к Интернету -> WAN) eth0: 192.168.0.1 (LAN)
локальный компьютер: работает сервис по порту 8848, работающий на IP номер 192.168.0.3
Все плотно закрыто с IPtables так, чтобы люди в доме не могут получить доступ к локальной сети (192.168.0.x) и LAN использует Интернет через eth1:
### Set Variables
IPTABLES='/sbin/iptables -v'
WAN='eth1'
LAN='eth0'
#EXTERNAL_INTERFACE=WAN
#EXTERNAL_IP=WAN_IP
WAN_IP=$(ifconfig $WAN | grep 'inet[^6]' | sed 's/[a-zA-Z:]//g' | awk '{print $1}')
LAN_IP=$(ifconfig $LAN | grep 'inet[^6]' | sed 's/[a-zA-Z:]//g' | awk '{print $1}')
echo '########################################################## NAT config WAN <=> LAN #'
$IPTABLES -t nat --append POSTROUTING --out-interface $WAN --jump MASQUERADE
$IPTABLES --append FORWARD --in-interface $WAN --out-interface $LAN -m state --state RELATED,ESTABLISHED --jump ACCEPT
$IPTABLES --append FORWARD --in-interface $LAN --out-interface $WAN --jump ACCEPT
echo '############################### Allow unlimited traffic on the loopback interface #'
$IPTABLES --append INPUT --in-interface lo --jump ACCEPT
$IPTABLES --append OUTPUT --out-interface lo --jump ACCEPT
$IPTABLES --append INPUT --in-interface $LAN --jump ACCEPT
$IPTABLES --append OUTPUT --out-interface $LAN --jump ACCEPT
echo '################################################ Allow unlimited outbound traffiC#'
# Previously initiated and accepted exchanges bypass rule checking
$IPTABLES --append INPUT -m state --state ESTABLISHED,RELATED --jump ACCEPT
$IPTABLES --append OUTPUT -m state --state NEW,ESTABLISHED,RELATED --jump ACCEPT
Сервер (LAN 192.168.0.1 и WAN 192.168.6.2) запускает Apache, открывая, что один для WAN работает отлично (протестирован), и я могу получить доступ к веб-сайтам, подключающимся к 192.168.6.2 через IP-номер в диапазоне 192.168.6. х:
$IPTABLES --append INPUT --proto tcp --source 0/0 --dport 80 -m state --state NEW --jump ACCEPT
так что я открыл порт 8848 первый:
$IPTABLES --append INPUT --proto tcp --source 0/0 --dport 8848 -m state --state NEW --jump ACCEPT
Тогда я застреваю .. Я пробовал все, но я не могу найти решение для доступа к сервису по порту 8848 на 192.168.0.3 через 192.168.6.2 (команды, содержащие FORWARD, PREROUTING, POSTROUTING, MASQUERADE, DNAT nat)
Вы можете мне помочь?
[править] Чтобы завершить весь Баш скрипт, после установки переменной LAN и WAN я вымыться с:
echo '####################################################################### clear all #'
$IPTABLES --flush
$IPTABLES --delete-chain
for TABLE in filter nat mangle; do
$IPTABLES --table $TABLE --flush # delete the table's rules
$IPTABLES --table $TABLE --delete-chain # delete the table's chains
$IPTABLES --table $TABLE --zero # zero the table's counters
done
И я заканчиваю мой Баш скрипт с:
echo '############################################################ Set default policies #'
$IPTABLES --policy INPUT DROP
$IPTABLES --policy OUTPUT DROP
$IPTABLES --policy FORWARD ACCEPT
echo '########################### Have these rules take effect when iptables is started #'
/sbin/service iptables save
/sbin/service iptables restart`
[ANSWER/SOLUTION]
С благодарностью this page Я, наконец получил это работает робастно:
echo '################################################################# Port forwarding #'
FROM_PORT='8848'
TO_PORT='8848'
TO_IP='192.168.0.3'
$IPTABLES -t nat -A PREROUTING -p tcp -d $WAN_IP --dport $FROM_PORT -j DNAT --to-destination $TO_IP:$TO_PORT
$IPTABLES -t nat -A POSTROUTING -p tcp -d $TO_IP --dport $TO_PORT -j SNAT --to-source $WAN_IP
Спасибо @Copche за ответ, я пробовал это, без радости. также localy (192.168.0.x) Я могу видеть эту услугу через: https://192.168.0.3:8848/ –
Но вы заставили меня думать о чем-то другом! Я тестировал, могу ли я подключиться к 192.168.0.3:8848 через другой компьютер в локальной сети, вывод был о том, что брандмауэр Windows заблокировал внешние подключения! Спасибо, теперь он работает только с вашей единственной линией! –
Вы бы были моим героем, если бы вы могли рассказать мне, как сделать то же самое, но также и с другого порта (скажем, 5432 WAN) до 8848 LAN –