nixp.ru v3.0

24 мая 2017,
среда,
09:02:27 MSK

DevOps с компанией «Флант»
ftrain написал 16 января 2007 года в 12:21 (460 просмотров) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 4 комментария на сайте.

Добрый день!

Есть такая сеть:

Шлюз на Linux со следующими интерфейсами:

eth0 — внешний интерфейс в интернет с IP 217.b.c.d/255.255.255.240

eth0:1 — локальная сеть 192.168.3.0/24 с IP 192.168.3.58

eth2 — локальная сеть 192.168.0.0/24 с IP 192.168.0.1

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

На сервере поднят NAT:

-A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.d

-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.d

Маршруты:

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

217.b.c.e * 255.255.255.255 UH 0 0 0 eth0

192.168.3.0 * 255.255.255.0 U 0 0 0 eth0

192.168.0.0 * 255.255.255.0 U 0 0 0 eth2

127.0.0.0 * 255.0.0.0 U 0 0 0 lo

default 217.b.c.e 0.0.0.0 UG 0 0 0 eth0

*217.b.c.d — реальный IP в инете

*217.b.c.e — шлюз провайдера

проблема: сетка 192.168.3.0/24 не видит интернет напрямую, только через прокси

при этом с 192.168.0.0/24 все работает без проблем

Как с этим справиться?

Спасибо.

fly4life

Два вопроса:

1) что у тебя в качестве шлюза по умолчанию на компьютерах в сети 192.168.3.0/24?

2) что у тебя в цепочке FORWARD на шлюзе?

ftrain

ответы:

1) шлюз 192.168.3.58 — т.е. эта линукс машин

2)

-A FORWARD -i eth0 -p tcp -j bad_tcp_packets

-A FORWARD -p udp -m udp --dport 123 -j ACCEPT

-A FORWARD -s 192.168.3.31 -j ACCEPT

-A FORWARD -s 192.168.3.51 -j ACCEPT

-A FORWARD -s 192.168.3.98 -j ACCEPT

-A FORWARD -s 192.168.3.99 -j ACCEPT

-A FORWARD -s 192.168.3.187 -j ACCEPT

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth2 -j ACCEPT

-A FORWARD -p icmp -j icmp_packets

-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix «IPT FORWARD packet died: » --log-level 7

вот так

fly4life

Правила:

ftrain
-A FORWARD -s 192.168.3.31 -j ACCEPT

-A FORWARD -s 192.168.3.51 -j ACCEPT

-A FORWARD -s 192.168.3.98 -j ACCEPT

-A FORWARD -s 192.168.3.99 -j ACCEPT

-A FORWARD -s 192.168.3.187 -j ACCEPT

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

поставь перед этим:

ftrain
-A FORWARD -i eth0 -p tcp -j bad_tcp_packets
ftrain
fly4life
Правила:

поставь перед этим:

Всмысле «поставь перед этим», оно же и так перед этим стоит. Что-то я вообще не уверен, что дело в файрволле, т.к. когда я ставлю пропускать ВСЕ пакеты — все равно для подсети 192.168.3.0/24 инет не работает

fly4life
ftrain
Всмысле «поставь перед этим», оно же и так перед этим стоит.

«Оно», да, стоит перед этим — тут ты прав. Однако я говорю, что ЭТИ должнЫ стоять перед ОНО. Ну, вобщем, просто повнимательней перечитай то, как у тебя правила идут и то, как предложил сделать я.

ftrain
Что-то я вообще не уверен, что дело в файрволле, т.к. когда я ставлю пропускать ВСЕ пакеты — все равно для подсети 192.168.3.0/24 инет не работает

Весь вопрос в том, где ты выставляешь «пропускать все пакеты» и к какой цепочке это относится (не к INPUT ли?).

ftrain
fly4life
«Оно», да, стоит перед этим — тут ты прав. Однако я говорю, что ЭТИ должнЫ стоять перед ОНО. Ну, вобщем, просто повнимательней перечитай то, как у тебя правила идут и то, как предложил сделать я.

Весь вопрос в том, где ты выставляешь «пропускать все пакеты» и к какой цепочке это относится (не к INPUT ли?).

поставил, получилось следующее:

-A INPUT -p tcp -m tcp -j bad_tcp_packets

-A INPUT -s 127.0.0.1 -i lo -j ACCEPT

-A INPUT -s 192.168.0.1 -i lo -j ACCEPT

-A INPUT -s 192.168.3.58 -i lo -j ACCEPT

-A INPUT -s 217.b.c.d -i lo -j ACCEPT

-A INPUT -s 217.b.c.d -p udp -m udp --sport 137 -j ACCEPT

-A INPUT -i eth2 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT

-A INPUT -d 217.b.c.d -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 192.168.0.0/255.255.255.0 -i eth2 -j ACCEPT

-A INPUT -s 192.168.3.187 -i eth0 -j ACCEPT

-A INPUT -s 192.168.3.99 -i eth0 -j ACCEPT

-A INPUT -s 192.168.3.98 -i eth0 -j ACCEPT

-A INPUT -s 192.168.3.51 -i eth0 -j ACCEPT

-A INPUT -s 192.168.3.31 -i eth0 -j ACCEPT

-A INPUT -i eth0 -p tcp -m tcp -j tcp_packets_inet

-A INPUT -i eth0 -p udp -j udp_packets_inet

-A INPUT -i eth0 -p icmp -j icmp_packets

-A INPUT -d 224.0.0.0/255.0.0.0 -i eth0 -j ACCEPT

-A INPUT -s 217.b.c.d -d 192.168.0.255 -j ACCEPT

-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix «IPT INPUT packet died: » --log-level 7

-A FORWARD -p udp -m udp --dport 123 -j ACCEPT

-A FORWARD -s 192.168.3.0/255.255.255.0 -i eth0 -j ACCEPT

-A FORWARD -s 192.168.3.31 -j ACCEPT

-A FORWARD -s 192.168.3.51 -j ACCEPT

-A FORWARD -s 192.168.3.98 -j ACCEPT

-A FORWARD -s 192.168.3.99 -j ACCEPT

-A FORWARD -s 192.168.3.187 -j ACCEPT

-A FORWARD -i eth0 -p tcp -j bad_tcp_packets

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth2 -j ACCEPT

-A FORWARD -p icmp -j icmp_packets

-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix «IPT FORWARD packet died: » --log-level 7

не помогло.

Пропускаю все пакеты и FORWARD и INPUT (создаю правило в самом начале, чтобы пропускало все.)

Dr. Evil

Попробуй выставить цепочку FORWARD в ACCEPT и убрать все правила. В настройках браузеров сети 192.168.3.0/24 убрать «использовать прокси-сервер» и запустить пинг с любой машины на узел в Интернете, например mail.ru. В этот момент на своем фаерволе запускай:

tcpdump -n -i eth0 icmp

Вывод этой команды приводи сюда.

ftrain
Dr. Evil
Попробуй выставить цепочку FORWARD в ACCEPT и убрать все правила. В настройках браузеров сети 192.168.3.0/24 убрать «использовать прокси-сервер» и запустить пинг с любой машины на узел в Интернете, например mail.ru. В этот момент на своем фаерволе запускай:

tcpdump -n -i eth0 icmp

Вывод этой команды приводи сюда.

Если пинговать с 192.168.3.xx:

10:52:02.624122 IP 192.168.3.31 > ya.ru: icmp 40: echo request seq 33025

10:52:07.938946 IP 192.168.3.31 > ya.ru: icmp 40: echo request seq 33281

10:52:13.443983 IP 192.168.3.31 > ya.ru: icmp 40: echo request seq 33537

10:52:18.942532 IP 192.168.3.31 > ya.ru: icmp 40: echo request seq 33793

Если пинговать с 192.168.0.xx:

10:51:38.420484 IP mycompany.ru > ya.ru: icmp 40: echo request seq 19456

10:51:38.476003 IP ya.ru > mycompany.ru: icmp 40: echo reply seq 19456

10:51:39.419147 IP mycompany.ru > ya.ru: icmp 40: echo request seq 19712

10:51:39.475889 IP ya.ru > mycompany.ru: icmp 40: echo reply seq 19712

10:51:40.419212 IP mycompany.ru > ya.ru: icmp 40: echo request seq 19968

10:51:40.475794 IP ya.ru > mycompany.ru: icmp 40: echo reply seq 19968

10:51:41.419315 IP mycompany.ru > ya.ru: icmp 40: echo request seq 20224

10:51:41.475622 IP ya.ru > mycompany.ru: icmp 40: echo reply seq 20224

я так понимаю под mycompany.ru подразумевается IP моего сервера 217.b.c.d