Владимир320 Опубликовано 12 декабря, 2023 (изменено) · Жалоба Всем салют, мучает вопрос с правила iptables + tcp flag из официально прочитанного мануала как-то я до сих пор не догоняю как правильно писать правила с различными флагами, подскажите плиз, кто разобрался с этим) Для примера есть такого рода правила, которые гуглятся везде, но мне пока ещё не совсем понятны: /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP как бы есть офицbальный мануал по этим флагам: --tcp-flags mask comp Match when the TCP flags are as specified. The first argument mask is the flags which we should examine, written as a comma-separated list, and the second argument comp is a comma-separated list of flags which must be set. Flags are: SYN ACK FIN RST URG PSH ALL NONE. Hence the command iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN will only match packets with the SYN flag set, and the ACK, FIN and RST flags unset. Что здесь является первым аргументом?, то что идет сразу после --tcp-flags и до первой запятой? а следующий аргумент это все остальное? Для примера возьму в разбор это правило iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP Что я тут проверяю? пакет с установленным флагом FIN и неустановленными влагами RST FIN,RST? Изменено 12 декабря, 2023 пользователем Владимир320 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 12 декабря, 2023 · Жалоба 4 минуты назад, Владимир320 сказал: Для примера возьму в разбор это правило iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP Что я тут проверяю? пакет с установленным флагом FIN и неустановленными влагами RST FIN,RST? Два списка разделяются пробелом. Из первого списка должны быть установлены те и только те флаги, которые перечислены во втором. В данном случае проверка на взаимоисключающие флаги FIN и RST, они не должны быть установлены одновременно Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 12 декабря, 2023 (изменено) · Жалоба С чего это я перестал мочь отвечать с цитированием в этом форуме???? не работает кнопка. Ок, если взять правило из мана: --tcp-flags SYN,ACK,FIN,RST SYN зачем нам рассматривать пакеты с флагами SYN,ACK,FIN,RST в котором должен быть установлен тока SYN. Как вообще формируется первый список? У меня же в голове что я могу написать какие флаги установлены и далее дропать или нет Изменено 12 декабря, 2023 пользователем Владимир320 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 12 декабря, 2023 · Жалоба 1 час назад, Владимир320 сказал: --tcp-flags SYN,ACK,FIN,RST SYN Возьми ВСЕ пакеты, где есть ЛЮБОЙ из флагов SYN,ACK,FIN,RST, примени ДЕЙСТВИЕ к пакетам в которых есть ТОЛЬКО флаг SYN Соответственно, мутанты с несколькими флагами одновременно пойдут ДАЛЬШЕ по цепочке Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 12 декабря, 2023 · Жалоба а в этом случаем? --tcp-flags ALL FIN,PSH,URG -j DROP - тое есть берем все пакеты где есть любой из флагов и дропаем где есть один из трех FIN,PSH,URG? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 13 декабря, 2023 (изменено) · Жалоба 23 часа назад, Владимир320 сказал: --tcp-flags ALL FIN,PSH,URG -j DROP Установлены флаги FIN,PSH,URG и сняты любые другие (в данном случае syn/ack/rst) Изменено 13 декабря, 2023 пользователем ixi Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 13 декабря, 2023 (изменено) · Жалоба Цитата Установлены флаги FIN,PSH,URG и сняты любые другие (в данном случае syn/ack/rst) а тут разве не один из трех установлен? Или правильней любые из FIN,PSH,URG установлены Изменено 13 декабря, 2023 пользователем Владимир320 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 14 декабря, 2023 (изменено) · Жалоба 21 час назад, Владимир320 сказал: Цитата Установлены флаги FIN,PSH,URG и сняты любые другие (в данном случае syn/ack/rst) а тут разве не один из трех установлен? Или правильней любые из FIN,PSH,URG установлены Нет. Если вам интересно, зачем нужен фильтр для именно этой комбинации флагов, погуглите. Заодно и решите, нужна ли она вам. Изменено 14 декабря, 2023 пользователем ixi Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 15 декабря, 2023 · Жалоба Цитата Нет. Если вам интересно, зачем нужен фильтр для именно этой комбинации флагов, погуглите. Заодно и решите, нужна ли она вам. данная комбинация флагов мне не нужна) Мне нужно понять как эти правила работают) допустим такое правило -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP тут дропаем трафик с установленными флагами syn,fyn, а как понять первую часть правила?? так как если ваершарком развернуть пакет, то там всегда будут все флаги и установлены тока некоторые, в зависимости от трафика в чем тогда разница если я напишу такие правила: -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP -p tcp --tcp-flags ALL SYN,FIN -j DROP -p tcp --tcp-flags FIN,SYN,RST,ACK SYN,FIN -j DROP мы по сути всегда смотрим в покет со всеми флагами, но выбираем тока нужные установленные флаги. Либо я чет не понимаю Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 18 декабря, 2023 · Жалоба В 15.12.2023 в 15:45, Владимир320 сказал: в чем тогда разница если я напишу такие правила: -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP -p tcp --tcp-flags ALL SYN,FIN -j DROP -p tcp --tcp-flags FIN,SYN,RST,ACK SYN,FIN -j DROP 1 syn/fin=1, urg/ack/psh/rst=любые 2 syn/fin=1, urg/ack/psh/rst=0 3 syn/fin=1, rst/ack=0, psh/rst=любые Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 19 декабря, 2023 · Жалоба Цитата Опубликовано 19 часов назад · Жалоба В 15.12.2023 в 15:45, Владимир320 сказал: в чем тогда разница если я напишу такие правила: -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP -p tcp --tcp-flags ALL SYN,FIN -j DROP -p tcp --tcp-flags FIN,SYN,RST,ACK SYN,FIN -j DROP 1 syn/fin=1, urg/ack/psh/rst=любые 2 syn/fin=1, urg/ack/psh/rst=0 3 syn/fin=1, rst/ack=0, psh/rst=любые Спасибо за ответы, но все же я не понимаю разницы в правилах этих, так как в пакетах всегда есть все флаги, но установлены некоторые. Зачем тогда мне указывать какие то флаги, когда будет равнозначное правило --tcp-flag all какой то флак Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 25 декабря, 2023 (изменено) · Жалоба к примеру я хочу ловить трафик где установлены PSH, ACK флаги я могу написать правила согласно инструкции: -p tcp --tcp-flags ALL ACK,PSH -j LOG -p tcp --tcp-flags FIN,SYN,RST ACK,PSH -j LOG -p tcp --tcp-flags RST ACK,PSH -j LOG и этот пакет, будет попадать под эти три правила или же не будет? Смысл вообще в первой части правила? Типа рассматриваем пакеты в которых есть такие флаги, если всегда во всех пакетах есть все флаги)) взрыв мозга Изменено 25 декабря, 2023 пользователем Владимир320 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 26 декабря, 2023 · Жалоба 19 часов назад, Владимир320 сказал: Типа рассматриваем пакеты в которых есть такие флаги, если всегда во всех пакетах есть все флаги Флаг всегда есть, но для фильтра существует три варианта: 1, 0 или значение не важно. Поэтому сначала фильтруются те флаги, которые интересуют и должны иметь конкретное значение, потом сверяется сами значения 20 часов назад, Владимир320 сказал: к примеру я хочу ловить трафик где установлены PSH, ACK флаги Если другие флаги неважны, то PSH,ACK PSH,ACK. Если важно, чтобы SYN при этом не был установлен, то SYN,PSH,ACK PSH,ACK Второй и третий вариант вряд ли будут работать Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 28 декабря, 2023 (изменено) · Жалоба Цитата Если другие флаги неважны, то PSH,ACK PSH,ACK. Как работает эта запись? Ведь слева мы указали те флаги, которые мы рассматриваем и которые должны быть неустановлены, с справа список установленных флагов. Тут какое-то противоречие получается. Или слева список, который мы просто рассматриваем Изменено 28 декабря, 2023 пользователем Владимир320 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 28 декабря, 2023 · Жалоба 7 часов назад, Владимир320 сказал: Как работает эта запись? Ведь слева мы указали те флаги, которые мы рассматриваем и которые должны быть неустановлены Неправильно, слева указываются те флаги, которые мы рассматриваем. Установлены они или нет, зависит от второго списка. 2 часа назад, disappointed сказал: chatGPT Человечество пока в безопасности :) Вы бы проверили хотя бы... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 29 декабря, 2023 · Жалоба Ошибки есть? А я не проверил, чёт привык, давно всякую мелочь типа js с ним делаю. Вообще он что-то начал загоянться последнее время, весной работало супер, я текстом сложнейшие ТЗ писал он мне правила iptables только в путь выдавал. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 29 декабря, 2023 · Жалоба больше вопрос к такому виду правила PSH,ACK PSH,ACK. рассматриваем покеты с флагами PSH,ACK и в тоже время они должны быть установлены, а значение остальных флагов SYN,RST,FIN,URG нам не важно, оно может иметь значение либо 0 либо 1...? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 30 декабря, 2023 · Жалоба 21 час назад, Владимир320 сказал: больше вопрос к такому виду правила PSH,ACK PSH,ACK. рассматриваем покеты с флагами PSH,ACK и в тоже время они должны быть установлены, а значение остальных флагов SYN,RST,FIN,URG нам не важно, оно может иметь значение либо 0 либо 1...? PSH = 1 И ACK = 1 Остальные неважны. Первый аргумент говорит.. "Так, только вот эти флаги будем проверять, условимся, что они все должны быть в 0". Второй как бы потом первую инструкцию дополняет и меняет инвертируя - "А да, забыл! Не все в 0! Вот эти из них должны быть в 1". Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 5 января · Жалоба В 29.12.2023 в 15:48, Владимир320 сказал: рассматриваем покеты с флагами PSH,ACK и в тоже время они должны быть установлены, а значение остальных флагов SYN,RST,FIN,URG нам не важно, оно может иметь значение либо 0 либо 1...? Да. Если вам проще математически, должно выполнять условие flags & mask == comp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...