Как опубликовать локальный сервер через портмаппинг. Проброс портов. DNAT. Port Forwarding. Portmapping.

Skip to end of metadata
Go to start of metadata

Примечание: Эта инструкция подходит только при наличии статического белого адреса на интерфейсе. Для динамических адресов подойдет эта инструкция. Работе проброса портов может мешать опция меню локальной консоли "Конфигурирование сервера - Оптимизация сети - SNAT только указанных локальных сетей".

Задача: Пробросить порт 2254 с внешнего адреса 10.90.180.4 на порт 22 внутреннего ip 192.168.180.10 

     1. У абонента(сервера), на которого делаем портмаппинг, должен быть интернет, поэтому должно выполняться одно из двух условий:

- Абонент является абонентом Carbon Billing

- Для абонента прописаны 2 правила в таблице fw_custom_forward (их можно добавить как через менеджер так и в консоли, а также через ics_tune.sh)

iptables -I fw_custom_forward -s <IP> -j ACCEPT
iptables -I fw_custom_forward -d <IP> -j ACCEPT

     2. Создаем правило портмаппинг (DNAT) также в файле ics_tune.sh

iptables -t nat -I fw_custom_dnat -d 10.90.180.4 -p tcp --dport 2254 -m state --state NEW -j DNAT --to-destination 192.168.180.10:22

Если вы хотите опубликовать другую службу, то вместо 2254 нужно написать порт этой службы, (например, для SMTP это 25). Более подробно о возможностях вы можете узнать почитав про iptables на открытых ресурсах интернета.

Проброс 80 порта не совместим с опцией в локальной консоли "Публиковать локальный сайт на внешних интерфейсах".

      3. При подключении к локальному серверу из локальной сети по внешнему адресу связи не будет. Эту проблему можно решить двумя способами:

      3.1 Создаем еще одно правило чтобы из локальной сети тоже можно было подключаться на внешний IP-адрес: 

iptables -t nat -I fw_custom_snat -s 192.168.180.0/24 -p tcp -d 10.90.180.4/32 --dport 2254 -j SNAT --to-source 1.2.3.4

     В качестве адреса 1.2.3.4(SNAT адреса) может быть задан любой ip, не входящий в ту же сеть что и адрес  абонента(сервера). При этом он может совпадать с адресом на локальной сетевой карте Carbon Billing.

Недостатками этого варианта является то, что будет происходить SNAT соединений абонента, в результате чего исходный адрес абонента будет неизвестен на сервере назначения и наличие дополнительного правила в файрволе.

     3.2 Чтобы этого избежать вместо пункта 3.1 можно настроить так:

- На сервере в локальной сети добавить дополнительный IP-адрес из отдельной непересекающейся сети. (например, если у вас сеть 192.168.180.1/255.255.255.0, то 192.168.0.2/255.255.255.0). Если доступ по существующему IP-адресу в локальной сети не предполагается, то можно просто заменить существующий адрес на новый.

- На локальной сетевой карте сервера Carbon Billing настроить дополнительный IP-адрес из выбранной подсети (например, 192.168.0.1/255.255.255.0).

- Настроить авторизацию по IP для нового IP-адреса (192.168.0.2)

Это означает, что для этого сервера мы выделили отдельную не пересекающуюся подсеть. В идеале для этого нужен отдельный сетевой интерфейс, но в этом конкретном случае такое решение приемлемо.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.