Thu, 17 May  |   Login English version  |  OS2.Ru  
В начало
Об OS/2
Новости
Публикации
DevCenter
База данных
Каталог ресурсов
Биржа труда
TeamDB
Форумы и общение
Опросы и конкурсы
Russian Team OS/2
На первую страницу OS2.Ru
 Вокруг OS/2 |  Программы и технологии |  Аппаратура |  Разработчикам |  Мастерская
Поиск по: Добавить закладку OS2.Ru в панель Netscape 6/Mozilla
OS2.Ru > Articles > Software > Internet > Firewall > Firewall 02.phtml.ru
1999-06-26
Виталий Пеленёв
(версия для печати)

Практическое применение файрвола

Подробно о файрволе можно прочесть в статье TCP/IP v4.1 Security - Первый шаг. К сожалению в статье нет конкретных примеров настройки файрвола. Все информация о конфигурационных файлах и утилитах взята из этой статьи. Исправлена неточность в описании одного из файлов. (ошибка в статье В. Тимчишина также исправлена - прим. О.К.)

Здесь я собираюсь привести несколько примеров настройки для
фильтрования пакетов и ведения логов.
 

1. Запуск файрволла

1.1 Изменения в CONFIG.SYS

В config.sys добавляем строки:

DEVICE=C:\MPTN\PROTOCOL\IPSEC.SYS
DEVICE=C:\MPTN\PROTOCOL\FWIP.SYS
DEVICE=C:\MPTN\PROTOCOL\CDMF.SYS
DEVICE=C:\MPTN\PROTOCOL\MD5.SYS
RUN=C:\MPTN\BIN\fssd.exe
CALL=C:\MPTN\BIN\cfgfilt.exe -u -i -d

Файрволл будет включаться при старте системы. Можно убрать две последние строки и использовать startup.cmd для запуска файрволла:

detach C:\MPTN\BIN\fssd.exe
C:\MPTN\BIN\cfgfilt.exe -u -i -d

1.2 Конфигурационные файлы.

Файрволл использует три конфигурационных файла. После краткого описания файла приводится его исходное содержимое.
  1. %ETC%\fwsecad.cnf

  2. Список защищенных ( secure ) ip адресов компьютера (интерфейсов). Каждая строка файла содержит один ip адрес. Адреса, которых нет в списке считаются незащищенными ( non-secure ).
    Файрвол условно делит адреса на два типа: secure(защищенный) и non-secure(незащищенный))
    Просто создайте пустой файл с таким именем.
  3. %ETC%\fwlog.cnf

  4. Файл содержит одну строку вида:

    level=##

    где ## - число определяющее уровень логов (подробность):
    10 - отладочный (debug), наиболее подробный
    20 - информационный
    30 - предупреждения
    40 - ошибки
    50 - тревоги

    Если указан уровень N, то будут записаны все сообщения уровней больше либо равных N.
    Сообщения записываются в файлы с именем fwmmdd, где mm - текущий месяц, dd - число. Например fw0324 - лог от 24 марта.
    Файлы будут располагатся в каталоге, указаном переменной среды FWLOGS или в %ETC%, если FWLOGS не определена.
    Все ошибки, связаные с ведением логов будут записаны в файл
    %ETC%\FWERROR.ERR.

    Пример содержимого для начала:
    level=30

  5. %ETC%\security\fwfiltrs.cnf

  6. Правила для фильтра пакетов. Каждая строка файла является правилом.
    При получении пакета правила применяются последовательно до:
    1.Нахождения запрещающего правила - пакет игнорируется
    2.Нахождения разрешающего правила - пакет обрабатывается
    3.Конца списка правил. При этом пакет игнорируется

    Строка-правило состоит из полей, разделенных пробелами:

    type src_addr src_mask dst_addr dst_mask prot src_port_rule src_port dst_port_rule dst_port sec_type route direction log frag tunnel

    type тип правила:
    • deny: запрещающее
    • permit: разрешающее
    src_addr src_mask адрес отправления пакета. Два поля: адрес и маска. Могут задаваться в двух нотациях: Десятичной вида x.y.z.u и шестнадцатиричной вида 0xFFFFFFFF
    dst_addr dst_mask адрес получателя пакета. Формат аналогичен адресу отправителя пакета.
    prot тип протокола IP пакета:
    • all - любой протокол
    • icmp - только ICMP
    • udp - только пакеты UDP
    • tcp - только пакеты TCP
    • tcp/ack - только пакеты TCP с установленным битом "acknowledgment"
    • ipsp - только IPSP (протокол, используемый IBM при тунелировании)
    src_port_rule src_port Порт отправления/тип ICMP. Определяет операцию сравнения, src_port номер порта (для ICMP это тип ICMP). Возможные варианты операций сравнения:
    • any(любой),
    • eq(=), neq(<>),
    • lt(<), gt (>),
    • le(<=), ge (>=).
    dst_port_rule dst_port Порт назначения/тип ICMP. Используются также, как и src_port_rule src_port
    sec_type Тип интерфейса, к которому должно применяться правило:
    • secure - защищенный ( адрес записан в fwsecad.cnf )
    • non-secure - не защищенный
    • both - правило применяется для всех интерфейсов
    route тип пакета по отношению к данному компьютеру:
    • local - отправителем или получателем пакета является данный компьютер
    • route - пакет проходит через данный компьютер
    • both - все пакеты
    direction входящий или исходящий пакет:
    • inbound - правило для входящих пакетов
    • outbound - для исходящих
    • both - для всех
    Log Необязательное поле, определяющее записывать информацию о пакете в лог или нет:
    • l=yes - записывать (значение по-умолчанию для запрещенных пакетов)
    • l=no - не записывать (значение по-умолчанию для разрешенных пакетов)
    frag Необязательное поле, контроль фрагментации:
    • f=yes - правило применяется для заголовков, фрагментов и нефрагментированых пакетов
    • f=no - правило применяется только для нефрагментированых пакетов
    • f=only - правило применяется только для заголовков и фрагментов
    tunnel Необязательное поле, идентификатор туннеля. Определяет тунель, через который посылать пакет. t=## - где ## идентификатор туннеля. Значение по умолчанию:
    • t=0 - обозначает не применять туннели.
     

    1.3 Утилиты

    Об утилитах лучше прочесть в TCP/IP v4.1 Security - Первый шаг. Здесь я приведу лишь несколько полезных примеров:

    Включить файрвол:
    cfgfilt.exe -u -i -d

    Выключить файрволл:
    cfgfilt.exe -d stop

    Отключить набор правил и запретить все пакеты:
    cfgfilt.exe -c
     

    2. Настройка файрвола

    Итак после добавления строчек в CONFIG.SYS и создания конфигурационных файлов ( именно того содержания как в примерах ) можно перезагрузить OS/2 и приступить к настройке файрвола.
    Предупреждение: Неосторожная запись запрещающего правила может привести к полной неработоспособности сети. Файрволл просто перестанет пропускать пакеты

    Далее предполагается что IP адрес компьютера 192.168.0.10 и маска локальной сети 255.255.255.0. На компьютере поднят loopback 127.0.0.1. Адрес маршрутизатора 192.168.0.1.

    Содержимое файла fwsecad.cnf:
    192.168.0.10
     

    2.1 Разрешаем всё:

    Разрешение прохождения всех пакетов:

    permit 0 0 0 0 all any 0 any 0 both both both
     

    2.1 Запрещаем всё:

    deny 0 0 0 0 all any 0 any 0 both both both

    Это то самое правило, которое применяется когда ни одно из правил в файле security\fwfiltrs.cnf не подошло к данному пакету.
    Файрвол работает по принципу "Запрещено всё что не разрешено".

    Когда такое правило расположено в начале файла security\fwfiltrs.cnf то файрволл не пропускает никакие пакеты.
    Команда "ping 127.0.0.1" работать не будет.
     

    2.2 Разрешение Telnet для одного адреса

    Разрешаем телнет только для одного внешнего адреса ( 192.168.0.20 ) и запрещаем для всех остальных:

    permit 192.168.0.20 255.255.255.255 192.168.0.10 255.255.255.255 all any 0 eq 23 both both both

    deny 0 0 192.168.0.10 255.255.255.255 all any 0 eq 23 both both both

    Это удобное правило для повышения защиты telnet соединения.
     

    2.3 Запрещаем пинг на наш компьютер:

    deny 0 0 192.168.0.10 255.255.255.255 icmp eq 8 any 0 both both both

    Правило запрещает ICMP пакеты тип 8 (ICMP_ECHO). Типы ICMP приведены в табличке:

    #define ICMP_ECHOREPLY 0 /* echo reply */
    #define ICMP_UNREACH 3 /* dest unreachable */
    #define ICMP_SOURCEQUENCH  4 /* packet lost, slow down */
    #define ICMP_REDIRECT 5 /* shorter route */
    #define ICMP_ECHO 8 /* echo service */
    #define ICMP_TIMXCEED 11 /* time exceeded */
    #define ICMP_PARAMPROB 12 /* ip header bad */
    #define ICMP_TSTAMP 13 /* timestamp request */
    #define ICMP_TSTAMPREPLY 14 /* timestamp reply */
    #define ICMP_IREQ 15 /* information request */
    #define ICMP_IREQREPLY 16 /* information reply */
    #define ICMP_MASKREQ 17 /* address mask request */
    #define ICMP_MASKREPLY 18 /* address mask reply */
     

    2.4 Ведем лог для telnet:

    permit 0 0 192.168.0.10 255.255.255.255 all any 0 eq 23 both both both l=yes

    все пакеты приходящие на порт 23 будут регистрироваться.
     


Обсудить материал (число отзывов:0)


предыдущий материал  |  следующий материал


 Вокруг OS/2 |  Программы и технологии |  Аппаратура |  Разработчикам |  Мастерская


Новости
15/08: GoldenCode выпустит Java 1.4 для OS/2
14/06: Fix #16 rus / Warp4
30/05: Перерыв в работе OS2.Ru
Все новости..

В каталоге
Дерево каталога
Новые поступления

Публикации
Боремся с зависанием PM и зомби - WatchCat + HardKill
(Samorukov Alex , 2001-10-11)

DSync - куда может быть проще?
(Okounkov Konstantin, 2001-09-28)

WarpGoGo: переводим музыку в MP3
(Okounkov Konstantin, 2001-09-26)

Все материалы

Решения
Tips & tricks

Активные опросы
Используете ли Вы OS2.Ru tab в Netscape ?

Все опросы
Первая страница  |   Об OS/2  |   Новости  |   Публикации  |   База данных  |   Каталог ресурсов  |   Биржа труда  |   TeamDB  |   Форумы общения  |   Опросы и голосования  |   OS2.Ru DevCenter
Дизайн, оформление © 1996-2000 Copyright WebTeam. Использование материалов OS2.Ru без согласия авторов и координаторов запрещено
Powered by OS/2