Привет линукс-кун! / iptables :: пидоры помогите (реактор помоги)

пидоры помогите iptables удалённое 

Привет линукс-кун!

Помогите разобраться с iptables. 

Есть такая схемка:

X.X.X.5: PORT GROUP,пидоры помогите,реактор помоги,iptables,удалённое

Как правильно написать редирект группы портов (условно, с 15000 до 15100) на VPN клиента за Ubuntu сервером/VPN сервером при переходе на паблик IP сервера с этими портами. 

Перепробывал кучу вариантов FORWARD/PREROUTING/POSTROUTING правил но что-то не получилось. 

VPN клиенты видят сервер, видят друг-друга, VPN сервер видит клиентов. Тут все ок.

пидоры помогите,реактор помоги,iptables,удалённое


Подробнее
X.X.X.5: PORT GROUP

пидоры помогите,реактор помоги,iptables,удалённое
Еще на тему
Развернуть
если впн-клиент не имеет шлюзом по умолчанию впн-сервер, то нужно делать два правила - dnat (для проброса порта) и snat (для маскировки внешнего ip пришедшего с интернета локальным для впн-клиента)
Пробывал вот так (для одного порта):

#Разрешаем входящие подключения на 15000
iptables -A FORWARD -i eth0 -p tcp --dport 15000 -j ACCEPT

# Форвардинг 15000 eth0
iptables -t nat -A PREROUTING -p tcp -d Y.Y.Y.Y --dport 15000 -j DNAT --to-destination X.X.X.1:15000
iptables -t nat -A POSTROUTING -p tcp -d X.X.X.1 --dport 15000 -j SNAT --to-source Y.Y.Y.Y

#Разрешаем входящие подключения на 15000
iptables -A FORWARD -i ppp0 -p tcp --dport 15000 -j ACCEPT

# Форвардинг 15000 ppp0
iptables -t nat -A PREROUTING -p tcp -d X.X.X.1 --dport 15000 -j DNAT --to-destination X.X.X.5:15000
iptables -t nat -A POSTROUTING -p tcp -d X.X.X.5 --dport 15000 -j SNAT --to-source X.X.X.1

Но оно не работает.
У тебя Y.Y.Y.Y это интерфейс убунту смотрящий в интернет или адрес откуда прилетает ? Должен быть интрефейс убунту смотрящий в инет
Да, Y.Y.Y.Y это интерфейс убунту смотрящий в интернет
iptables -t nat -A PREROUTING -p tcp -d Y.Y.Y.Y --dport 15000 -j DNAT --to-destination X.X.X.5:15000
iptables -t nat -A POSTROUTING -p tcp -d X.X.X.5 --dport 15000 -j SNAT --to-source Y.Y.Y.Y
тада поидее как то так
и надо поидее
iptables -t nat -A POSTROUTING -o eth0 -s X.X.X.0./24 -j MASQUERADE
прописать что бы работало
Уже прописано
что-то перемудрили с форвардом. пробрасываем порт

iptables -t nat -A PREROUTING -p tcp -d Y.Y.Y.Y --dport 15000 -j DNAT --to-destination X.X.X.5:15000
потом SNAT-им (и прячем за локальный впн-адрес)
iptables -t nat -A POSTROUTING -p tcp -d X.X.X.5 --dport 15000 -j SNAT --to-source X.X.X.1
Спасибо заработало, действительно перемудрил с форвардом)

И последний вопрос в правиле построутинга почему указывается --to-source X.X.X.1, а не Y.Y.Y.Y. (С Y.Y.Y.Y, кстати не работает)
не почему-то, а по packet flow.
смотрите. от чувака в инете с адресом допустим 1.1.1.1 приходит запрос на адрес Y.Y.Y.Y (srcip 1.1.1.1, dstip Y.Y.Y.Y). убунта такая - ок, у меня есть dnat правило, и меняет dstip на X.X.X.5. далее включается маршутизация, смотрит таблицу - ага, X.X.X.5 у нас на интерфейсе ppp0 как link-local, шлём туды (итого, пакет ушёл в ppp0, с src-ip 1.1.1.1 и dstip Х.Х.Х.5). это после правила dnat.

далее, впн-клиент X.X.X.5 получает такой пакет, и формирует на него ответ (получается srcip Х.Х.Х.5 и dstip 1.1.1.1), пакет отдаётся маршрутизации.. а Х.Х.Х.1 не является шлюзом по-умолчанию! и пакет уходит в шлюз интернета, клиент валидного ответа ессно не получает.

для этого мы добавляем правило snat. оно на убунте после принятия решения о маршрутизации подменяет srcip, и пакет уходит в ppp0 с srcip X.X.X.1 и dstip Х.Х.Х.5. впн-клиент получает такой пакет, отвечает на него согласно своей таблице маршрутизации (X.X.X.1 для него линк-локал), и поэтому ответный пакет приходит на убунту обратно, и обратными правилами возвращается до клиента в инете. это всё вы можете проверить, запустив сниффер на убунте и на впн-клиенте.

из минусов - на впн-клиенте вы не увидите реальный ip клиента, увидите именно Х.Х.Х.1. поэтому логи надо будет вести на убунте.
альтернативно - вам на впн-клиенте нужно будет настраивать маркировку трафика (mangle), и таблицы маршрутизации, чтобы ответы на входящие на х.х.х.5 пакеты уходили на х.х.х.1.
или сделать на впн-клиенте х.х.х.1 шлюзом по умолчанию.

надеюсь расписал понятно.
Спасибо за подробности.
Более чем понятно)

Ни в одной из статей, никто так подробно не объяснил...
"это же очевидно" :D я думаю, что вы сами поняли бы процесс и проблему, если бы послушали трафик tcpdump-ом (или ваершарком) на всех участках пути (eth0 бубунты, ppp0 бубунты, и ppp0 впн-клиента), не стесняйтесь им пользоваться в дебаге, это только с виду страшно :)
PS про решение подобной задачи люблю спрашивать на собеседовании ;)
По старой доброй традиции, я бы посоветовал спросить в фэндоме Аниме
там спецы по фряхе и pf соответственно, кстати, под линям я бы тоже его юзал - более логичнее таблиц имхо
bukiko bukiko 11.06.202116:24 ответить ссылка 0.5
Не спец по iptable, но судя по ответам отсюда https://serverfault.com/a/1017016 может быть
а) не разрешён проброс портов
б) порты закрыты фаерволом (ufw в бубунте)
wasd123i wasd123i 11.06.202115:13 ответить ссылка 1.3
плюсую , у самого бывало пол дня настраиваю а только потом понимаю , что не включен был портфорвардинг, ну и маскарад забывать не стоит
ipv4 форвардинг включен
ufw выключен

Спасибо за суперскую ссылку, пойду перечитаю...
вроде надо сначало сделать NAT
iptables -t nat -A POSTROUTING -s X.X.X.0/xx -o eth0 -j SNAT --to-source Y.Y.Y.Y
а потом пробросить
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 15000 -j DNAT --to-destination X.X.X.5
Все больше убеждаюсь, что если спросить у глубокоуважаемых пидоров реактора как сделать вечный двигатель или взрастить единорога - то даже на эти вопросы кто-то, да ответит.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
КУПОН
НА 1 помощь КУПОН
НА 1 помощь