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

Граница на замке

Антон Карпов, toxa@cterra.ru

Спецвыпуск: Хакер, номер #051, стр. 051-030-1


Поднимаем безопасный и функциональный шлюз для локальной сети

В Москве вовсю свирепствует "Стрим" - ночной кошмар домашних локальных сетей. Однако в других городах нашей необъятной Родины картина не такая радужная: даже в моем родном Питере полно районов, куда не ступала нога "домашнего" провайдера. А значит, самопальные локальные сети все еще живут и здравствуют. Как правило, строители таких сетей считают, что грамотно проложенные кабели и свитчи - это единственная основа надежной работы сети, а все остальное можно переложить на плечи Wingate. Разумеется, это мнение неверно, и ты еще можешь спасти свою сеть, если отделишь ее от интернета надежным шлюзом.

Суровый быт домашних локальных сетей

Основное отличие домашней локальной сети от маленькой корпоративной сети в особенностях поведения пользователей. Пользователи корпоративной сети обязаны соглашаться со всем, что прописано в документе под названием "Корпоративная политика", и терпеть ограничения на доступ к внешним почтовым серверам, авторизацию на прокси-сервере и т.д. В "дикой" локальной сети людям нужен интернет без лишних заморочек, к тому же, как правило, здесь обязательно обитают доморощенные "хакеры", которых хлебом не корми дай украсть чужого трафика. Кроме того, народ, который платит за скачанные мегабайты, вполне законно хочет регулярно отслеживать свою статистику. Наконец, пользователи вряд ли согласятся платить за дорогие свитчи с фильтрацией по портам, VLAN'ами и за мощное железо. Разумеется, провайдер, который протянет "последнюю милю", вряд ли будет всем этим озадачивать себя. Итак, на тебя смотрит видавший виды компьютер, готовящийся стать неприступным шлюзом. Первым делом водружаем на него OpenBSD и обновляем до актуальной -stable версии (на момент написания статьи таковой была 3.6-stable) предварительно распаковав в /usr/src исходники ядра и системы (пакеты src.tar.gz и sys.tar.gz с ftp://ftp.openbsd.org/pub/OpenBSD/3.6):

# setenv CVSROOT anoncvs@anoncvs.ca.openbsd.org:/cvs

# cd /usr/src

# cvs -qz9 up -rOPENBSD_3_6 -Pd

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

# cd /usr/src/sys/arch/i386/conf

# config GENERIC

# cd ../compile/GENERIC

# make depend %26%26 make

# mv /bsd /bsd.old %26%26 cp bsd /bsd

# reboot

Теперь пересоберем userland:

# cd /usr/src

# make -k cleandir %26%26 make obj %26%26 make build

# reboot

Если машина слишком слабая, можно ограничиться наложением патчей с www.openbsd.org/errata.html. Это, в общем, и есть рекомендованный способ обновления OpenBSD. А кто нам мешает поразвлечься с пересборкой системы? ;)

Если ты чувствуешь себя настоящим мачо и вопреки всем предупреждениям решился пересобрать ядро со своим конфигурационным файлом, будь внимателен. Во-первых, четко следуй инструкциям www.openbsd.org/faq/faq5.html. Во-вторых, будь готов ко всему ;) Так, например, реализация непременно возникающего желания выкинуть поддержку IPv6 приведет к неработоспособности pf. А все из-за этих строчек в /etc/rc, осуществляющих первоначальное конфигурирование пакетного фильтра:

Содержание  Вперед на стр. 051-030-2