LINUX.ORG.RU
ФорумAdmin

iptables и проброс портов

 , ,


1

1

Всем привет! Задача: есть сервер с внешним интерфейсом eth0 (ip - 95.17.248.226) и openvpn интерфейсом tap0 (10.8.0.1) - виртуальная локалка. Есть машина с tap0 (ip 10.8.0.2) на которой висит сайт. Необходимо пробросить порт 80 с сервера на машину в локалке. Решение:

iptables -t nat -I PREROUTING --dst 95.17.248.226 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.0.2:80

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 95.17.248.226

Не работает: страница бесконечно грузится и выдает ошибку (time out). Что я делаю не так?

Ответ на: комментарий от anton_jugatsu
cat /etc/iptables-save
# Generated by iptables-save v1.4.12 on Thu May  2 08:56:49 2013
*filter
:INPUT ACCEPT [12407:3810863]
:FORWARD ACCEPT [9:540]
:OUTPUT ACCEPT [8950:1076330]
[764:45788] -A FORWARD -d 10.8.0.2/32 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
[0:0] -A FORWARD -d 10.8.0.2/32 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
[0:0] -A FORWARD -d 10.8.0.2/32 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Thu May  2 08:56:49 2013
# Generated by iptables-save v1.4.12 on Thu May  2 08:56:49 2013
*nat
:PREROUTING ACCEPT [1733:199433]
:INPUT ACCEPT [1033:156652]
:OUTPUT ACCEPT [1557:99176]
:POSTROUTING ACCEPT [24:1388]
[2:120] -A PREROUTING -d 95.17.248.226/32 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.8.0.2:22
[35:2048] -A PREROUTING -d 95.17.248.226/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.0.2:80
[0:0] -A PREROUTING -d 95.17.248.226/32 -p udp -m udp --dport 80 -j DNAT --to-destination 10.8.0.2:80
[1577:100438] -A POSTROUTING -o eth0 -j SNAT --to-source 95.17.248.226
COMMIT
# Completed on Thu May  2 08:56:49 2013
Strannik-j ★★ ()

Если для 10.8.0.2 default gateway это 10.8.0.1, то SNAT не нужен и даже вреден.

Про ошибку "-o eth0" уже сказали.

Проброс (ip_forward) пакетов между интерфейсами разрешен?

anonymous ()
Ответ на: комментарий от anonymous

Впрочем правило -A POSTROUTING -o eth0 -j SNAT --to-source 95.17.248.226 к делу не относится, это стандартный SNAT (маскарадинг) для выхода в Интернет.

anonymous ()
Ответ на: комментарий от beastie

Ты меня сбил с мысли. На -o tap0 был бы --to-destination 10.8.0.1

anonymous ()
Ответ на: комментарий от anonymous

для 10.8.0.2 default gateway другой (в интернет она выходит через свой eth0), tap0 только для проброса сайта.

Всё это затеялось потому, что 10.8.0.2 находится за NAT'ом, поэтому был куплен маленький VDS для OpenVPN.

Strannik-j ★★ ()
Ответ на: комментарий от Strannik-j

Твоя проблема теперь будет в том, что в логах веб-сервера все запросы будут с 10.8.0.1, т.е. реальных клиентов ты видеть не будешь.

Я бы на этот 10.8.0.1 повесил бы фронтендом какой-нибудь nginx с перенаправлением запросов на 10.8.0.2

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.