GATE

Редакция автор: stain

Простой шлюз на Debian

совсем по простому по этой ссылке, ниже если честно черновуха

 

Задача - сделать простой шлюз на Debian, с пробросом некоторых портов с внешнего IP-адреса.

eth0 - внешний интерфейс, смотрящий в интернет. eth1 - внутренний интерфейс, смотрящий в локальную сеть. 10.120.36.14 - внешний IP-адрес. 192.168.0.12 - адрес веб-сервера. 192.168.0.50 - адрес Windows сервера терминалов.

Разрешим маршрутизацию трафика, выполнив команду:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Теперь отредактируем /etc/sysctl.conf, раскомментовав, и поправив строку:

#net.ipv4.ip_forward=0

на

net.ipv4.ip_forward=1

Применить настройку можно командой:

sysctl -p

Очистим все правила в iptables:

# iptables -F

Укажем шлюзу куда нужно перенаправлять трафик, пришедший для пользователей внутренней сети:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Теперь зададим правило, которое укажет как перенаправлять запросы с 80 порта нашего шлюза на 80 порт нашего веб-сервера находящегося в локальной сети:

# iptables -t nat -A PREROUTING -d 10.120.36.14 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.12:80 # iptables -t nat -A POSTROUTING -d 192.168.0.12 -p tcp --dport 80 -j SNAT --to-source 10.120.36.14

И ту же операцию проделаем с сервером доступным по RDP, так же сидящего за нашим шлюзом:

# iptables -t nat -A PREROUTING -d 10.120.36.14 -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.50:3389 # iptables -t nat -A POSTROUTING -d 192.168.0.50 -p tcp --dport 3389 -j SNAT --to-source 10.120.36.14

Теперь добавим эти команды в /etc/rc.local, чтобы после перезагрузки правила сохранялись и загружались автоматически.

$ cat /etc/rc.local

#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing.

iptables -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#HTTP iptables -t nat -A PREROUTING -d 10.120.36.14 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.12:80 iptables -t nat -A POSTROUTING -d 192.168.0.12 -p tcp --dport 80 -j SNAT --to-source 10.120.36.14

#RDP iptables -t nat -A PREROUTING -d 10.120.36.14 -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.50:3389 iptables -t nat -A POSTROUTING -d 192.168.0.50 -p tcp --dport 3389 -j SNAT --to-source 10.120.36.14

exit 0

Если вы хотите пробросить ещё один порт http или rdp, на нестандартный порт, можно использовать следующие правила:

# iptables -t nat -A PREROUTING -d 10.120.36.14 -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.18:80 # iptables -t nat -A POSTROUTING -d 192.168.0.18 -p tcp --dport 80 -j SNAT --to-source 10.120.36.14

Теперь при заходе на 10.120.36.14:8080, мы получим ответ от второго веб-сервера.

Источник

Tagged as:

Categorized in: linux

Комментариев: 0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.