Как опубликовать локальный сервер через портмаппинг. Проброс портов. 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


Если вы хотите опубликовать другую службу, то вместо 2254 нужно написать порт этой службы, (например, для SMTP это 25). Проброс 80 порта не совместим с опцией в локальной консоли "Публиковать локальный сайт на внешних интерфейсах".

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

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

     В качестве адреса 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)

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

Скриншот результата

Здесь в зависимости от настроек вашей сети изменяются следующие параметры:

  • 10.90.180.4 - внешний IP адрес Carbon Billing
  • 192.168.180.10 - внутренний IP адрес публикуемого сервера
  • 2254 - порт, на котором сервер публикуется для доступа извне
  • 22 - порт, на котором слушает сервер в локальной сети, в данном случае это SSH

После этого извне к публикуемому серверу можно подключиться следующим образом: 

ssh root@10.90.180.10 -p 2254, не имея доступа к сети 192.168.80.0/24 

Второй вариант проброса порта через менеджер

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