Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру
Установка межсетевого экрана (firewall)
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Документация для Linux" / Оглавление документа

Установка межсетевого экрана (firewall)

Перед прочтением этой части главы, вы должны иметь установленный пакет iptables, как описано в предидущем разделе.

Введение в создание экрана

Общим назначением экрана является защита компьютера или сети от злостных вторжений.

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

Хотя в реальном мире демоны могут быть ненастроенными и разработанными вопреки необходимым сервисам и являться свободно доступными. Вы можете захотеть выбрать сервис, доступный на некоторых машинах, или вы можете захотеть ограничить машины или приложения, разрешенные для внешнего доступа, либо вы можете просто не доверять некоторым из ваших приложений или пользователей. Возможно вы подключены к интернет. В таком мире экран необходим.

Не думайте, что наличие экрана сделает лишней осторожную конфигурацию или что он сделает любое невнимание к конфигурации безвредным. Имея экран, вам необходимо содержать приложения и демоны в вашей системе правильно настроенными и обновленными. Экран не является лекарством от всего, но должен быть важной частью вашей общей стратегии безопасности.

Значение слова "экран"

Слово экран может иметь несколько различных значений.

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

Это система, находящаяся между интернет и интранет. Для уменьшения риска от компрмисов самого экрана, он обычно имеет только одно назначение—защита интранет. Хотя освобождение от риска не полное, задачи маршрутизации и IP маскарадинга (перезаписанные IP заголовки пакетов он перенаправляет от клиентов с личными IP адресами на интернет так, что они выглядят приходящими от самого экрана) являются общерассмотренными относительно безопасности.

Это часто старый компьютер, выполняющий функции маскарадинга или маршрутизации, но предлагающий не-экранирующие сервисы, например интернет кэша или почты. Это может быть использовано для домашних сетей, но не рассмотрено потому, что комбинация сервера и маршрутизатора/экрана на одной машине подымает комплексность установки.

Экран с демилитаризованной зоной [не описанный здесь в дальнейшем]

Этот вариант выполняет маскарадинг или маршрутизацию, но допускает общественный доступ к некоторым ответвлениям вашей сети, котоые, имея общественные IP адреса и физически разделенную структуру, являются важными отдельными сетями с прямым доступом в интернет. Сервера в такой сети должны быть легко доступны как из интранет, так и из интернет. Экран защищает обе сети. Такой тип экрана имеет минимум три сетевых интерфейса.

Пакетный фильтр

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

Теперь вы можете начинать строить свой экран

[Caution]

Внимание

Это введение в установку экрана не является полным руководством по безопасности системы. Установка экрана - это комплексная задача, требующая осторожной конфигурации. Приведенные здесь скрипты просто дают примеры работы экрана. Они не предназначены для размещения в любой частной конфигурации и не могут предоставить полную защиту от атак.

Настройка этих скриптов для вашей специфической ситуации будет необходима для оптимальной конфигурации, но вы должны серьезно изучить документацию по iptables и созданию экранов вообще. Обратитесь к списку Дополнительного чтения по организации экрана в конце этого раздела для получения больших деталей. Здесь вы найдете список адресов, содержащих достаточно исчерпывающую информацию о построении вашего собственного экрана.

Скрипт конфигурации экрана, установленный в последнем разделе, отличается от стандартного скрипта конфигурации. Он имеет только две стандартных цели: start и status. Остальные цели пустые и заблокированные. Например при запуске:

/etc/rc.d/init.d/iptables start

экран будет перезапущен, как при старте системы. Цель status предоставит список всех включенных в данный момент правил. Пустые цели выключают все правила экрана, а цель lock заблокирует все пакеты в и из компьютера, включая петлевой интерфейс.

Основной запуск экрана расположен в файле /etc/rc.d/rc.iptables. Разделы, описанные ниже, предоставляют три различных подхода, которые могут быть использованы в системе.

[Замечание]

Замечание

Вы должны всегда запускать ваши правила для экрана из скрипта. Это подтвердит постоянство и запись того, что произошло. Это так же позволит сохранить коментарии, полезные для понимания правил, через длительное время после их написания.

Личный экран

Личный экран разработан, чтобы дать вам доступ ко всем сервисам, предлагаемым в интернет, но держать вашу систему и ваши данные в безопасности.

Ниже представлена слегка измененная версия рекомендаций Rusty Russell-а из Linux 2.4 Packet Filtering HOWTO. Они еще пименительны к ядрам Linux 2.6.

cat > /etc/rc.d/rc.iptables << "EOF"
#!/bin/sh

# Begin $rc_base/rc.iptables

# Insert connection-tracking modules 
# (not needed if built into the kernel)
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG

# Enable broadcast echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Disable Source Routed Packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Enable TCP SYN Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Disable ICMP Redirect Acceptance
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Don