четверг, 12 апреля 2012 г.

Заметки Iptables

Правила живут в /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 

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

Отправить комментарий