Файрволл будет включаться при старте системы. Можно убрать две последние
строки и использовать startup.cmd для запуска файрволла:
-
%ETC%\fwsecad.cnf
Список защищенных ( secure ) ip адресов компьютера (интерфейсов). Каждая
строка файла содержит один ip адрес. Адреса, которых нет в списке считаются
незащищенными ( non-secure ).
Файрвол условно делит адреса на два типа: secure(защищенный) и non-secure(незащищенный))
Просто создайте пустой файл с таким именем.
-
%ETC%\fwlog.cnf
Файл содержит одну строку вида:
level=##
где ## - число определяющее уровень логов (подробность):
10 - отладочный (debug), наиболее подробный
20 - информационный
30 - предупреждения
40 - ошибки
50 - тревоги
Если указан уровень N, то будут записаны все сообщения уровней больше
либо равных N.
Сообщения записываются в файлы с именем fwmmdd, где mm - текущий месяц,
dd - число. Например fw0324 - лог от 24 марта.
Файлы будут располагатся в каталоге, указаном переменной среды FWLOGS
или в %ETC%, если FWLOGS не определена.
Все ошибки, связаные с ведением логов будут записаны в файл
%ETC%\FWERROR.ERR.
Пример содержимого для начала:
level=30
-
%ETC%\security\fwfiltrs.cnf
Правила для фильтра пакетов. Каждая строка файла является правилом.
При получении пакета правила применяются последовательно до:
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 будут регистрироваться.