Я пытаюсь настроить сервер человечности 14.04 как маршрутизатор, который также делает некоторое перенаправление портов. Я имею работу части маршрутизатора, но не могу ни за что в жизни выяснить, почему перенаправление портов не работает. Я прошел следующие шаги, при этом целью был передающий трафик SMTP и трафик HTTP к серверам на частной подсети:
/etc/ufw/sysctl.conf
DEFAULT_FORWARD_POLICY="ACCEPT"
Добавленный следующие строки к /etc/ufw/before.rules
(попробованный и прежде и после *фильтруют раздел):
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -p tcp -i eth0 --dport 25 -j DNAT --to-destination 10.16.0.51:25 -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 10.16.0.20:80 -A POSTROUTING -s 10.16.0.0/24 -o eth0 -j MASQUERADE COMMIT
Добавленный следующие строки к *filter
раздел /etc/ufw/before.rules
(согласно примеру здесь):
-A PREROUTING -p tcp -i eth0 --dport 25 -j DNAT --to-destination 10.16.0.51:25 -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 10.16.0.20:80
Добавленные правила UFW:
To Action From -- ------ ---- 10.16.0.5 22 ALLOW 10.10.20.0/24 10.16.0.51 25 ALLOW [Public IP on eth0] 10.16.0.20 80 ALLOW [Public IP on eth0]
Я проверил журналы UFW, и они показывают, где это позволяет трафик через брандмауэр, но я предполагаю, что это - то, где это останавливается. Я следовал руководствам и примерам на всевозможных сообщениях и потоках, и по любой причине просто не передается трафик.
Если это помогает, я сделал iptables -t nat -L -v
:
Chain PREROUTING (policy ACCEPT 1600 packets, 202K bytes)
pkts bytes target prot opt in out source destination
1 60 DNAT tcp -- eth0 any anywhere anywhere tcp dpt:smtp to:10.16.0.51:25
1 60 DNAT tcp -- eth0 any anywhere anywhere tcp dpt:http to:10.16.0.20:80
Chain INPUT (policy ACCEPT 4 packets, 770 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 20 packets, 1430 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 22 packets, 1550 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- any eth0 10.16.0.0/24 anywhere
Из того, что я могу сказать, что это должно работать. Что еще я могу проверить? Я пропускал какие-либо шаги? Есть ли какие-либо инструменты, которые я могу использовать, чтобы попытаться выяснить то, что могло бы продолжаться? Любая справка или совет значительно ценятся.Спасибо.
Проблема связана с сетевой маршрутизацией. Я пытался установить своего рода DMZ, поэтому у меня были серверы, указывающие на внутренний маршрутизатор. Шлюз мог пинговать сервер, но я думаю, он не знал, как маршрутизировать трафик smtp или http. Изменение почтового и веб-серверов для указания на шлюз ubuntu устранило проблему с маршрутизацией, и пересылка начала работать.