Назад | Перейти на главную страницу

TCPDump и IPTables DROP по строке

используя tcpdump -nlASX -s 0 -vvv port 80 Я получаю что-то вроде:

14:58:55.121160 IP (tos 0x0, ttl 64, id 49764, offset 0, flags [DF], proto TCP (6), length 1480)
    206.72.206.58.http > 2.187.196.7.4624: Flags [.], cksum 0x6900 (incorrect -> 0xcd18), seq 1672149449:1672150889, ack 4202197968, win 15340, length 1440
        0x0000:  4500 05c8 c264 4000 4006 0f86 ce48 ce3a  E....d@.@....H.:
        0x0010:  02bb c407 0050 1210 63aa f9c9 fa78 73d0  .....P..c....xs.
        0x0020:  5010 3bec 6900 0000 0f29 95cc fac4 2854  P.;.i....)....(T
        0x0030:  c0e7 3384 e89a 74fa 8d8c a069 f93f fc40  ..3...t....i.?.@
        0x0040:  1561 af61 1cf3 0d9c 3460 aa23 0b54 aac0  .a.a....4`.#.T..
        0x0050:  5090 ced1 b7bf 8857 c476 e1c0 8814 81ed  P......W.v......
        0x0060:  9e85 87e8 d693 b637 bd3a 56ef c5fa 77e8  .......7.:V...w.
        0x0070:  3035 743a 283e 89c7 ced8 c7c1 cff9 6ca3  05t:(>........l.
        0x0080:  5f3f 0162 ebf1 419e c410 7180 7cd0 29e1  _?.b..A...q.|.).
        0x0090:  fec9 c708 0f01 9b2f a96b 20fe b95a 31cf  ......./.k...Z1.
        0x00a0:  8166 3612 bac9 4e8d 7087 4974 0063 1270  .f6...N.p.It.c.p

Что мне нужно, чтобы использовать IPTables для блокировки через строку. Или есть лучший способ блокировать атаки, которые имеют что-то общее?

Вопрос: Могу ли я выбрать любой фрагмент из этого IP-пакета и назвать его строкой?

iptables -A INPUT -m string --alog bm --string attack_string -j DROP

Другими словами: в некоторых случаях я могу бан с TTL = xxx и использовать его, если у атаки такой же TTL. Конечно, он будет блокировать некоторые допустимые пакеты, но если это означает, что ящик остается в рабочем состоянии, он работает до тех пор, пока атака не прекратится, но я хотел бы УЗНАТЬ, как НАЙТИ другие общие вещи в пакете для блокировки с помощью IPTables

iptables -A INPUT -m string --alog bm --string attack_string -j DROP


У этой идеи есть пара проблем.

Сначала вы должны увидеть соответствующий документация:

Пожалуйста, используйте этот матч с осторожностью. Многие люди хотят использовать этот матч, чтобы остановить червей, вместе с целью DROP. Это большая ошибка. Это было бы побеждено любым методом уклонения от IDS.

Подобным образом многие люди использовали это совпадение как средство для остановки определенных функций в HTTP, таких как POST или GET, отбрасывая любой HTTP-пакет, содержащий строку POST. Пожалуйста, поймите, что эту работу лучше выполнять с помощью прокси-сервера с фильтрацией. Кроме того, любой HTML-контент со словом POST будет удален с помощью первого метода. Это совпадение было разработано, чтобы иметь возможность ставить в очередь интересные для пользователя пакеты для лучшего анализа, вот и все. Отбрасывание пакета на основе этого будет отменено любым методом обхода IDS.


Что за -string Директива действительно предназначена для помещения пакетов в отдельную очередь или цепочку для обработки системой IDS. Он не предназначен для интерпретации информации Уровня 7 ни целостно / поведенчески, ни с использованием сопоставления сигнатур, а затем отбрасывания ее, когда она определена как «плохая». Во-вторых, -string директива недостаточно сложна для вашего варианта использования, и вы, вероятно, в конечном итоге потеряете пакеты, которые хотите сохранить.

Вы также заметите, что в пакете нет строки, которую вы можете кормить -string. Пакет, показанный TCPDump, не читается после преобразования (предположительно) в ASCI. В -string Аргумент действительно предназначен для поиска таких вещей, как команды HTTP Post, где у вас есть строки в пакете. Если вы хотите реализовать свою идею использования iptables в качестве системы IDS, соответствующей подписи, вы, вероятно, захотите использовать U3 Возможность сопоставления для поиска определенных битовых шаблонов.

В-третьих, что наиболее важно, к тому времени, когда пакеты, участвующие в отказе в обслуживании, достигают вашего компьютера и обрабатываются вашим брандмауэром, ущерб уже нанесен. Любое существенное смягчение последствий атаки типа «отказ в обслуживании» потребует взаимодействия с вашим вышестоящим провайдером, чтобы заблокировать трафик. перед он достигает вашего сервера.

Ваш последний комментарий, похоже, указывает на то, что вы ищете способ справиться с синхронными наводнениями. Файлы cookie Syn предназначены именно для этого. Вы можете включить файлы cookie с помощью следующей команды, запущенной от имени пользователя root.

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Есть и другие параметры, которые вы можете настроить, чтобы изменить поведение файлов cookie синхронизации. См. Документацию по адресу http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt.