LinuxForum.Fans
Тема

iptables: bad_packets

Автор: snarky 8 сообщений 2392 просмотров
#341216

Добрый день!
В файле messages стали появляться множественные записи iptables:
Oct 1 15:10:37 ctx kernel: bad_tcp_packets:IN=eth0 OUT=eth0 SRC=192.168.15.254 DST=192.168.16.23 LEN=292 TOS=0x00 PREC=0x00 TTL=127 ID=13375 DF PROTO=TCP SPT=445 DPT=56330 WINDOW=513 RES=0x00 ACK PSH URGP=0
правило в iptables
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x02/0x02 state NEW LOG flags 0 level 6 prefix `bad_tcp_packets:'

Причем и источники и получатели самые различные. Как можно выявить причину появления таких пакетов?

#341218

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

Критерий --tcp-flags
Пример iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
Описание Определяет маску и флаги tcp-пакета. Пакет считается удовлетворяющим критерию, если из перечисленных флагов в первом списке в единичное состояние установлены флаги из второго списка. Так для вышеуказанного примера под критерий подпадают пакеты у которых флаг SYN установлен, а флаги FIN и ACK сброшены. В качестве аргументов критерия могут выступать флаги SYN, ACK, FIN, RST, URG, PSH, а так же зарезервированные идентификаторы ALL и NONE. ALL -- значит ВСЕ флаги и NONE - НИ ОДИН флаг. Так, критерий --tcp-flags ALL NONE означает -- "все флаги в пакете должны быть сброшены". Как и ранее, символ ! означает инверсию критерия Важно: имена флагов в каждом списке должны разделяться запятыми, пробелы служат для разделения списков.

#341330
drBatty написал:
http://www.opennet.ru/docs/RUS/iptables/

Критерий --tcp-flags
Описание Определяет маску и флаги tcp-пакета.

С описанием понятно. Мне хотелось бы разобраться какой из этапов установления соединения подпадает под приведенное мной правило.

Если рассмотреть процесс установки TCP соединения
1. Запрашивающая сторона (которая, как правило, называется клиент) отправляет SYN сегмент, указывая номер порта сервера, к которому клиент хочет подсоединиться, и исходный номер последовательности клиента (в данном примере ISN, 1415531521). Это сегмент номер 1.
2. Сервер отвечает своим сегментом SYN, содержащим исходный номер последовательности сервера (сегмент 2). Сервер также подтверждает приход SYN клиента с использованием ACK (ISN клиента плюс один). На SYN используется один номер последовательности.
3. Клиент должен подтвердить приход SYN от сервера с использованием ACK (ISN сервера плюс один, сегмент 3).

Если я правильно понимаю, это пакеты, инициирующие установление соединения c хоста 192.168.15.254 на 192.168.16.23? Исходный порт 445, целевой 56330? Порт 445 это Microsoft-DS SMB file sharing. Или это подтверждение SYN с ACK?

#341338

"snarky" написал:
Если я правильно понимаю, это пакеты, инициирующие установление соединения c хоста 192.168.15.254 на 192.168.16.23? Исходный порт 445, целевой 56330? Порт 445 это Microsoft-DS SMB file sharing. Или это подтверждение SYN с ACK?
это что-то непонятное, которое кто-то хочет отправить с этой системы в сетевую карточку, якобы с .254 на .23й адрес

причём в данном случае это НЕ syn от клиента к серверу (потому-что такие flags)
и НЕ ack от сервера (потому-что OUTPUT)

Возможно речь об этом: http://www.opennet.ru/docs/RUS/iptables/#NEWNOTSYN
#342904

drBatty написал:
[quote="snarky"]Если я правильно понимаю, это пакеты, инициирующие установление соединения c хоста 192.168.15.254 на 192.168.16.23? Исходный порт 445, целевой 56330? Порт 445 это Microsoft-DS SMB file sharing. Или это подтверждение SYN с ACK?
это что-то непонятное, которое кто-то хочет отправить с этой системы в сетевую карточку, якобы с .254 на .23й адрес

причём в данном случае это НЕ syn от клиента к серверу (потому-что такие flags)
и НЕ ack от сервера (потому-что OUTPUT)

Возможно речь об этом: http://www.opennet.ru/docs/RUS/iptables/#NEWNOTSYN[/quote]

Каким образом возможно выявить истинный источник пакета и возможно ли просмотреть собственно пакет?
#342913

snarky написал:
[quote=drBatty][quote="snarky"]Если я правильно понимаю, это пакеты, инициирующие установление соединения c хоста 192.168.15.254 на 192.168.16.23? Исходный порт 445, целевой 56330? Порт 445 это Microsoft-DS SMB file sharing. Или это подтверждение SYN с ACK?
это что-то непонятное, которое кто-то хочет отправить с этой системы в сетевую карточку, якобы с .254 на .23й адрес

причём в данном случае это НЕ syn от клиента к серверу (потому-что такие flags)
и НЕ ack от сервера (потому-что OUTPUT)

Возможно речь об этом: http://www.opennet.ru/docs/RUS/iptables/#NEWNOTSYN[/quote]

Каким образом возможно выявить истинный источник пакета и возможно ли просмотреть собственно пакет?[/quote]
берем снифер тот же wireshark и анализируем пакеты
#342916

"snarky" написал:
Каким образом возможно выявить истинный источник пакета и возможно ли просмотреть собственно пакет?
можно логгирование включить в iptables

ну и да, снифер.
#343614

drBatty написал:
[quote="snarky"]Каким образом возможно выявить истинный источник пакета и возможно ли просмотреть собственно пакет?
можно логгирование включить в iptables

ну и да, снифер.[/quote]

Разобрался с проблемой. В общем-то проблема лежала на поверхности, но сразу внимание не обратил. Допущены ошибки в проектировании сети. IP пакеты отправлялись по разным маршрутам, соответственно и на маршрутизатор приходили те, которые попасть на него были не должны.
СПАСИБО!!!
Войдите или зарегистрируйтесь, чтобы ответить.