Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: iptables string ,сетевая модель OSI  (Прочитано 1968 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
iptables string ,сетевая модель OSI
« : 01 Января 2015, 01:05:36 »
Доброй новогодней ночи всем участникам форума! )))

Помогите пожалуйста сделать так,чтобы к 80 порту можно было подключиться только по пакетам GET ,который описан в этом привиле :
iptables -A INPUT -p tcp --dport 80 -m string --string 'GET' --algo kmp -j ACCEPT

А все остальные подключения дропались бы

Проблема в том ,что когда я пишу в конце iptables -A INPUT -p tcp --dport 80 -j DROP
у меня вообще не подключается
« Последнее редактирование: 01 Января 2015, 20:52:20 от gate »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: iptables string
« Ответ #1 : 01 Января 2015, 01:12:42 »
Начните с начала - опишите, чего вы хотите достичь, какую проблему решить такими нетривиальными способами.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: iptables string
« Ответ #2 : 01 Января 2015, 03:05:21 »
Проблема это - DDoS атака с большим числом ip адресов ,вот логи тестовой атаки :
94.242.51.176 - - [31/Dec/2014:23:57:23 +0400] "A cat is fine too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine ne too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine too. Desudesudesu~A cat is fine t" 414 0 "-" "-"


Хочу сделать так,чтобы можно было контролировать пакеты ,то есть допустим в данной ситуации хочу сделать ,чтобы iptables не пропускал ничего кроме пакетов GET и POST ,вот пример их из логов апапча :
 213.87.133.226 - - [31/Dec/2014:21:28:07 +0400] "GET /sysimg/en.png HTTP/1.1" 304 180 "http://arteas.pw/index.php?f=register" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"

Как бы я понимаю вот эти правила и они работают ,но не получается сделать связку с исключениями . Работает только DROP ,а если прописать ACCEPT и сделать ниже дроп на все остальное,то работать не будет . :
iptables -A INPUT -p tcp --dport 80 -m string --string 'GET' --algo kmp -j DROP

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: iptables string
« Ответ #3 : 01 Января 2015, 03:34:41 »
Пользовательскую цепочку лучше создать.
(Нажмите, чтобы показать/скрыть)
OpenWrt 19.07

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: iptables string
« Ответ #4 : 01 Января 2015, 10:38:31 »
Сайт моментально становится недоступным :(

Пользователь решил продолжить мысль 01 Января 2015, 11:12:53:
Так же попробовал прописать пакет  ,и такой же послать с пакетника , все равно даже вточ-вточ такие же пакеты не проходят
« Последнее редактирование: 01 Января 2015, 11:12:53 от gate »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: iptables string
« Ответ #5 : 01 Января 2015, 18:48:56 »
Во-первых, далеко не все пакеты в HTTP протоколе содержат строку "GET". Даже не все первые пакеты её содержат. Почитайте хоть что-нибудь по протоколу, который вы собираетесь фильтровать, прежде чем что-то фильтровать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: iptables string
« Ответ #6 : 01 Января 2015, 20:11:00 »
Я в курсе ,взял с этого сайта http://ruseller.com/lessons.php?rub=28&id=1726 ,прописал вот так ,для теста :
iptables -N HTTP
iptables -A INPUT -p tcp -m tcp --dport 80 -j HTTP
iptables -A HTTP -m string --string 'GET' --algo kmp -j ACCEPT
iptables -A HTTP -m string --string 'POST' --algo kmp -j ACCEPT
iptables -A HTTP -m string --string 'PUT' --algo kmp -j ACCEPT
iptables -A HTTP -m string --string 'DELETE' --algo kmp -j ACCEPT
iptables -A HTTP -m string --string 'HEAD' --algo kmp -j ACCEPT
iptables -A HTTP -m string --string 'TRACE' --algo kmp -j ACCEPT
iptables -A HTTP -m string --string 'OPTIONS' --algo kmp -j ACCEPT
iptables -A HTTP -j DROP

Все равно сайт не открывает

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: iptables string
« Ответ #7 : 01 Января 2015, 20:18:41 »
Так вот, эти строки будут только в первом пакете HTTP посылки. И все остальные будут у вас сбрасываться, прерывая передачу ещё до начала.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: iptables string
« Ответ #8 : 01 Января 2015, 20:35:12 »
А вообще можно сделать ,так чтобы к 80 порту доходили только пакеты http ,другой мусор блокировал бы iptables ? Могу даже заплатить ,очень важный момент для меня

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: iptables string
« Ответ #9 : 01 Января 2015, 20:38:15 »
https://forum.ubuntu.ru/index.php?topic=255603.msg2021243#msg2021243
Добавьте к этому "сетевая модель OSI".

Сделать можно, если вы поставите перед своим веб-сервером другой веб-сервер, который будет для вас фильтровать трафик.
Оно того стоит?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

chemtech

  • Гость
Re: iptables string
« Ответ #10 : 01 Января 2015, 20:41:21 »
gate,
Тут еще про про DDOS много полезных тем
DDOS  site:ubuntu.ru

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: iptables string
« Ответ #11 : 01 Января 2015, 20:50:46 »
Оно того стоит и стоит даже много . Это атака уровня L7 . У меня есть сложный модуль защиты от DDoS ,но хотелось бы дополнить такими правилами.То есть не реально сделать то ,что я описал выше методом String?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: iptables string ,сетевая модель OSI
« Ответ #12 : 01 Января 2015, 22:21:51 »
Оно того не стоит. Если твой веб-сервер не в состоянии игнорировать паразитный трафик, его надо заменить.
Просто послушайся уже доброго совета и изучи тему, после чего ответ на вопрос "Как ты будешь блокировать атаку 7-го уровня на 3-4, который знать не знает про твои приложения?" станет очевиден.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн gate

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: iptables string ,сетевая модель OSI
« Ответ #13 : 01 Января 2015, 22:36:39 »
Тут дело не в том ,что я не разобрался в теме ),а просто идея возникла ,проверил такое правило
 iptables -A HTTP -m string --string 'POST' --algo kmp -j DROP ,вроде работает,на сайт заходит ,а при регистрации блочит,так как запрос идет POST . сервер у меня 2 x Intel Xeon E5630   8 c/ 16 t 2.53 GHz+ 192 GB ECC 2 x 600 GB SAS , держит атаку в 5000 ботов спокойно , это порядком 5-8MPPS ,фильтрую на входе iptables . Послушаюсь вашего совета) , но если есть идеи по поводу ,что можно сделать еще для увеличения безопасности сервера и защиты от DDoS , можем с вами связаться ,за работу заплачу деньги . Спасибо вам за ответы и советы)!

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: iptables string ,сетевая модель OSI
« Ответ #14 : 01 Января 2015, 22:52:08 »
Ещё раз: чтобы блокировать АТАКУ ПРИКЛАДНОГО (6-7) УРОВНЯ, нужно ПРИЛОЖЕНИЕ, которое в курсе параметров атаки, либо как минимум - в курсе параметров протокола в достаточной степени, чтобы с высокой вероятностью атаку идентифицировать.
Можете поставить балансер перед вашим апачем, чтобы он раздавал статику и изолировал скрипты от атак на уровне протокола хотя бы.
Хотя если идёт подобный флуд, можно банально сделать в апаче отдельный лог, ловить из него соединения без результатов (без отданного контента) и уже на уровне iptables блокировать обидчиков по IP (iphash, xt_recent).
(Одно не исключает другого, да.)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.058 секунд. Запросов: 25.