1 (20.12.2012 12:21:59 отредактировано Toje)

Добрый день. Так случилось, что мне достался шлюз под CentOS'ом. Разбираюсь в IPtables и  squid. вот какой у меня вопрос возник никак не могу понят, подскажите плз.
Значит дано: шлюз с интерфейсом eth0(в интернет) и eth2(локальный) и стайка компов. для всех в интернет выход через прокси, но для 1 компа 192.168.2.100 доступ через nat.
не могу понять какими правилами это регулируется.

-A INPUT -s 192.168.2.100/32 -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -s 192.168.2.0/24 -d 192.168.2.1/32 -i eth2 -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
-A FORWARD -s 192.168.2.100/32 -i eth2 -j ACCEPT 
-A FORWARD -d 192.168.2.100/32 -i eth0 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -d 192.168.0.0/23 -i eth2 -o eth1 -j ACCEPT 
*nat
-A PREROUTING -i eth0 -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.2.4 
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.2.4 
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.2.4 
-A PREROUTING -i eth0 -p udp -m udp --dport 15464 -j DNAT --to-destination 192.168.2.100 
-A POSTROUTING -o eth0 -j SNAT --to-source 77.247.211.215 // тут я так понимаю как раз и натятся исходящие через eth0 но как 100 выделился среди других? 

2

// касается только входящего трафика, который предназначен текущему серверу (на котором обрабатываются правила фаервола)
-A INPUT -s 192.168.2.100/32 -j ACCEPT // разрешает входящий трафик с узла 192.168.2.100
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT // разрешает трафик, квалифицирующийся как RELATED, ESTABLISHED (будут использоваться ftp, irc, etc хелперы)
-A INPUT -p icmp -j ACCEPT // разрешается входящий icmp-трафик
-A INPUT -i lo -j ACCEPT // разрешение прохождения входящего трафика по lo-интерфейсу
-A INPUT -s 192.168.2.0/24 -d 192.168.2.1/32 -i eth2 -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT // разрешает входящий трафик по порту udp:123 (time service похоже)
// далее правила, которые применяются к трафику, проходящему через сервер, но не на сам сервер
-A FORWARD -s 192.168.2.100/32 -i eth2 -j ACCEPT // разрешить прохождение пакетов, которые пришли с узла 192.168.2.100 через интерфейс eth2
-A FORWARD -d 192.168.2.100/32 -i eth0 -j ACCEPT // разрешить прохождение пакетов, которые предназначены узлу 192.168.2.100 и пришли через интерфейс eth0
-A FORWARD -s 192.168.2.0/24 -d 192.168.0.0/23 -i eth2 -o eth1 -j ACCEPT // разрешить пакеты из сети 192.168.2.0/24 (пришедшие по интерфейсу eth2) в сеть 192.168.0.0/23 (но только те пакеты, которые будут отправлены через интерфейс eth1)
*nat
// таблица, в которой производится модификация пакетов
// правила из цепочки PREROUTING будут обрабатываться ДО принятия решения о маршрутизации пакета
// изменение адреса назначения пакетов на 192.168.2.4 (порты 143, 110, 25. похоже на mail-сервер)
-A PREROUTING -i eth0 -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.2.4
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.2.4
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.2.4
// а здесь идет проброс порта 15464(udp) на 192.168.2.100
-A PREROUTING -i eth0 -p udp -m udp --dport 15464 -j DNAT --to-destination 192.168.2.100
// далее правило для nat-а всех исходящих пакетов (которые после применения правил маршрутизации уйдут с интерфейса eth0)
-A POSTROUTING -o eth0 -j SNAT --to-source 77.247.211.215

Судя по правилам фаервола, для 192.168.2.100 выделяется только один "прямой" входящий порт - 15464(udp). Все компы сети натятся в 77.247.211.215
Отсутствие правил для прозрачного проксирования говорит о том, что с высокой вероятностью на компах пользователей настроен выход в сеть через прокси (т.е. в ПО в соответствующих настройках указан ip-адрес прокси-сервера)
Если же на компах пользователей не вводятся настройки прокси, то есть вероятность того, что шлюзом для них выступает другой сервер, который и производит прозрачное проксирование для всей сети, кроме 192.168.2.100

И баба с воза, и волки сыты...

3 (20.12.2012 13:23:32 отредактировано Toje)

afanasev.p пишет:

Отсутствие правил для прозрачного проксирования говорит о том, что с высокой вероятностью на компах пользователей настроен выход в сеть через прокси (т.е. в ПО в соответствующих настройках указан ip-адрес прокси-сервера)
Если же на компах пользователей не вводятся настройки прокси, то есть вероятность того, что шлюзом для них выступает другой сервер, который и производит прозрачное проксирование для всей сети, кроме 192.168.2.100

Да на компах я прописываю адрес прокси сервера. именно так.
Извините за глупые вопросы,на 192.168.2.100 прокси не прописывается, но все сервисы( icq, почта, веб ) работают, каким правилом это разрешается?(ну или запрещается всем кроме этого хоста)? если  на компах не прописывать прокси, у них не будет инета где это запрещено?
Этим?

-A FORWARD -s 192.168.2.100/32 -i eth2 -j ACCEPT // разрешить прохождение пакетов, которые пришли с узла 192.168.2.100 через интерфейс eth2 

а запрет остальным я так понимаю обеспечивается политикой поумолчанию, так как  для этих пакетов не нашлось цепочки?

4 (20.12.2012 13:30:23 отредактировано afanasev.p)

Похоже, что политика цепочки FORWARD стоит в DROP (если у пользователей без прокси интернет не работает).
Т.к. нас интересует трафик, проходящий мимо, то смотрим в цепочку FORWARD. Там есть записи:

-A FORWARD -s 192.168.2.100/32 -i eth2 -j ACCEPT // разрешить прохождение пакетов, которые пришли с узла 192.168.2.100 через интерфейс eth2
-A FORWARD -d 192.168.2.100/32 -i eth0 -j ACCEPT // разрешить прохождение пакетов, которые предназначены узлу 192.168.2.100 и пришли через интерфейс eth0

Они-то как раз и разрешают хосту 192.168.2.100 работать через нат.

ЗЫ: я всегда буду дочитывать посты до конца

И баба с воза, и волки сыты...

5

Спасибо большое, теперь все ясно.