Bug 9424 - некоректное преобразование флага tcp-syn из читабельного формата в формат iptables
Summary: некоректное преобразование флага tcp-syn из читабельного формата в формат ipt...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: etcnet (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Andrew Kornilov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-04-18 00:44 MSD by Aleksey E. Birukov
Modified: 2006-09-17 10:58 MSD (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksey E. Birukov 2006-04-18 00:44:08 MSD
Пишем:
log log-prefix NEW_NOT_SYN tcp not tcp-syn state new
Получаем:
ERROR: /etc/net/scripts/config-fw: /sbin/iptables -A bad_tcp_packets -t filter -
j LOG --log-prefix NEW_NOT_SYN --protocol TCP ! -mtcp --syn -mstate --state NEW

Вместо "--syn" написано "-mtcp --syn"
Comment 1 Denis Ovsienko 2006-04-18 09:07:09 MSD
Назначаю Андрею.
Comment 2 Andrew Kornilov 2006-04-19 16:26:25 MSD
Мда, тут сложная ситуация. Я думал, что я избавился от такого, а оказалось, что 
нет :( Подробности позже. 
Comment 3 Andrew Kornilov 2006-04-19 16:53:12 MSD
В общем, нужно тестировать, такие ситуации еще вылезут. Я думал даже отдельные 
правила сделать для всех отрицаний, потому как iptables непредсказуемо себя 
ведет. В данном случае, если не указать --protocol tcp, то он вообще падает с 
Unknown error 42949672, так что убирают -mtcp. При этом обязательно нужно будет 
указывать протокол tcp в правиле.   
Comment 4 Denis Ovsienko 2006-04-19 21:55:09 MSD
RESOLVED FIXED?
Если ты об explicit match, то я думал, что неопределённостей нет. И сам не
встречал пока. 
Comment 5 Andrew Kornilov 2006-04-19 22:10:03 MSD
Да проблема в том, что получается: 
! -mtcp --syn 
а нужно: 
-mtcp ! --syn 
 
Для этого и хотел написать еще отрицания для всего. Чтобы правило not syn 
преобразовывалось в это самое -mtcp ! --syn 
Попробовал ! --syn при отсутствующем --protocol TCP и iptables падает, я выше 
писал. Поэтому остался одни правильный вариант, когда нужно указывать протокол 
и когда нет -mtcp. То бишь, сейчас: drop tcp not tcp-syn будет 
преобразовываться в -j DROP --protocol TCP ! --syn и будет работать :)