URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 81093
[ Назад ]

Исходное сообщение
"NAT не маскирует все пакеты"

Отправлено Влад , 09-Июл-08 19:56 
Здравствуйте вот сталкнулся с такой проблемой
У меня есть 2 сетевых интерфейса eth1(LAN) eth2(INET)

Добавил правило в iptables

iptables -t nat -I POSTROUNTING -i eth1 -o eth2 -j SNAT --to-source INET_IP

Но почемуто не все локальные преобразовываются

и при вводе команды

tcpdump -i eth2 я их вижу и мой интернет провайдер видет и ему это очень не нравится

в чем тут проблема?

Я уже и ядро перекомпилировал и дистрибутив линукса другой установил
но ничего не помогает!


Содержание

Сообщения в этом обсуждении
"NAT не маскирует все пакеты"
Отправлено Oyyo , 09-Июл-08 22:00 
>[оверквотинг удален]
>
>и при вводе команды
>
>tcpdump -i eth2 я их вижу и мой интернет провайдер видет и
>ему это очень не нравится
>
>в чем тут проблема?
>
>Я уже и ядро перекомпилировал и дистрибутив линукса другой установил
>но ничего не помогает!

всё правильно, правило
>iptables -t nat -I POSTROUNTING -i eth1 -o eth2 -j SNAT --to-source INET_IP

натит только то, что приходит с eth1(LAN), перепешите правило
iptables -t nat -I POSTROUNTING -o eth2 -j SNAT --to-source INET_IP
в этом случае будет натиться всё что уходит с eth2(INET)


"NAT не маскирует все пакеты"
Отправлено PavelR , 10-Июл-08 08:54 
>[оверквотинг удален]
>>
>>Я уже и ядро перекомпилировал и дистрибутив линукса другой установил
>>но ничего не помогает!
>
>всё правильно, правило
>>iptables -t nat -I POSTROUNTING -i eth1 -o eth2 -j SNAT --to-source INET_IP
>
>натит только то, что приходит с eth1(LAN), перепешите правило
>iptables -t nat -I POSTROUNTING -o eth2 -j SNAT --to-source INET_IP
>в этом случае будет натиться всё что уходит с eth2(INET)

по идее, локальные пакеты должны генерироваться с адресом интерфейса, смотрящего к провайдеру.


"NAT не маскирует все пакеты"
Отправлено angra , 10-Июл-08 08:48 
>Но почему-то не все локальные преобразовываются

Что не преобразовывается, как именно это видно

>и при вводе команды
>tcpdump -i eth2 я их вижу и мой интернет провайдер видет и
>ему это очень не нравится

Что именно видите?

>в чем тут проблема?

В том что вы не можете внятно изложить проблему



"NAT не маскирует все пакеты"
Отправлено PavelR , 10-Июл-08 08:57 
>[оверквотинг удален]
>
>iptables -t nat -I POSTROUNTING -i eth1 -o eth2 -j SNAT --to-source
>INET_IP
>
>Но почемуто не все локальные преобразовываются
>
>и при вводе команды
>
>tcpdump -i eth2 я их вижу и мой интернет провайдер видет и
>ему это очень не нравится

Офигенный провайдер. Пусть фильтрацию у себя настроит. А если его оборудование поломают- из-за отсутствия внятных фильтров, ему тоже "будет не нравиться"?

У меня другой случай - в сегменте, куда я присоединен к провайдеру, присутствуют как реальные адреса, так и фейковые, моему серверу тоже "не нравится", а что делать ? :)

>
>в чем тут проблема?
>
>Я уже и ядро перекомпилировал и дистрибутив линукса другой установил
>но ничего не помогает!

Мозги перекомпилировать, чтением литературы. Жаль вот другие установить не получится.


"NAT не маскирует все пакеты"
Отправлено tux , 10-Июл-08 09:04 
>Здравствуйте вот сталкнулся с такой проблемой
>У меня есть 2 сетевых интерфейса eth1(LAN) eth2(INET)
>
>Добавил правило в iptables
>
>iptables -t nat -I POSTROUNTING -i eth1 -o eth2 -j SNAT --to-source
>INET_IP
>Я уже и ядро перекомпилировал и дистрибутив линукса другой установил
>но ничего не помогает!

"NAT не маскирует все пакеты"
Отправлено tux2002 , 10-Июл-08 09:06 
>Здравствуйте вот сталкнулся с такой проблемой
>У меня есть 2 сетевых интерфейса eth1(LAN) eth2(INET)
>
>Добавил правило в iptables
>
>iptables -t nat -I POSTROUNTING -i eth1 -o eth2 -j SNAT --to-source
>INET_IP

Покажите iptables-save

>
>Я уже и ядро перекомпилировал и дистрибутив линукса другой установил
>но ничего не помогает!

Интересные методы решения задачи :)



"NAT не маскирует все пакеты"
Отправлено tux2002 , 10-Июл-08 09:11 
IP реальные не показывайте


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 12:54 
Спасибо конечно за такое большое количество "умных" советов ... особенно понравилась идея про переустановку мозгов. Да, не увсех так просто они переустанавливаюися. А вот насчет литературы, то я ее уже достаточно перечитал и все бесполезно.

Кстати зделать переустановку системы мне один админ посоветовал.

у меня LINUX SLACKWARE 12 ядро 2.6.21.5 (ставил ядро 2.6.23)
Пробовал DEBIAN 4 ядро 2.6.18
даже iptables обновил

Напоминаю eth1(LAN) eth2(INET)
Вот мои правила

Chain POSTROUTING (policy ACCEPT 33 packets, 4728 bytes)
pkts bytes target     prot opt in     out     source        destination
   70  3569 SNAT       all  --  *      eth2    0.0.0.0/0     0.0.0.0/0 to:10.100.250.2

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere


Вот результат tcpdump

tcpdump -i eth2 | grep 192.168.1.
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
09:46:59.219162 IP 192.168.1.15.3484 > bu-in-f147.google.com.http: F 3094018935:3094018935(0) ack 393800694 win 64865
09:47:01.420422 IP 192.168.1.7.2934 > bu-in-f91.google.com.http: F 3007321576:3007321576(0) ack 569050773 win 65249
09:47:05.644846 IP 192.168.1.7.2938 > bu-in-f99.google.com.http: F 2357605203:2357605203(0) ack 601534958 win 65233
09:47:09.064632 IP 192.168.1.7.2934 > bu-in-f91.google.com.http: F 0:0(0) ack 1 win 65249
09:47:10.415208 IP 192.168.1.8.2071 > bu-in-f99.google.com.http: F 1748623268:1748623268(0) ack 451744655 win 65535
09:47:11.478590 IP 192.168.1.7.2892 > bu-in-f127.google.com.http: F 3728662923:3728662923(0) ack 183309366 win 65206
09:47:21.133729 IP 192.168.1.8.2056 > bu-in-f127.google.com.http: F 1904490767:1904490767(0) ack 156266093 win 65206
09:47:24.252465 IP 192.168.1.7.2934 > bu-in-f91.google.com.http: F 0:0(0) ack 1 win 65249
09:47:24.855947 IP 192.168.1.7.2938 > bu-in-f99.google.com.http: F 0:0(0) ack 1 win 65233
09:47:25.314436 IP 192.168.1.6.3146 > bu-in-f99.google.com.http: F 4205143613:4205143613(0) ack 281893596 win 65167
09:47:48.804998 IP 192.168.1.8.2071 > bu-in-f99.google.com.http: F 0:0(0) ack 1 win 65535
09:47:54.628128 IP 192.168.1.7.2934 > bu-in-f91.google.com.http: F 0:0(0) ack 1 win 65249
09:47:54.747449 IP 192.168.1.6.3145 > bu-in-f127.google.com.http: F 2298305406:2298305406(0) ack 446786012 win 65206
09:47:55.068698 IP 192.168.1.6.3154 > bu-in-f99.google.com.http: F 2139689385:2139689385(0) ack 652079942 win 65233
09:47:57.198405 IP 192.168.1.6.3145 > bu-in-f127.google.com.http: F 0:0(0) ack 1 win 65206
09:47:57.500037 IP 192.168.1.6.3154 > bu-in-f99.google.com.http: F 0:0(0) ack 1 win 65233
09:48:02.126713 IP 192.168.1.6.3145 > bu-in-f127.google.com.http: F 0:0(0) ack 1 win 65206
09:48:02.529032 IP 192.168.1.6.3154 > bu-in-f99.google.com.http: F 0:0(0) ack 1 win 65233
09:48:03.177560 IP 192.168.1.7.2938 > bu-in-f99.google.com.http: F 0:0(0) ack 1 win 65233


Да как видно что большинство пакетов проходят так именно на поисковые системы google rambler yahoo и т.д

То же самое видно и у инет провайдера и они из-за этого отключают нам интернет.


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 13:01 
В локальной сети все компы под WINXP professional

Локальный адрес сервера  eth1(192.168.1.70)
Второй интерфейс
DHCP eth2(10.100.250.2) а интернет адрес реальный 194.9.69.34

все WINDOWS компъютеры настроены так

IP  :  192.168.1.x
MASK:  255.255.255.0
GW  :  192.168.1.70
DNS :  192.168.1.70


"NAT не маскирует все пакеты"
Отправлено PavelR , 10-Июл-08 13:29 
>[оверквотинг удален]
>Локальный адрес сервера  eth1(192.168.1.70)
>Второй интерфейс
> DHCP eth2(10.100.250.2) а интернет адрес реальный 194.9.69.34
>
>все WINDOWS компъютеры настроены так
>
> IP  :  192.168.1.x
> MASK:  255.255.255.0
> GW  :  192.168.1.70
> DNS :  192.168.1.70

Адрес - 10.100.250.2 - значит у вас нет нормального провайдера.


Далее. Попробуйте сделать tcpdump без grep.


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 14:13 
Что значит нет нормального?

tcpdump без grep выдает очень моного текста вот его часть

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
11:10:55.494599 arp who-has 10.100.100.1 tell 10.100.7.2
11:10:55.540360 arp who-has 10.100.68.80 tell 10.100.176.144
11:10:55.592082 arp who-has 10.100.100.1 (ff:ff:ff:ff:ff:ff) tell 10.100.200.73
11:10:55.655429 arp who-has 10.100.100.1 tell 10.100.200.73
11:10:55.819849 arp who-has 10.100.131.252 tell 10.100.68.202
11:10:55.823565 arp who-has 10.100.129.244 tell 10.100.131.1
11:10:55.868850 IP 10.100.130.238.6771 > 239.192.152.143.6771: UDP, length 119
11:10:55.938352 IPX 00000002.00:17:9a:7e:5c:39.0455 > 00000000.ff:ff:ff:ff:ff:ff.0455: ipx-netbios 50
11:10:55.952068 arp who-has 10.100.100.5 tell 10.100.130.240
11:10:55.989839 arp who-has 10.100.129.180 tell 10.100.100.2
11:10:55.999888 arp who-has 10.100.100.1 (00:30:48:58:e4:b1) tell 10.100.131.67
11:10:56.027523 arp who-has 10.100.131.186 tell 10.100.68.43
11:10:56.419811 arp who-has 10.100.130.204 tell 10.100.130.199
11:10:56.434185 IP 192.168.1.15.4813 > 91.198.174.2.80: F 3598858420:3598858420(0) ack 4149909570 win 65535
11:10:56.534193 arp who-has 10.100.64.193 tell 10.100.6.254
11:10:56.534280 arp who-has 10.100.176.195 tell 10.100.6.254
11:10:56.534381 arp who-has 10.100.68.140 tell 10.100.6.254
11:10:56.616921 arp who-has 10.100.100.1 (ff:ff:ff:ff:ff:ff) tell 10.100.200.73
11:10:56.717219 IPX 00000002.00:17:9a:7e:5c:39.0455 > 00000000.ff:ff:ff:ff:ff:ff.0455: ipx-netbios 50
11:10:56.801012 arp who-has 10.100.128.26 tell 10.100.100.2
11:10:56.847207 IP 10.100.7.5.1028 > 239.255.255.250.1900: UDP, length 133
11:10:56.861982 arp who-has 10.100.100.1 tell 10.100.200.73
11:10:57.261873 IP 10.100.129.80.4794 > 255.255.255.255.1900: UDP, length 137
11:10:57.261943 IP 10.100.129.80.4794 > 239.255.255.250.1900: UDP, length 137
11:10:57.411080 arp who-has 10.100.100.1 (00:30:48:58:e4:b1) tell 10.100.5.229
11:10:57.496516 IPX 00000002.00:17:9a:7e:5c:39.0455 > 00000000.ff:ff:ff:ff:ff:ff.0455: ipx-netbios 50
11:10:57.513916 IP 91.203.5.42.80 > 10.100.67.56.1359: . ack 975893154 win 33580
11:10:57.513927 IP 91.203.5.42.80 > 10.100.67.56.1359: . ack 1 win 0
11:10:57.513941 IP 91.203.5.42.80 > 10.100.67.56.1355: . ack 586359375 win 0
11:10:57.513952 IP 91.203.5.42.80 > 10.100.67.56.1364: . ack 446668822 win 0
11:10:57.513962 IP 91.203.5.42.80 > 10.100.67.56.1355: . ack 1 win 33580
11:10:57.513973 IP 91.203.5.42.80 > 10.100.67.56.1368: . ack 1952235278 win 0
11:10:57.513985 IP 91.203.5.42.80 > 10.100.67.56.1362: . ack 3740252483 win 0
11:10:57.513995 IP 91.203.5.42.80 > 10.100.67.56.1363: . ack 2322373077 win 0
11:10:57.514006 IP 91.203.5.42.80 > 10.100.67.56.1364: . ack 1 win 33580
11:10:57.514017 IP 91.203.5.42.80 > 10.100.67.56.1361: . ack 1766994142 win 0
11:10:57.514028 IP 91.203.5.42.80 > 10.100.67.56.1357: . ack 3136480911 win 0
11:10:57.514038 IP 91.203.5.42.80 > 10.100.67.56.1362: . ack 1 win 33580
11:10:57.514049 IP 91.203.5.42.80 > 10.100.67.56.1368: . ack 1 win 33580
11:10:57.514059 IP 91.203.5.42.80 > 10.100.67.56.1356: . ack 1628050175 win 0
11:10:57.514080 IP 91.203.5.42.80 > 10.100.67.56.1363: . ack 1 win 33580
11:10:57.514082 IP 91.203.5.42.80 > 10.100.67.56.1354: . ack 3752332288 win 0
11:10:57.514094 IP 91.203.5.42.80 > 10.100.67.56.1365: . ack 469167298 win 0
11:10:57.514650 IP 91.203.5.42.80 > 10.100.67.56.1360: . ack 120888387 win 0
11:10:57.514653 IP 91.203.5.42.80 > 10.100.67.56.1358: . ack 1557217367 win 0
11:10:57.514670 IP 91.203.5.42.80 > 10.100.67.56.1344: . ack 3303006904 win 0
11:10:57.514672 IP 91.203.5.42.80 > 10.100.67.56.1366: . ack 4259143637 win 0
11:10:57.514679 IP 91.203.5.42.80 > 10.100.67.56.1343: . ack 2264960551 win 0
11:10:57.514685 IP 91.203.5.42.80 > 10.100.67.56.1361: . ack 1 win 33580
11:10:57.514691 IP 91.203.5.42.80 > 10.100.67.56.1357: . ack 1 win 33580
11:10:57.514701 IP 91.203.5.42.80 > 10.100.67.56.1349: . ack 859383643 win 0
11:10:57.515342 IP 91.203.5.42.80 > 10.100.67.56.1356: . ack 1 win 33580
11:10:57.515352 IP 91.203.5.42.80 > 10.100.67.56.1354: . ack 1 win 33580
11:10:57.515364 IP 91.203.5.42.80 > 10.100.67.56.1365: . ack 1 win 33580
11:10:57.515373 IP 91.203.5.42.80 > 10.100.67.56.1360: . ack 1 win 33580
11:10:57.515383 IP 91.203.5.42.80 > 10.100.67.56.1358: . ack 1 win 33580
11:10:57.515518 IP 91.203.5.42.80 > 10.100.67.56.1344: . ack 1 win 33580
11:10:57.515521 IP 91.203.5.42.80 > 10.100.67.56.1366: . ack 1 win 33580
11:10:57.515549 IP 91.203.5.42.80 > 10.100.67.56.1343: . ack 1 win 33580
11:10:57.515887 IP 91.203.5.42.80 > 10.100.67.56.1349: . ack 1 win 33580
11:10:57.701780 arp who-has 10.100.100.1 (ff:ff:ff:ff:ff:ff) tell 10.100.200.73
11:10:57.767494 arp who-has 10.100.100.1 tell 10.100.200.73
11:10:57.950084 arp who-has 10.100.68.57 tell 10.100.68.236
11:10:58.100487 IP 10.100.224.55.6771 > 239.192.152.143.6771: UDP, length 119
11:10:58.101150 IP 10.100.224.55.6771 > 239.192.152.143.6771: UDP, length 119
11:10:58.151048 arp who-has 10.100.129.95 tell 10.100.131.57
11:10:58.323583 arp who-has 10.100.100.2 tell 10.100.130.15
11:10:58.620263 arp who-has 10.100.100.1 (ff:ff:ff:ff:ff:ff) tell 10.100.200.24


"NAT не маскирует все пакеты"
Отправлено PavelR , 10-Июл-08 16:00 
Вас что, к инету через хаб подключают ?? Откуда там светятся всякие левые адреса  типа 10.100.67.56, например ?

Думаю, что требуется более подробное описание структуры сети.


"NAT не маскирует все пакеты"
Отправлено Влад , 11-Июл-08 14:10 
>Вас что, к инету через хаб подключают ?? Откуда там светятся всякие
>левые адреса  типа 10.100.67.56, например ?
>
>Думаю, что требуется более подробное описание структуры сети.

Подключаюсь через DHCP кабель идет 100мб к свичу это типа локальная сеть типа по городу + инет.



"NAT не маскирует все пакеты"
Отправлено ALex_hha , 10-Июл-08 14:16 
# iptables -t nat -A POSTROUTING -o eth2 -s 192.168.1.0/24 -j SNAT --to-source 10.100.250.2

Кстати, что это за адрес 10.100.250.2?!

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

какой в этом смысл? Политика по умолчанию DROP и стоит правило, которое разрешает всем и все.


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 14:25 
Это адресс 10.100.250.2 локальной сети провайдера выдается через DHCP
Провайдеру нужно чтобы все пакеты шли только с этого адреса чтобы не нарушать политику безопасности сети(как они говорят).

Смысла ни какого разумеется просто я уже столько всего перепробовал что на это внимания уже не обращаю(темболее это не каксается моей проблемы), к стати если вставить правило

iptables -I FORWARD -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j DROP
или
iptables -I FORWARD -s 192.168.1.0/24 -o eth2 -j DROP

то интернет не работает в локалке


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 15:08 
194.9.69.34 - это реальный провайдера или у вас 2 ip на интерфейсе?
тогда уж показывайте ifconfig и route -n

"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 15:19 
>194.9.69.34 - это реальный провайдера или у вас 2 ip на интерфейсе?
>
>тогда уж показывайте ifconfig и route -n

на интерфейсе 1 IP 10.100.250.2 а 194.9.69.34 выдается уже на сервере провайдера тоже SNAT по видимому

ifconfig

eth0      Link encap:Ethernet  HWaddr 00:19:D1:02:3F:CE
          inet addr:192.168.1.70  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::219:d1ff:fe02:3fce/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:273203 errors:0 dropped:0 overruns:0 frame:0
          TX packets:339299 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:46669192 (44.5 MiB)  TX bytes:266553640 (254.2 MiB)
          Base address:0x30e0 Memory:50300000-50320000

eth1      Link encap:Ethernet  HWaddr 00:11:95:F6:5C:E6
          inet addr:10.100.250.2  Bcast:10.100.255.255  Mask:255.255.0.0
          inet6 addr: fe80::211:95ff:fef6:5ce6/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:322354 errors:0 dropped:0 overruns:0 frame:0
          TX packets:111531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:179216452 (170.9 MiB)  TX bytes:17322458 (16.5 MiB)
          Interrupt:21

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:312 errors:0 dropped:0 overruns:0 frame:0
          TX packets:312 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:163254 (159.4 KiB)  TX bytes:163254 (159.4 KiB)

route:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
194.9.69.27     10.100.65.198   255.255.255.255 UGH   0      0        0 eth1
193.27.0.247    10.100.100.1    255.255.255.255 UGH   0      0        0 eth1
194.9.69.251    10.100.100.1    255.255.255.255 UGH   0      0        0 eth1
194.9.69.249    10.100.100.2    255.255.255.255 UGH   0      0        0 eth1
193.27.0.251    10.100.100.1    255.255.255.255 UGH   0      0        0 eth1
194.9.69.33     10.100.224.11   255.255.255.255 UGH   0      0        0 eth1
193.27.0.233    10.100.100.1    255.255.255.255 UGH   0      0        0 eth1
194.9.69.234    10.100.100.1    255.255.255.254 UG    0      0        0 eth1
194.9.69.8      10.100.64.135   255.255.255.248 UG    0      0        0 eth1
193.27.0.248    10.100.100.1    255.255.255.248 UG    0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.100.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.100.100.1    0.0.0.0         UG    0      0        0 eth1


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 15:24 
и где тут eth2?
в правилах ната исправляйте на eth1

"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 16:00 
>и где тут eth2?
>в правилах ната исправляйте на eth1

Когда я писал топик у меня стояла Debian там было eth1(LAN) eth1(INET)
сейчас я вернул SlacWare  тут eth0(LAN) eth1(INET)

Поэтому там все верно.

Вот самое простое что мне посоветовал провайдер

Chain INPUT (policy ACCEPT 341 packets, 48453 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain FORWARD (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
     884   844497 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 335 packets, 57202 bytes)
    pkts      bytes target     prot opt in     out     source               destination
Chain PREROUTING (policy ACCEPT 31 packets, 6653 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       1       48 SNAT       all  --  *      eth1    0.0.0.0/0            0.0.0.0/0           to:10.100.250.2
       0        0 DROP       all  --  *      eth1    0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 656 packets, 52692 bytes)
    pkts      bytes target     prot opt in     out     source               destination
Chain PREROUTING (policy ACCEPT 1249 packets, 896K bytes)
pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 262K packets, 45M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 299K packets, 202M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 343 packets, 59330 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 553K packets, 320M bytes)
pkts bytes target     prot opt in     out     source               destination


ifconfig

eth0      Link encap:Ethernet  HWaddr 00:19:D1:02:3F:CE
          inet addr:192.168.1.70  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::219:d1ff:fe02:3fce/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:349794 errors:0 dropped:0 overruns:0 frame:0
          TX packets:422270 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:61793315 (58.9 MiB)  TX bytes:310487446 (296.1 MiB)
          Base address:0x30e0 Memory:50300000-50320000

eth1      Link encap:Ethernet  HWaddr 00:11:95:F6:5C:E6
          inet addr:10.100.250.2  Bcast:10.100.255.255  Mask:255.255.0.0
          inet6 addr: fe80::211:95ff:fef6:5ce6/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:391657 errors:0 dropped:0 overruns:0 frame:0
          TX packets:133422 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:211370725 (201.5 MiB)  TX bytes:21003392 (20.0 MiB)
          Interrupt:21

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:416 errors:0 dropped:0 overruns:0 frame:0
          TX packets:416 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:217672 (212.5 KiB)  TX bytes:217672 (212.5 KiB)


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 16:18 
>[оверквотинг удален]
>          UP LOOPBACK
>RUNNING  MTU:16436  Metric:1
>          RX packets:416
>errors:0 dropped:0 overruns:0 frame:0
>          TX packets:416
>errors:0 dropped:0 overruns:0 carrier:0
>          collisions:0 txqueuelen:0
>
>          RX bytes:217672
>(212.5 KiB)  TX bytes:217672 (212.5 KiB)

то что и Oyyo советовал в первом ответе, только без DROP в которое и так ничего не должно попасть


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 16:22 
ДА только Oyyo про
iptables -I FORWARD -j ACCEPT не писал.


Мне кажется что надо еще DROOP где-то добавить вот только не знаю куда.


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 16:44 
>ДА только Oyyo про
>iptables -I FORWARD -j ACCEPT не писал.

так если пакеты из локалки до провайдерской сети доходили значит форвард был разрешен.
>
>
>Мне кажется что надо еще DROOP где-то добавить вот только не знаю
>куда.

drop по умолчанию, как и у вас в форвард, последнее разрешающее убрать и корректно разрешить то что нужно, так же и во входящих и исходящих

http://www.opennet.me/docs/RUS/iptables/


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 16:56 
Спасибо за мануал я его видел уже ни один раз.

А что разрешить например.
ну допустим

iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
у меня это тоже что и
iptables -I FORWARD -j ACCEPT
так как больше сетей нету
если зделать так

iptables -I FORWARD -s 192.168.1.0/24 -o eth1 -j DROP
или что-то подобное зделать инет вообще не работает

И как я понял цепочка POSTROUTING таблици nat - самая последняя
тоесть после нее зарезать пакеты уже не вазможно
хоть бери и второй сервер ставь.

А если роутер купить он поможет или нет?


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 17:15 
>Спасибо за мануал я его видел уже ни один раз.
>
>А что разрешить например.
>ну допустим
>

1
>iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
>у меня это тоже что и
>iptables -I FORWARD -j ACCEPT
>так как больше сетей нету
>если зделать так

нет не одно и тоже.
iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
разрешает из 192.168.1.0/24 к провайдеру, но от провайдера в локалку - нет.

iptables -I FORWARD -j ACCEPT
разрешает в обе стороны, включая установку соединения с вашей локалкой, а это уже плохо. так что читайте про флаги еще и переписывайте правила. входящие тоже все разрешены, тоесть можно из провайдерской сети устанавливать соединения с вашим шлюзом, это тоже плохо.
>
>iptables -I FORWARD -s 192.168.1.0/24 -o eth1 -j DROP
>или что-то подобное зделать инет вообще не работает

этим вы отрубили локалку от провайдера
>
>И как я понял цепочка POSTROUTING таблици nat - самая последняя
>тоесть после нее зарезать пакеты уже не вазможно
>хоть бери и второй сервер ставь.

режте , хотя лучше по умолчанию запретить  и разрешать то что должно быть разрешено, в таблице фильтров и тогда до POSTROUTING таблици nat дойдет только то что разрешено
>
>А если роутер купить он поможет или нет?

его тоже настраивать нужно


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 17:29 
Это все я понимаю прекрасно на самом деле это простой пример
в полном правил много я использую arno's firewall
http://rocky.molphys.leidenuniv.nl/

вот FORWARD например

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0

   25  1200 TCPMSS     tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0
        tcp flags:0x06/0x02 TCPMSS clamp to PMTU
1353  947K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
        state ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
        state RELATED tcp dpts:1024:65535
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0
        state RELATED udp dpts:1024:65535
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
        state RELATED
   54  2360 HOST_BLOCK  all  --  *      *       0.0.0.0/0            0.0.0.0/0

   54  2360 MAC_FILTER  all  --  eth0   *       0.0.0.0/0            0.0.0.0/0

   54  2360 SPOOF_CHK  all  --  *      *       0.0.0.0/0            0.0.0.0/0

    0     0 VALID_CHK  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0

    0     0 RESERVED_NET_CHK  all  --  eth1   *       0.0.0.0/0            0.0.0
.0/0
    0     0 ACCEPT     all  --  eth0   eth0    0.0.0.0/0            0.0.0.0/0

   54  2360 LAN_INET_FORWARD_CHAIN  all  --  eth0   eth1    0.0.0.0/0
0.0.0.0/0
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0
        limit: avg 1/min burst 3 LOG flags 0 level 7 prefix `Dropped FORWARD pac
ket: '
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0


так что же мне резать подскажите?


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 17:45 
>[оверквотинг удален]
>3 LOG flags 0 level 7 prefix `Dropped FORWARD pac
>ket: '
>    0     0 DROP  
>     all  --  *  
>    *      
>0.0.0.0/0          
> 0.0.0.0/0
>
>
>так что же мне резать подскажите?

тут есть пользовательские цепочки в которые не понятно что попадет, так что лучше iptables-save  и не зная что вы хотите разрешить , а что нет, советовать трудно


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 18:11 
Еще есть один момент интересный у моего знакомого тот-же провайдер но ядро 2.4 а не 2.6 как у меня и у него все ОК!!!. Провайдер не обижается

"NAT не маскирует все пакеты"
Отправлено Oyyo , 11-Июл-08 10:19 
>Еще есть один момент интересный у моего знакомого тот-же провайдер но ядро
>2.4 а не 2.6 как у меня и у него все
>ОК!!!. Провайдер не обижается

версия ядра здесь ни причём


из всего, что я прочёл в постах выше, почемуто начинает казаться что ваш провайдер ДЕБИЛ
1. если пров отдаёт вам статический IP по DHCP (хочется смеятся) лучше используйте не SNAT, а MASQUERADE, вдруг завтра пров поменяет вам IP, а вы и знать не будете

2. непонятно как пров отдаёт вам реальный IP, если он делает DNAT, то это полный дебилизм

ни один пакет не может обойти цепочку POSTROUTIG таблицы nat, если только правило прописанное там не делает отбора пакетов т.е. правило должно быть самым простым

iptables -t nat -I POSTROUTING -o eth2(или что там у вас смотрит на прова) -j MASQUERADE

в цепочке FORWARD уберите всё, что там есть (правда я не понял зачем там накручены такие сложности) и начните с самого простого, а потом усложняйте

iptables -A FORWARD -j ACCEPT -i eth1(LAN) -o eth2(INET)
iptables -A FORWARD -j ACCEPT -o eth1(LAN) -i eth2(INET) -m state --state RELATED,ESTABLISHED

+++++++++++++++++++++++++
вы показали tcpdump с интерфейса который смотрит на провайдера, повторю кусочек

tcpdump -i eth2 | grep 192.168.1.
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
09:46:59.219162 IP 192.168.1.15.3484 > bu-in-f147.google.com.http: F 3094018935:3094018935(0) ack 393800694 win 64865
09:47:01.420422 IP 192.168.1.7.2934 > bu-in-f91.google.com.http: F 3007321576:3007321576(0) ack 569050773 win 65249
09:47:05.644846 IP 192.168.1.7.2938 > bu-in-f99.google.com.http: F 2357605203:2357605203(0) ack 601534958 win 65233

вы уверены, что  IP 192.168.1.7 и 192.168.1.15 принадлежат вашей подсетке, а не какой нибудь другой?
tcpdump показывает всё, что творится на внешней стороне интерфеса


"NAT не маскирует все пакеты"
Отправлено Влад , 11-Июл-08 13:42 
Насчет IP 192.168.1.7 и 192.168.1.15 я уверен потому-что менял IP
192.168.1.8 на 192.168.1.15 и 192.168.1.8 уже не было в дампе

Как ни странно MASQUERADE тоже не помогает
а для IP у меня есть скрипт на пхп который его подставляет в правило firewall но он всегда один и тот же

Насчет реального IP я не вкурсе как он выдается но сервер его не видет и ваще вся локальная сеть. Его видно только с другого интернет провайдера.


"Спасибо  NAT уже  маскирует все пакеты"
Отправлено Влад , 12-Июл-08 18:42 
Спасибо!!
Я последовал вашему примеру и вот такой скрипт действительно все маскирует
tcpdump пустой. Работает как SNAT так и MASQUERADE.

#!/bin/sh
IPTAB=/usr/sbin/iptables
#LAN CONFIGURATION ------------------------------------

LAN="192.168.1.0/24"
LAN_IF="eth1"

#INET CONFIGURATION ------------------------------------


INET_IF="eth2"


# SCRIPT BODY ------------------------------------

#SETTING DEFAULT POLICY ---------------------------

$IPTAB -F
$IPTAB -X

$IPTAB -F INPUT
$IPTAB -F OUTPUT
$IPTAB -F FORWARD

$IPTAB -t nat -F
$IPTAB -t nat -X
$IPTAB -t mangle -F
$IPTAB -t mangle -X

#SET DEFAULT POLICY

$IPTAB -P FORWARD DROP
$IPTAB -P OUTPUT ACCEPT
$IPTAB -P INPUT ACCEPT

#FORWARD RULES --------------------------------------

$IPTAB -A FORWARD -i $LAN_IF -o $INET_IF -m state --state NEW -j ACCEPT
$IPTAB -A FORWARD -i $LAN_IF -o $INET_IF -m state --state ESTABLISHED -j ACCEPT
$IPTAB -A FORWARD -i $LAN_IF -o $INET_IF -m state --state RELATED -j ACCEPT

$IPTAB -A FORWARD -o $LAN_IF -i $INET_IF -m state --state ESTABLISHED -j ACCEPT
$IPTAB -A FORWARD -o $LAN_IF -i $INET_IF -m state --state RELATED -j ACCEPT


#NAT RULES-------------------------------------------------------------

$IPTAB -t nat -I POSTROUTING -o $INET_IF -j MASQUERADE


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 17:02 
Как я понял некотрые пакеты не доходят до POSTROUTING что кажется не вазможным судя из специфики iptables и рисунка с примером движения пакетов по цепочкам.

Получается что последняя цепочка FORWARD

самое интересное то что большая часть пакетов 95% идут на google rambler и т.д

других сайтов не видно


"NAT не маскирует все пакеты"
Отправлено reader , 10-Июл-08 17:23 
>Как я понял некотрые пакеты не доходят до POSTROUTING что кажется не
>вазможным судя из специфики iptables и рисунка с примером движения пакетов
>по цепочкам.

все зависит от того какие пакеты, некоторые и не должны попасть
>
>Получается что последняя цепочка FORWARD

она не последняя, через нее идут транзитные пакеты, а локальные по отношению к шлюзу через другие
>
>самое интересное то что большая часть пакетов 95% идут на google rambler
>и т.д
>
>других сайтов не видно


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 17:51 
Мне нужно что бы из локальной сети eth0 192.168.1.0/24 был доступ в интернет через нат
при этом все пакеты с локальной сети должны получить source address 10.100.250.2(eth1)

Вот и все.

Как мне зарезать пакеты котрые не попали под NAT


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 17:53 
Приведите простой пример правил для этого.
Политику безопасности я и сам настрою с этим проблем пока небыло

"NAT не маскирует все пакеты"
Отправлено KobaLTD , 11-Июл-08 15:20 
>Приведите простой пример правил для этого.
>Политику безопасности я и сам настрою с этим проблем пока небыло

iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -d 192.168.0.0/24 --state RELATED,ESTABLSHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0./24 -o eth1 -j MASQUERADE

это минимум который нужен и который реально работает + советы
1) если у вас шнурок воткнут в какой то хаб тонадо вытащить локалку и подампить, может это действительно не ваши пакеты ловяться, не вы один можете юзать 192.168.0.0/24, дампом особо не пользовался но могу предположить что как умная прога он сразу расшифровывает NAT в локальные адреса (если пускаеться на роутере) - для этого дампить нужно на другом конце.
2) Не знаю как дебиане а в слаке 12 по умолчанию в ядре включен роутинг брадкаст пакетов и MAC брадкаст - вот это и может видеть вашь пров и ругаться
3) Возьмите машину какуюнибуть и вокните к eth1 и на ней продампи что утебя выходит с интерфейса.


"NAT не маскирует все пакеты"
Отправлено Влад , 10-Июл-08 17:59 
А как-то перехватывать пакеты после файервола iptables можна?

Я бы тогда зарезл все пакеты которые не прошли SNAT