Как опубликовать локальный сервер через портмаппинг. Проброс портов. 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 правила в таблице FORWARD (их можно добавить как через менеджер так и в консоли, а также через ics_tune.sh)

iptables -I FORWARD -s <IP> -j ACCEPT
iptables -I 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). (http://www.ideco-software.ru/forum/default.aspx?g=posts&t=654)

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

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