Как стать автором
Обновить

IPTables и удаленный доступ в сеть

Время на прочтение2 мин
Количество просмотров4.5K
Итак, сеть настроена, пакеты ходят, интернет работает, права режутся — в общем момент, когда можно перевести дух и заняться «доводкой» сервера для удобства не пользователя, но администратора. А что хочется правильному системному администратору? Конечно же! Чтобы его рабочие обязанности отнимали у него как можно меньше свободного времени. А что для этого служит лучше всего — естественно удаленный доступ.

Сегодня этим уже никого не удивишь — безлимитный интернет есть уже практически у всех, так что доступ к любимому серверу можно получить откуда угодно.

А что делать, если за одним IP-адресом «скрыта» обширная сеть с несколькими серверами, к каждому из которых может понадобиться доступ?
Естественно существует вариант установить что-нибудь вроде Radmin на каждый из них, и использовать один как «перевалочную базу». Однако Radmin не всегда может помочь — нужен полноценный «родной» терминал. Как поступить в таком случае? Нужно просто ввести разницу, на какой порт обращаться.

Немного опишу структуру сети, о которой пойдет речь. Внешний IP — один. Собственно к ADSL-модему подключен «шлюзовой» сервер под управлением Linux, второй интерфейс сервера — подключен в сеть. Интернет раздается на несколько подсетей, в каждой из которых стоит по серверу, на который можно зайти по RDP.

Примем за 192.168.100.1 — адрес внешнего интерфейса шлюзового сервера. eth0 — «внутренний» интерфейс, eth1 — «внешний». 192.168.1.1 — адрес первого сервера, 192.168.2.1 — второго, и т.д.

Я думаю, не стоит подробно описывать процесс правки правил IPTABLES. Поэтому сконцентрируемся на том, как дать доступ извне на несколько серверов.
Для начала нужно пробросить порты с ADSL-модема на сервер. Определяемся сколько нам их нужно. Например, шесть — настраиваем на проброс порты с 3384 по 3389.

Далее, нам нужно лишь обработать пакет, который примет модем, и отправить его на нужный нам сервер:

iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 3385 -j DNAT to-destination 192.168.2.1:3389
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 3386 -j DNAT to-destination 192.168.3.1:3389
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 3389 -j DNAT to-destination 192.168.1.1:3389


iptables -A FORWARD -i eth1 -o eth0 -d 192.168.1.1 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -d 192.168.2.1 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -d 192.168.3.1 -p tcp --dport 3389 -j ACCEPT


Что у нас получается? Если мы запустим RDP-клиент на внешний адрес модема — шлюз пробросит его на нужный сервер внутри сети, ориентируясь по портам. Если укажем адрес подключения без указания порта — подключимся на сервер 192.168.1.1.

Способ не идеальный, но вполне рабочий. А главное простой и не требует каких-либо усилий для реализации.
Благодарю за внимание. Буду рад, если кому-то это пригодится.
Теги:
Хабы:
0
Комментарии11

Публикации

Изменить настройки темы

Истории

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн