Правила живут в /etc/sysconfig/iptables
После правки перезапускаем:
# service iptables restartДля открытия порта, например 80го, добавим (между *filter и COMMIT):
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Включить временно пересылку IP (работает до перезагрузки сервера)
# sysctl -w net.ipv4.ip_forward=1
Включить постоянно, в файле /etc/sysctl.conf найти строку:
net.ipv4.ip_forward = 0
и заменить на 1
Чтобы изменения в файле sysctl.conf вступили в силу:
# sysctl -p /etc/sysctl.conf
Например у нас в локалке есть сервер_1, который у которого порт 7722 опубликован через роутер в интернете. Но сервер_1 порт 7722 не обслуживает, а обслуживает этот порт, сервер_2. Нам нужно перенаправить пакеты на сервер_2 не меняя настроек на роутере.
1. На сервер_1 включаем пересылку IP
2. Добавляем в Iptables
# iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 7722 -j DNAT --to-destination 2.2.2.2:7722 # iptables -t nat -A POSTROUTING -p tcp -d 2.2.2.2 --dport 7722 -j SNAT --to-source 1.1.1.1 # iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A FORWARD -p tcp -d 2.2.2.2 --dport 7722 -j ACCEPT
Где 1.1.1.1 ip адрес сервер_1, а 2.2.2.2 ip адрес сервер_2
Чтобы после перезагрузки, это не сбрасывалось, добавим в /etc/sysconfig/iptables перед *filter:
*nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 7722 -j DNAT --to-destination 2.2.2.2:7722 -A POSTROUTING -p tcp -d 2.2.2.2 --dport 7722 -j SNAT --to-source 1.1.1.1 COMMITВ *filter добавим:
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -A FORWARD -p tcp -d 2.2.2.2 --dport 7722 -j ACCEPTили так:
-A FORWARD -p tcp -d 2.2.2.2 --dport 7722 -j ACCEPT -A FORWARD -p tcp -s 2.2.2.2 --sport 7722 -j ACCEPT
Комментариев нет:
Отправить комментарий