Просмотр Исходного

{color:#ff0000}Примечание:{color} Эта инструкция подходит только при наличии статического белого адреса на интерфейсе. Для динамических адресов подойдет [эта инструкция|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=31948802]. Работе проброса портов может мешать опция меню локальной консоли "Конфигурирование сервера - Оптимизация сети - SNAT только указанных локальных сетей".

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

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

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

\- Для абонента прописаны 2 правила в таблице fw_custom_forward (их можно добавить как через менеджер так и в консоли, а также через [ics_tune.sh|http://docs.carbonsoft.ru//pages/viewpage.action?pageId=29032518])
{code}iptables -I fw_custom_forward -s <IP> -j ACCEPT
iptables -I fw_custom_forward -d <IP> -j ACCEPT{code}

&nbsp; &nbsp; &nbsp;*2.* Создаем правило портмаппинг (DNAT) также в файле&nbsp;[ics_tune.sh|http://docs.carbonsoft.ru//pages/viewpage.action?pageId=29032518]

{code}
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
{code}
Если вы хотите опубликовать другую службу, то вместо 2254 нужно написать порт этой службы, (например, для SMTP это 25). Более подробно о возможностях вы можете узнать почитав про iptables на открытых ресурсах интернета.

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

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

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

!Снимок-Редактирование правила-1.png|border=1!

{code}
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
{code}
&nbsp; &nbsp; &nbsp;В качестве адреса 1.2.3.4(SNAT адреса) может быть задан любой ip, не входящий в ту же сеть что и адрес &nbsp;абонента(сервера). При этом он может совпадать с адресом на локальной сетевой карте Carbon Billing.

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



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

\-&nbsp;На сервере в локальной сети добавить дополнительный 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)

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