железобетонный сервер _MIF_ (ROOT@SECURITYLAB.CO.IL) Спецвыпуск: Хакер, номер #068, стр. 068-052-6 ip="123.31.123.123" # IP сервера myip="90.90.90.90" # Твой статический ип Листинг файла /etc/rc.firewall # С этих диапазонов ничего хорошего за всю историю РуНета не приходило. ${fwcmd} add deny log logamount 1000 ip from 217.17.248.0/24 to any ${fwcmd} add deny log logamount 1000 ip from 62.149.64.0/18 to any ${fwcmd} add deny log logamount 1000 ip from 212.93.192.0/19 to any ${fwcmd} add deny log logamount 1000 ip from 212.106.64.0/19 to any ${fwcmd} add deny log logamount 1000 ip from 62.215.0.0/16 to any ${fwcmd} add deny log logamount 1000 ip from 200.0.0.0/8 to any # Сервисы # Пропускаем фтп ${fwcmd} add pass tcp from any to ${ip} 21 setup # Открываем ssh только для себя ${fwcmd} add pass tcp from ${myip} to ${ip} 22 setup # Веб ${fwcmd} add pass tcp from any to ${ip} 80 setup # Https ${fwcmd} add pass tcp from any to ${ip} 443 setup # Разрешаем трафик для всех уже установленных соединений ${fwcmd} add pass tcp from any to any established # Пропускаем IP-фрагменты ${fwcmd} add pass all from any to any frag # Разрешаем исходящие TCP ${fwcmd} add pass tcp from ${ip} to any setup # А теперь все идут лесом ${fwcmd} add deny tcp from any to any setup # Разрешаем DNS-трафик ${fwcmd} add pass udp from ${ip} to any 53 keep-state # Разрешаем NTP-запросы ${fwcmd} add pass udp from ${ip} to any 123 keep-state В зависимости от того, как ты настроил passive-mode в конфиге pure-ftpd, не забудь открыть нужный диапазон портов. [Chroot.] Когда ко мне прибежал очередной знакомый админ и с выпученными глазами сообщил, что теперь у него стоит mod_chroot для Апача – я задал ему вполне легитимный вопрос: «Зачем?». Ответ был стандартный – «Потому что секурно». Мы с ним рассмотрели минусы решения: потеря производительности, лишний немаленький модуль, дополнительный конфиг. Смотрим плюсы: а что дает модуль? А ничего он не дает. То же можно сказать и про обычный chroot – он ничего не дает в плане безопасности. Дело в том, что грамотно выставленные chmod’ы дают тот же эффект, но без потерь в ресурсах и дополнительных заморочек. Для системы, которую мы рассматриваем на примере, chroot не пригодится. Однако существует множество случаев, когда он необходим. В основном, к помощи chroot’а имеет смысл прибегать, когда требуется обезопасить отдельный сервис. Например, ISC BIND, который, мягко говоря, небезопасен – создавать ему «песочницу» необходимо, даже если DNS – это единственный сервис, запущенный на системе. [Jail.] В связи с тем, что вопрос безопасности сегодня стоит очень остро, постоянно появляются все новые и новые решения. К сожалению, большинство из них далеки от идеала. Выбирая любое решение, необходимо сначала рассматривать его недостатки, и только потом – преимущества, так как обычно игра не стоит свеч. Например, Jail в BSD. С одной стороны – все замечательно и прекрасно, если походить по форумам – везде восторженные отклики «профессионалов» о том, как у них все теперь секурно. На примере того же хостинга давай посмотрим, что будет, если мы поставим туда jail’ы. Во-первых, в джейл нам придется загонять каждый вхост, а значит – мы серьезно теряем в производительности. Во-вторых, jail еще очень плохо документирован, а значит, уже нужно быть готовым к сюрпризам (не всегда приятным). В-третьих, jail еще мало кто использует, и я бы не был на 100% уверен в его стабильности, и, уж тем более, безопасности. В-четвертых, если хакер достаточно квалифицирован, чтобы поднять привилегии внутри джейла, то ему не составит большого труда вылезти из него в основную систему. А теперь рассмотрим плюсы: джейл позволяет нам создавать ОС внутри ОС. Круто. Но как показывают его минусы – в данном случае - бессмысленно. Существуют варианты, когда такие системы необходимы – это при раздаче шеллов или VDS пользователям. Например, проект firstvds.ru работает на основе модифицированного FreeBSD jail. |