ipfilter: файервол в Solaris

Настройка файервола в Solaris немного необычна, но не такая сложная, как кажется. Она состоит из нескольких этапов

Тестовый стенд: Solaris 11

1) Подготовка к запуску.

По умолчанию он отключенё. Это можно проверить состоянием файервола (список правил):

# ipfstat -io
empty list for ipfilter(out)
empty list for ipfilter(in)

Файервол в Solaris, как и большинство компонент является сервисом, а значит управляется через svccfg. И так, изменим некоторые параметры:

#svccfg
svc:>select network/ipfilter:default
svc:/network/ipfilter:default>setprop firewall_config_default/policy = astring: "custom"
svc:/network/ipfilter:default>setprop firewall_config_default/custom_policy_file = astring: "/etc/ipf/ipf.conf"
svc:/network/ipfilter:default>exit

Теперь необходимо создать файл с правилами и написать хотя бы одно правило. Без этого файла или если файл будет пустой — ipfilter не запуститься. Добавим такие правила:

pass out quick all
pass in quick all

2) Запуск файервола.

Запуск происходит как запуск обычного сервиса:

#svcadm enable svc:/network/ipfilter:default
# svcs -a | grep ipfilter
online 17:55:23 svc:/network/ipfilter:default

3) Работа с файерволом

Посмотрим список правил, а заодно и статистику по правилам:

# ipfstat -iov
407 49895 pass out quick all
2559 268272 pass in quick all

Посмотреть общую статистику

#ipfstat
bad packets:            in 0    out 0
 IPv6 packets:          in 92 out 52
 input packets:         blocked 0 passed 3651 nomatch 110 counted 0 short 0
output packets:         blocked 0 passed 577 nomatch 56 counted 0 short 0
 input packets logged:  blocked 0 passed 1164
output packets logged:  blocked 0 passed 179
 packets logged:        input 0 output 0
 log failures:          input 22 output 19
fragment state(in):     kept 0  lost 0  not fragmented 0
fragment state(out):    kept 0  lost 0  not fragmented 0
packet state(in):       kept 0  lost 0
packet state(out):      kept 0  lost 0
ICMP replies:   0       TCP RSTs sent:  0
Invalid source(in):     0
Result cache hits(in):  0       (out):  0
IN Pullups succeeded:   0       failed: 0
OUT Pullups succeeded:  0       failed: 0
Fastroute successes:    0       failures:       0
TCP cksum fails(in):    0       (out):  0
IPF Ticks:      2434
Packet log flags set: (0x10000000)
        packets passed through filter

Обнулить статистику без перезагрузки:

#ipf -z -f /etc/ipf/ipf.conf

Добавить налету правила (и затереть все текущие):

#ipf -F as -f /etc/ipf/ipf.conf

Подробнее об остальных возможностях файервола можно узнать из man svc.ipfd

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

#svcadm refresh ipfilter

Но при такой команде могут сброситься все активные сессии. Если вы редактируете только правила NAT’a, то можно делать так (что бы не сбрасывались сессии)

#ipnat -f /etc/ipf/ipnat.conf

4) ipfilter и зоны

ipfilter может работать с зонами, только следующим образом: для зон с shared-IP правила пишутся в глобальной зоне, а для зон с exclusive-IP — могут писаться прямо в самих зонах.

5) Логгирование.

Для логгирования в режиме реального времени существует утилита ipmon. Если просто её запустить, то на экране увидим такое:

#ipmon
09/12/2011 12:42:29.977815 2x net0 @0:1 p 10.5.5.133,22 -> 10.5.5.55,49572 PR tcp len 20 196 -AP OUT
09/12/2011 12:42:29.978091 net0 @0:1 p 10.5.5.55,49572 -> 10.5.5.133,22 PR tcp len 20 52 -A IN
09/12/2011 12:42:29.978261 2x net0 @0:1 p 10.5.5.133,22 -> 10.5.5.55,49572 PR tcp len 20 196 -AP OUT
09/12/2011 12:42:29.978507 net0 @0:1 p 10.5.5.55,49572 -> 10.5.5.133,22 PR tcp len 20 52 -A IN
09/12/2011 12:42:29.978678 2x net0 @0:1 p 10.5.5.133,22 -> 10.5.5.55,49572 PR tcp len 20 196 -AP OUT
09/12/2011 12:42:29.978924 net0 @0:1 p 10.5.5.55,49572 -> 10.5.5.133,22 PR tcp len 20 52 -A IN
09/12/2011 12:42:29.979093 2x net0 @0:1 p 10.5.5.133,22 -> 10.5.5.55,49572 PR tcp len 20 196 -AP OUT
09/12/2011 12:42:29.979348 net0 @0:1 p 10.5.5.55,49572 -> 10.5.5.133,22 PR tcp len 20 52 -A IN

У этой команды есть множество ключей, о которых можно прочесть в справочном руководстве.

Для более подробного изучения ipfilter можно так же использовать это руководство.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *