Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #68, ИЮЛЬ 2006 г.

железобетонный сервер

_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.

Назад на стр. 068-052-5  Содержание  Вперед на стр. 068-052-7