Запуск OpenMeetings на 80-м порту

Этот пост также доступен в моём ЖЖ

Установил я OpenMeetings на сервере debian. Пока ещё не всё, но сервер поднялся. Беда только в том, что логиниться на него надо по http по порту 5080. А на 80-м порту ничего нет. Не удобно это. Поизучав инструкцию на сайте я резво забрался в указанные там файлы конфигурации и установил порты 80 и 443. После перезапуска сервисы не поднялись. Изучение инструкций и почтовой рассылки привело к пониманию того, что на портах выше 1024 сервис слушать ничего не имеет права, только если его из-под рута запустить. Как они в своей инструкции так просто пишут про изменение порта в конфигах — не понимаю. В результате я сделал перенаправление порта средствами iptables по инструкции. Получился такой скрипт:

#!/bin/bash
EXT_IP="ip моего сервера" # Он всё равно чаще всего один и тот же.
INT_IP="ip моего сервера" # См. выше.
EXT_IF=eth0 # Внешний и внутренний интерфейсы.
INT_IF=eth0 # Для шлюза они вряд ли изменятся, поэтому можно прописать вручную.
FAKE_PORT=80 # Вначале передаём скрипту "неправильный" порт на внешнем интерфейсе,
LAN_IP="ip моего сервера" # затем - локальный адрес сервера
SRV_PORT=5080 # и в конце - реальный порт для подключения к серверу

# Здесь опять надо сделать проверку ввода данных, потому что операции всё ещё серьёзные.

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $FAKE_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT
iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT

Вроде работает…

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.