Tuesday, May 28, 2013

Перенаправление трафика с порта 8080 на 80

Исходные данные:

  • У нас есть выделенный сервер - debian/ubuntu. В моем случае - это Debian Wheezy.
  • На сервере запущен web-контейнер tomcat на котором "крутиться" приложение.
  • web-контейнер запущен от имени обычного пользователя, т.е. порты до 1024 не доступны.
Задача - необходимо настроить перенаправление трафика с портов 8080 на 80 и c 8443 на 443. Говоря иначе, мы по прежнему хотим запускать web-контейнер от имени непривилегированного пользователя(без root привилегий), но чтобы http и https трафик шёл через стандартные для данного протокола порты.

Необходимый софт:

apt-get install iptables-persistent
Во время инсталляции нас любезно попросят сохранить текущую конфигурацию для IPv6 и IPv4. Я лишь сохранил настройки для IPv4. Файл конфигурации:
/etc/iptables/rules.v4
Правила из данного файла будут применяться каждый раз во время загрузки системы. Для перенаправления трафика нужно выполнить следующие команды:
iptables -t nat -A PREROUTING -p tcp --dport 80  -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
Сделав это, мы лишь применяем правила к текущему сеансу - они не я вляются перманентными(не будут восстановлены во время перезагрузки). Поэтому мы поступаем следующим образом... Сохраняем нашу обновленную конфигурацию в rules.v4:
iptables-save > /etc/iptables/rules.v4
Все!

Для того чтобы удалить правила:

sudo iptables -t nat -D PREROUTING -p tcp --dport 80  -j REDIRECT --to-port 8080
sudo iptables -t nat -D PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
Если эти изменения нужно сделать перманентными, необходимо проделать описанные выше шаги для сохранения конфигурации.

Источники:

No comments:

Post a Comment