Page 4 of 6

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 3:41 pm
by demian
ну в этих правилах тоже есть узкие моменты

и я кажется понил в чем проблема.
проблема в том... что хочется включить iptables чтобы защитить сервер, но вопрос в том от чего будем защищаться остается открытым.

т.е нет четкой постановки задачи... может для начала начать с нее? ))

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 3:52 pm
by margent
Мне кажется самое важное:
FTP/sFTP/SSH и ограничить количество конектов на 80 порт в секунду, дабы не задолбить сервер тупо закликивая мышой.

Вообще, странно что панель отключает iptables, а не имеет банальный конфиг под себя. В этом же ISPmanager он есть, и из коробки работает адекватно, не идеален, но работает.

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 4:20 pm
by demian
ISPmanager просто правила на открытие портов без всякой защиты и ограничений + там тоже отрубается selinux...
ssh, sftp открыты полностью... ограничения по IP для ftp через .ftpacces...

PS: для того чтобы потом правила прописать при установки их и надо с начало сформировать чтобы всем подошли...

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 4:21 pm
by Deeryo
demian wrote:от чего будем защищаться остается открытым.
т.е нет четкой постановки задачи... может для начала начать с нее? ))
Атаки на сервер могут быть разными, попробуем перечислить. Пока не будем рассматривать исходящие от нас атаки на другие сервера.
- icmp flood - создали правило limit
- udp flood. Тут мы пока полностью открыли 53 порт. Может стоит поставить limit, не забываем про dns amplification проблему.
- подбор паролей ssh, ftp. Тут мы только ограничили частоту соединений.
- спам. Ограничили частоту соединений на smtp, но этого мало, придется оставить антиспамы.
- http ddos c одного или небольшого количества ip. Попытались ограничить частоту в hashlimit
- http ddos c многих ip. Тут мы пока ограничили общую частоту, но наши сайты не будут доступны. Нужно добавлять автоматическую блокировку адресов. Для это может подойти модули iptables recent или ipset c таймаутом.
- http ddos c большим количеством соединений, которые не закрываются, чтобы занять все наши порты,сокеты. Для этого есть модуль iptables connlimit (-m connlimit --connlimit-above 50 --connlimit-mask 32)
- http ddos на php скрипты, которые сильно грузят процессор. Тут нужны ограничения пользователей по cpu, но это не тема файервола.
- http атаки на подбор паролей, обычно это повторяющиеся запросы типа POST /administrator/index.php, POST /wp-login.php. Как-то сложно это для файервола, похоже лучше логи апача анализировать.
- ..

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 4:27 pm
by Deeryo
Добавлю еще один метод защиты через blacklist. Есть такой список blocklist.de, куда попадают атаки из разных fail2ban кажется. В общем, я беру скриптом файл http://lists.blocklist.de/lists/all.txt и запихиваю его в список ipset, регулярно обновляя. Потом в iptables этот список блокируется вот таким правилом:
-A INPUT -p tcp -m set --match-set blocklist src -j DROP

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 4:30 pm
by demian
Deeryo wrote:- http ddos на php скрипты, которые сильно грузят процессор. Тут нужны ограничения пользователей по cpu, но это не тема файервола.
- http атаки на подбор паролей, обычно это повторяющиеся запросы типа POST /administrator/index.php, POST /wp-login.php. Как-то сложно это для файервола, похоже лучше логи апача анализировать.
- ..
эти два тоже можно реализовать

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 4:33 pm
by demian
Deeryo wrote:Добавлю еще один метод защиты через blacklist. Есть такой список blocklist.de, куда попадают атаки из разных fail2ban кажется. В общем, я беру скриптом файл http://lists.blocklist.de/lists/all.txt и запихиваю его в список ipset, регулярно обновляя. Потом в iptables этот список блокируется вот таким правилом:
-A INPUT -p tcp -m set --match-set blocklist src -j DROP
этот список большой на его перебор потребуется значительно количество процессорного времени

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 4:42 pm
by Deeryo
demian wrote:этот список большой на его перебор потребуется значительно количество процессорного времени
Дело в том, что ipset не перебирает адреса, а находит их по хэшу, поэтому скорость не зависит от количества адресов. Вот пример создания сэта:
ipset create blacklist hash:net family inet hashsize 8192 maxelem 65536 timeout 0
ipset add blacklist 10.10.10.10 timeout 3600
ipset add blacklist 10.10.10.12
ipset add blacklist 10.10.11.0/24 timeout 600
ipset add blacklist 10.10.12.0/24

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 5:04 pm
by demian
то есть как я и предполагал те правила что были последними можно смело очищать и писать все заново... что и требовалось доказать

ЗЫ список блокировки и нормальная защита от flood приведет к большой загрузки проца при атаках без тюнинга IP стека

Re: Настройки Iptables для сервера

Posted: Thu Mar 06, 2014 5:26 pm
by belka2007
demian wrote:т.е нет четкой постановки задачи... может для начала начать с нее? ))
Ну так как панель для вебсервера... то и в конфигах Iptables хотелось бы изначальные настройки по безопасности чтоб хотя бы от мелких атак и деяний нехороших людей обезопаситься, но при этом чтоб и роботе сайтов не мешало.
Понятное дело что от серьезных атак сложно будет уберегтись... но это уже задачи другого уровня.

Вообще можно было бы например сделать 3 конфигурации которые бы выбирались при установке панели когда определяются параметры системы.