tolikkk Опубликовано 30 июля, 2010 Жалоба Поделиться Опубликовано 30 июля, 2010 Добрый день. Стоит iptables v1.3.5 на CentOS 5.5 Хочется логировать полную процедуру установки соединения tcp -- т.н. 3-way tcp handshake, то есть последовательность пакетов SYN -- SYN,ACK -- ACK. Для "SYN" и "SYN,ACK" сделал правила: -A FORWARD -p tcp --tcp-flags ALL SYN -j LOG --log-prefix "FORWARD" --log-level 7-A FORWARD -p tcp --tcp-flags ALL SYN,ACK -j LOG --log-prefix "FORWARD" --log-level 7 С этим все нормально. А с "ACK" проблема, не понимаю, какое правило надо создать, чтобы залогировать только первый "ACK" установки соединения. Если сделать правило: -A FORWARD -p tcp --tcp-flags ALL ACK -j LOG --log-prefix "FORWARD" --log-level 7 то логи быстро загадятся обычными "ACK"'ами, ходящими в рамках уже установленного соединения. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 30 июля, 2010 Жалоба Поделиться Опубликовано 30 июля, 2010 А если попробовать включить правило только для новых соединений (--state NEW) ? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
tolikkk Опубликовано 30 июля, 2010 Автор Жалоба Поделиться Опубликовано 30 июля, 2010 Такой вариант я тоже пробовал - не подходит. Когда включены лог всех ACK'ов, видно, что пакеты SYN-SYN/ACK-ACK проходят в течение одной секунды: Jul 30 16:48:13 test1 kernel: FORWARDIN=bond0.3 OUT=bond0.3 SRC=10.200.2.4 DST=10.200.0.2 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=14809 DF PROTO=TCP SPT=4323 DPT=2500 WINDOW=64512 RES=0x00 SYN URGP=0 Jul 30 16:48:13 test1 kernel: FORWARDIN=bond0.3 OUT=bond0.3 SRC=10.200.0.2 DST=10.200.2.4 LEN=44 TOS=0x00 PREC=0x00 TTL=29 ID=155 PROTO=TCP SPT=2500 DPT=4323 WINDOW=8192 RES=0x00 ACK SYN URGP=0 Jul 30 16:48:13 test1 kernel: FORWARDIN=bond0.3 OUT=bond0.3 SRC=10.200.2.4 DST=10.200.0.2 LEN=40 TOS=0x00 PREC=0x00 TTL=126 ID=14812 DF PROTO=TCP SPT=4323 DPT=2500 WINDOW=64512 RES=0x00 ACK URGP=0 В случае с опцией --state NEW, пакет ACK приходит, но почему-то с большой задержкой. Скорее это уже ACK от обмена данными внутри соединения, а не от его установки: Jul 30 16:47:00 test1 kernel: FORWARDIN=bond0.3 OUT=bond0.3 SRC=10.200.2.4 DST=10.200.0.2 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=7778 DF PROTO=TCP SPT=4322 DPT=2500 WINDOW=64512 RES=0x00 SYN URGP=0 Jul 30 16:47:00 test1 kernel: FORWARDIN=bond0.3 OUT=bond0.3 SRC=10.200.0.2 DST=10.200.2.4 LEN=44 TOS=0x00 PREC=0x00 TTL=29 ID=152 PROTO=TCP SPT=2500 DPT=4322 WINDOW=8192 RES=0x00 ACK SYN URGP=0 Jul 30 16:47:11 test1 kernel: FORWARDIN=bond0.3 OUT=bond0.3 SRC=10.200.0.2 DST=10.200.2.4 LEN=41 TOS=0x00 PREC=0x00 TTL=29 ID=153 PROTO=TCP SPT=2500 DPT=4256 WINDOW=8192 RES=0x00 ACK URGP=0 Конечно, данный вариант лучше, чем ничего, но тем не менее не то. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Pomp Опубликовано 2 сентября, 2010 Жалоба Поделиться Опубликовано 2 сентября, 2010 Столкнулся с такой-же проблемой, и чтоб лог не переполнять посмотрел статус NEW вот пример http://commandlist.ru/command/3991 только нужно вместо дропа заюзать ulog. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.