используя 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.