LINUX.ORG.RU
ФорумAdmin

iptables - разрешить ВПН клиенту подключиться к приложению на локальном интерфейсе

 


0

1

Доброго времени суток, уважаемые форумчане.

Ситуация такая - есть сервер с двумя сетевыми интерфейсами - WAN и LAN. На LAN:80 есть сайт, который доступен только в локалке. На WAN интерфейсе висит openvpn сервер, который пускает пользователя в локалку через тунель. Проблема в том, что пользователь VPN не может подключиться к сайту на LAN:80

Подскажите, пожалуйста, как это исправить, учитывая, что сайт не может быть открыт на WAN интерфейсе?

Мои настройки:

export LAN=eth0
export WAN=eth1
export VPN=tun0

iptables -A INPUT -i $LAN -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD 3 -i $VPN -o $LAN  -j ACCEPT
...



Последнее исправление: pashak (всего исправлений: 3)

Попробуй так

IPTABLES -I POSTROUTING -t nat -d $LAN -j RETURN
Humaxoid
()

Правило FORWARD тут не причем, у вас локальный процесс т.е. цепочка INPUT
iptables -A INPUT -i $VPN -p tcp --dport 80 -j ACCEPT

anc ★★★★★
()
Ответ на: комментарий от PunkoIvan

Вы путаете вариант когда пакет прилетел на машину к локальному процессу и процесс ответил. Это INPUT/OUTPUT.
FORWARD это транзитные пакеты.
Собстно все это доступно написано в iptables tutorial. :)

anc ★★★★★
()
Ответ на: комментарий от pashak

Все гениальное просто. Ваше решение сработало на уре!

Значит, исходные условия задачи описаны неверно - Ваше приложение слушало все интерфейсы, а не только $LAN ;).

Serge10 ★★★★★
()
Ответ на: комментарий от anc

Поможет.Глубоко фиолетово какой интерфейс слушает локальный процесс

Только что проверил на Samba. При соединении телнетом на 139 порт локального интерфейса устанавливается соединение. При попытке соединиться снаружи (при выключенном файрволе) приводит к моментальному сбросу соединения (соединение устанавливается и тут же закрывается). В настройках Samba прописано работать только на локальном интерфейсе.

Так что в общем случае далеко не фиолетово.

Serge10 ★★★★★
()
Ответ на: комментарий от anc

Вы на какой IP подсоединяетесь на внешний или локальный?

На внешний, конечно. Samba слушает локальный адрес на локальном интерфейсе, но не слушает внешний адрес на внешнем интерфейсе.

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

ЧТД. А надо на тот на котором слушает. Разницу видите? В случае сабжа подключаемся на LAN:80 и профит, это локальный процесс поэтому пофигу на каком он интерфейсе. Сколько можно повторять?
ЗЫ Что бы не быть голословным раз уж такое пошло, на всякий случай перепроверил и у себя. Вводные: Локалка -> роутер с двумя внешними интерфейсами. Три варианта
1. named висит на двух внешних интерфейсах, биндинг по ip, но если я обращаюсь к нему из локалки аля host ya.ru $EXT_IP он ответит и цепочку forward это никак не затрагивает
2. IPSec. strongswan висит на одном из внешних интерфейсов, биндинг по имени интерфейса, я подключаюсь по ip внешнего интерфейса из локалки, и цепочка forward тут не участвует.
3. IPSec+L2TP strongswan висит на одном из внешних интерфейсов, биндинг по имени интерфейса, xl2tpd биндинг на ip этого интерфейса. Все тоже самое, я подключаюсь по ip внешнего интерфейса из локалки, и цепочка forward тут не участвует.
Надеюсь так понятнее?

ЗЫ Собственно это старый холивар. Когда некоторые считают что я повесил демона на внутренний ip и мне fw не надо. В целом из инета до вас не достучаться, это верно. Но соседские(по локалке) васяны прописав роутинг до вашей внутренней сети потенциально могут до вас достучаться.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Когда некоторые считают что я повесил демона на внутренний ip и мне fw не надо.

Ну, справедливости ради, я такого не говорил ;). Речь шла о том, что одного разрешения со стороны файрвола мало, нужно еще, чтобы сервис слушал определенный IP. А так да, маршрутизацией можно подобную «защиту» обходить.

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

Ну, справедливости ради, я такого не говорил ;)

Я не о вас, а о других «адептах» подобной защиты :)

Речь шла о том

Речь шла о том, какие цепочки используются для локальных процессов, а какие для транзитных. Вы дважды оспорили момент что тут INPUT не поможет, однако это не верно.

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

Вы дважды оспорили момент что тут INPUT не поможет, однако это не верно.

Не, Вы неправильно меня поняли. В нужности цепочки с input я не сомневался. Речь шла о том, что сервис не слушает нужный IP, поэтому даже устранение FW не поможет. Просто перепутал интерфейсы, которые сервис слушает.

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

Плиз тогда не вводите людей в заблуждение. «А то тут и дети могут быть» :)
UPD Ещё забывают про fe80:: думая что это аналог 127. Слишком большое заблуждение.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.