Yvision.kzYvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
00:13, 07 июля 2016

Проброс портов на роутере TPLINK TD-W8980

В одном офисе имеется простенький роутер, работает он и бед не знает. Но выяснился досадный факт - максимальное число правил проброса портов может быть всего 16 штук. Что по нынешним меркам, совсем мало. Один инсайдер дал намек, что для обхода этого ограничения подойдет решение в виде использования DMZ. Кто такой DMZ, что он делает и откуда он взялся - я нифуя фуя). Хотя вру, про этого зверя я читал в бородатом 2007 году, но знания так и остались в теории, как впрочем и многое другое. Мало читать, надо еще и применять...

Простыми словами о DMZ: Это такой хост внутри локальной сети, которому открыт полный прямой доступ из внешней сети Интернет. Мы можем поднять виртуалку и поместить ее IP адрес в зону DMZ на нашем роутере TPLINK. Тем самым она станет доступна всему интернету по всем портам от 0 до 65535. Разумеется после таких настроек роутера, возможно перестанут работать правила проброса которые прописывались до этого.

В общем, смысл  DMZ в моем случае таков: Я указываю в настройках роутера TPLINK в разделе DMZ адрес внутренней машины, например 192.168.1.100. Далее на этой машине настраивается фаервол iptables и делается проброс портов до нужной машины внутри сети, причем ограничений на создания правил проброса нет. То есть мы можем создать правил больше чем 16.

По сути у нас в локальной сети появляется шлюз на Linux помимо роутера TPLINK.

На самом деле это костыль, проще конечно заменить TPLINK на более лучший аппаратный или программный вариант.

Сам виновник записки:

Blog post image

Картинка 1. Роутер TPLINK TD-W8980

 

Само решение.

Указываем хост который будет доступен из интернета (DMZ) в роутере TPLINK

Blog post image

Я для примера указал 192.168.0.31, на этой машине мы поднимем Linux (CentOS).

Как только подняли Linux, прописываем в нем правила iptables:

Открываем файл /etc/sysconfig/iptables и вписываем правила внизу.

# vi /etc/sysconfig/iptables

:FORWARDING

-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

 

:NAT

-A PREROUTING -p tcp -m tcp --dport 23 -j DNAT --to-destination 192.168.0.126:23
-A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 192.168.0.31
-A POSTROUTING -d 192.168.0.126/32 -p tcp -m tcp --dport 23

# iptables-restore < /etc/sysconfig/iptables

# service iptables save

Здесь мы имеем внутренний хост 192.168.0.126, на котором включен telnet server, эта служба работает на порту 23. Если внешний клиент выполнит команду (123.123.123.123 - это внешний IP роутера TPLINK.):

telnet 123.123.123.123 23

То он попадет на внутренний хост 192.168.0.126.

Далее включаем пересылку трафика через наш хост:

Открываем файл /etc/sysctl.conf и ставим 1.

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

0
1696
0