PostHeaderIcon Редирект портов

Редирект порта можно сделать разными способами. Рассмотрим парочку.
С помощЬю natd:
В конфиг natd.conf пишем

1
2
3
4
5
6
7
8
9
10
11
# Внешний интерфейс, на котором работает natd
interface rl0
# Пробовать оставить тот же самый порт у исходящих пакетов.
# При таком флаге лучше работают протоколы типа RPC. Если это
# невозможно то порт будет изменён.
same_ports
#nat`ить только частные сети (10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16)
unregistered_only
#Редиректим пакеты по протоколу tcp, приходящие на внешний порт 81
#на машину с адресом 192.168.20.251 на 80-й порт этой машины
redirect_port tcp 192.168.20.251:80 81


На машине 192.168.20.251 в качестве шлюза по умолчанию должна быть прописана машина с натом.
Возможно, потребуется еще сделать редирект udp порта. Делается точно так же, как в примере выше, только tcp меняем на udp.
В rc.conf должно быть прописано

1
2
3
gateway_enable="YES"
natd_enable="YES"
natd_flags="-f /etc/natd.conf"

Если используется фаервол, то должен быть открыт соответствующий порт

1
${FwCMD} add allow tcp from any to 192.168.20.251 80 via ${LanOut}

и

1
${FwCMD} add allow tcp from any to 192.168.20.251 80 via ${LanIn}

Перезагружием машину или перезапускаем natd с соответствующими ключами.
Есть подозрение, что на седьмой ветке сие не заработает. Как вариант, можно попробовать в фаерволе заменить ${LanIn} и ${LanOut} на ${имя_внешнего_интерфейса} и в rc.conf должна быть запись

1
inetd_enable="YES"

Вариант без natd.conf. Пишем следующее в rc.conf:

1
2
3
4
gateway_enable="YES"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-s -u -m -dynamic -redirect_port tcp 192.168.20.251:80 81"

Небольшое дополнение при использовании пассивных портов для proftpd:
В конфиг proftpd нужно вписать диапазон портов для passive mode

1
PassivePorts 8001 8100

В конфиг ната добавляем

1
redirect_port tcp 192.168.20.251:8001-8100 8001-8100

Ну и это тоже впишем в proftpd.conf

1
MasqueradeAddress <внешний_айпи_ната>

Теперь вариант редиректа портов с помощью inetd. Всё предельно просто.
В файл /etc/services прописываем

1
port81     81/tcp

В inetd.conf пишем:

1
port81 stream  tcp  nowait  root  /usr/local/bin/socket socket 192.168.0.1 80

Предполагается, что /usr/ports/sysutils/socket уже установлен.
Перезапускаем inetd.
На этом пока всё. Есть еще варианты проброса портов с помощью rinetd, ipnat, bounce, redir… Но о них в другой раз :)

Оставить комментарий

PR-CY.ru