1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. ТАМИОР
  2. ТАМИОР
    upd: Защищаем шлюз от проброса icmp туннеля. Итак, рассмотрим защиту от проброса в 2 варианта. Вариант 1: Фильтрация на основе размера пакета. При пробрасывании icmp туннеля характерны нестандартные размеры пересылаемых icmp пакетов (echo-request), следовательно для защиты от туннеля можно фильтровать icmp трафик по длине пакета. Ping по умолчанию посылает пакет с данными размером 56 байтов + 8 байтов icmp заголовок + 20 байтов ip заголовок, итого 84 байта. iptables -A FORWARD -p icmp --icmp-type echo-request -m length --length 84 -j ACCEPT Мы разрешили icmp пакет типа echo-request длинной 84 байта. iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT Пропускаем пакеты относящиеся к установленным соединениям. Вариант 2: Фильтрация на основе номера последовательности. При последовательной посылке icmp пакетов echo-request к хосту (ping), поле sequence number заголовка icmp пакета увеличиваться на 1 с каждым посланным пакетом. iptables -A FORWARD -p icmp --icmp-type echo-request -m recent --name BLOCK --rcheck --seconds 240 -j DROP Этой командой мы создадим таблицу для хранения ip адресов, которые будем блокировать, с интервалом обновления 240 секунд. iptables -A FORWARD -p icmp --icmp-type echo-request -m string --algo kmp --from 27 --to 28 --hex-string "|0f|" -m recent --name BLOCK --set -j DROP Проверяем вторую половину поля sequence number -from 27 --to 28, если оно равно 15 --hex-string "|0f|" , то добавляем в таблицу BLOCK для блокирования icmp пакетов с этого ip. iptables -A FORWARD -p icmp --icmp-type echo-request -m string --algo kmp --from 26 --to 27 ! --hex-string "|00|" -m recent --name BLOCK --set -j DROP Проверяем первую половину поля sequence number -from 26 --to 27 на отличное от нуля значения ! --hex-string "|00|" , если больше то добавляем в таблицу BLOCK для блокирования icmp пакетов с этого ip iptables -A FORWARD -p icmp --icmp-type echo-request -j ACCEPT Разрешаем icmp пакет типа echo-request. iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT Пропускаем пакеты относящиеся к установленным соединениям. © ТАМИОР
    Сообщение от: ТАМИОР, 26 июл 2011 в разделе: PW Сервер
  3. ТАМИОР
    upd: Небольшая пакость для сканеров портов. Разработано не совсем мной, я просто лишь уменьшил все в два правила. Собственно суть заключается в следующем. Весь трафик идущий не на 80 порт будет перенаправлен на 80 порт: iptables -A PREROUTING -t nat -p tcp ! --dport 80 -j REDIRECT --to-port 80 iptables -A INPUT -p tcp --syn --dport 80 -m connlimit ! --connlimit-above 5 -j ACCEPT iptables -P INPUT DROP iptables -P INPUT DROP - ставите либо после либо перед правилами, у каждого сервера почему-то по разному работает. --connlimit-above 5 - количество разрешенных подключений с одного IP адреса. Редактируете под себя. Ну и в результате сканирования с набором таких правил сканер может Вам показать огромное количество открытых портов, на самом деле закрытых =) P.S. Это не относится к серверной части Perfect World. Это только для Web-сервера. P.P.S. Выложил в эту тему, так как веду полный разбор защиты средствами iptables.
    Сообщение от: ТАМИОР, 26 июл 2011 в разделе: PW Сервер
  4. ТАМИОР
    upd: Защита порта 29000, 80 от сканирования. Внимание: данный метод защиты не проверялся и неизвестно как он будет влиять на игровой порт. Проверяйте на свой страх и риск!!! Итак, что такое сканирование порта? Это отправка, как правило, одного пакета по протоколу tcp с флагом syn. Следовательно нам нужно запретить получать первый пакет и пропускать все остальные. iptables -A INPUT -p tcp --dport 29000 -m state --state NEW -m hashlimit --hashlimit-name NAME1 --hashlimit-mode srcport --hashlimit-upto 1/m --hashlimit-burst 1 -j DROP iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m hashlimit --hashlimit-name NAME1 --hashlimit-mode srcport --hashlimit-upto 1/m --hashlimit-burst 1 -j DROP iptables -A INPUT -p tcp --syn -m multiport --dports 29000,80 -j ACCEPT Данная политика правил запретит первый пакет по протоколу tcp с флагом syn и пропустит все остальные. При сканировании сканер покажет Вам что порт закрыт. Данная политика подходит для порта 80 (проверено), для порта 29000 на свой страх и риск. Единственный минус: не значительно увеличится время соединения. Значение -hashlimit-upto 1/m и --hashlimit-burst 1 может быть от 1 до 4, при увеличении значения задержка установки соединения будет пропорционально увеличиваться. То есть чем больше первых пакетов пропускается, тем дольше устанавливается соединение. Так же данный метод может хорошо защитить от syn флуда (один из методов DDoS атаки). Правила прописываются в файл rc.local по адресу /etc/, после написания правил следует перезагрузить iptables или саму серверную машину. P.S. Дана только начальная точка, доработку и все прочее доделываете самостоятельно исходя из гайда. © ТАМИОР
    Сообщение от: ТАМИОР, 26 июл 2011 в разделе: PW Сервер
  5. ТАМИОР
  6. ТАМИОР
  7. ТАМИОР
  8. ТАМИОР
  9. ТАМИОР
  10. ТАМИОР
  11. ТАМИОР
  12. ТАМИОР
  13. ТАМИОР
    После долгих тестов и чтения дополнительных манулов составил защиту для сервера. В целом спасибо pilad'у за мануал и небольшое разъяснение. Итак. Для начала нужно разрешить то, что Вам нужно. К примеру нужно разрешить порты 22 (ssh) и 80 (http) iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT Далее нам нужно запретить все, что не разрешено. iptables -P INPUT REJECT Но разрешать 22 порт всем думаю не стоит. Поэтому надо его ограничить для определенного IP или маски. iptables -A INPUT -p tcp -s IP --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j REJECT Данное правило разрешит доступ на 22 порт только тому адресу, который Вы впишите. Всех остальных будет сбрасывать. Можно поставить вместо REJECT команду DROP. Но я пишу именно так, потому что на тестах команда DROP у меня выдавала сбой в работе защиты. Так же можно запретить какому либо IP или маске подключаться к порту. Например, нужно запретить IP адресу 192.168.0.1 подключаться на порт 443 iptables -A INPUT -p tcp -s 192.168.0.1 --dport 443 -j REJECT iptables -A INPUT -p tcp --dport 443 -j ACCEPT Следует запомнить важную деталь. Все правила читаются сверху вниз! И команду "закрыть все" надо вписывать всегда последней, в противном случае защита не гарантирует стабильность. Тоже самое можно сделать и с исходящими соединениями, но эту часть я ещё не разбирал. Если займусь, так же сделаю мини гайд. Надеюсь кому-нибудь будет полезно. Все правила пишутся в файле rc.local перед строкой exit 0, который лежит в папке /etc/ Правила вступают в силу только после перезагрузки серверной машины или перезагрузки apache2 и iptables. Еще раз огромное спасибо pilad'у и всем кто давал советы. Так же спасибо за помощь в тестировании Hecate, Quutamo и проекту PWPlay Online. © ТАМИОР
    Автор темы: ТАМИОР, 6 июл 2011, ответов - 35, в разделе: PW Сервер
  14. ТАМИОР
    Сообщение

    Дизай by KRAVCH

    //off и долго вы еще писюнами мериться будете?
    Сообщение от: ТАМИОР, 28 мар 2011 в разделе: PW Web
  15. ТАМИОР
  16. ТАМИОР
  17. ТАМИОР
  18. ТАМИОР
  19. ТАМИОР
  20. ТАМИОР