Мне срочно нужна помощь прямыми примерами, а не словами. Поскольку я работаю с FreeBSD с версии 4.2, меня устраивает pf (фильтр пакетов), но теперь у меня есть проект по созданию модуля веб-панели для OpenVZ в Linux.
Админка готова на 95%, но я застрял. Я понял, что каждую виртуальную машину нужно перенаправить на другой порт. И дело в том, что его нужно перенаправить на локальный IP. У них только 1 сетевая карта и только 1 общедоступный IP-адрес, поэтому они будут использовать для каждой виртуальной машины локальный IP-адрес.
Скажем:
Мы создаем виртуальную машину 101 с локальным IP 192.168.199.105 для прослушивания SSH на порте 5050, и у нас есть общедоступный IP 88.252.14.32. Как настроить IPTABLES для пересылки ssh-запросов с 88.252.14.32:5050 на 192.168.199.105:5050?
Сервер имеет NAT, и для Apache это просто с vhost, но для SSH - не знаю, как это сделать. Прошу помощи прямыми примерами, а не словами. Спасибо.
Вы можете попробовать прочитать этот учебник. Он описывает iptables
хорошо. По вашему вопросу вы можете использовать правила ПЕРЕДАЧИ в nat
стол. Это будет выглядеть так:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5050 -j DNAT --to-destination 192.168.199.105:5050
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Вы должны изменить eth0 на имя вашего интерфейса.