Страница 1 из 1

UPD помогите разобраться с PF

Добавлено: 2009-09-17 13:21:39
matrich
Не могу разобраться. PF логи не пишет. Подскажите что не так?

Код: Выделить всё

(/etc)-> cat  rc.conf
......
#PF
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pf.log"
pflog_program="/sbin/pflogd"
.....

Код: Выделить всё

(/etc)-> cat pf.conf
# pf.conf
############### Опции ##############
        ext_if = "xl1"
        int_if = "xl0"
        lannet = "192.168.111.0/24"
        extnet = "xxx.xxx.xxx.xxx/28"
        bsd    = "192.168.111.98/32"
        ext_ip = "xxx.xxx.xxx.xxx/32"
        mail   = "192.168.111.10"
        my_ip  = "192.168.111.217/32"
        private_nets= "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4 }"
        client_ports = "{ 21, 22, 25, 110, 123, 80, 443, 3128, 3129, 3389,8080, >=49151 }"
        admin_ports = "{ 5190, 33330:33340 }"
########## Нормалицазия #############
     # Определяем политику при блокировке пакетов
    set block-policy drop
     # Поведение пакетного фильтра при использовании таблицы состояний
     set state-policy floating
     # Логируемый интерфейс
     set loginterface $ext_if
     # Максимальное количество записей в пуле отвечающем за нормализацию трафика (scrub)
     # Максимальное количество вхождений в пул отвечающий за состояние таблицы состояний соединений (keep state)
     set limit { frags 100000, states 100000 }
     # Устанавливаем тип оптимизации
     set optimization normal
     # Игнорируем фильтрацию на кольцевом интерфейсе
     set skip on lo0
###########    NAT RDR ##############
    #для локалки
    nat on $ext_if inet from $lannet to any -> $ext_ip
########### Правила фильтрации ###########
    # Защита от спуфинга
    antispoof quick for { lo0, $int_if, $ext_if }
    # Блокируем всё
    block log all
    # Блокируем тех, кто лезет на внешний интерфейс с частными адресами
    block drop in quick on $ext_if from $private_nets to any
    # Разрешаем icmp
    pass inet proto icmp icmp-type echoreq
    # Разрешаем DNS для локалки
    pass in on $int_if proto udp from $lannet to $bsd port domain
    # Разрешаем NTP для локалки
    pass in on $int_if proto udp from $lannet to $bsd port ntp
    # Тестовый полный выход для отладки
    pass in on $int_if from $lannet to any
    # Выпускаем почтовик
    pass in on $int_if proto tcp from $mail to any port smtp
    # Выпускаем админские сервисы
    pass in on $int_if proto tcp from $my_ip to any port $admin_ports
    # Выпускаем клиентске сервисы
    pass in on $int_if proto tcp from $lannet to any port $client_ports
    # Разрешаем нашему шлюзу полный выход с обоих интерфейсов
    pass out on $ext_if proto tcp from any to any
    pass out on $ext_if proto udp from any to any keep state
    pass out on $int_if proto tcp from any to any
    pass out on $int_if proto udp from any to any keep state
######### Входящий #############
    # Разрешаем входящий smtp для всех
    pass in on $ext_if proto tcp from any to $mail port smtp flags S/SA synproxy state
    # Разрешаем входящий https
    pass in on $ext_if proto tcp from any to $mail port https flags S/SA synproxy state
    # Разрешаем входящий www
    pass in on $ext_if proto tcp from any to $ext_ip port www flags S/SA synproxy state
    # Разрешаем входящий ftp
    #pass in on $ext_if proto tcp from any to $ext_ip port ftp flags S/SA synproxy state

Код: Выделить всё

(/var/log)-> ls -l | grep pf
-rwxr-xr-x  1 root    wheel          0 24 авг 11:58 pf.log
-rw-------  1 root    wheel          0 17 сен 03:04 pf.today
-rw-------  1 root    wheel       1501 16 сен 03:04 pf.yesterday

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-17 14:38:29
vasdor
Вот так работает:

Код: Выделить всё

tcpdump -n -e -ttt -i pflog0
?

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-17 15:22:27
matrich

Код: Выделить всё

(/etc)-> tcpdump -n -e -ttt -i pflog0
tcpdump: (no devices found) /dev/bpf0: No such file or directory
:shock:

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-17 15:53:49
Burner
что, ядро пересобирали, да? Так вам и надо.

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-17 16:11:30
matrich
да, это печально, придется опять :)

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-18 9:17:26
matrich
спасибо помогло, а не подскажите как включить логирование rdr ?

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-18 15:33:45
matrich
можно как нибудь его заставить писать время-дату события?

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-23 12:08:29
matrich
подскажите, пожалуйста, какую-нибудь систему для логирования всех пакетов, которые проходят(пробрасыватся,перенаправляются, блокируются) через интерфейсы, так чтобы писалось время и дата.

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-23 14:15:17
vasdor

Код: Выделить всё

tcpdump -qn -r /var/log/pf.log
Хотя, там нет даты...

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-23 14:24:48
matrich
ну в принципе дату можно организовать ежедневным переносом в фаил типа DDMMYYY.log, а как бы с rdr? как включить логирование смапированных пакетов?

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-23 15:20:04
vasdor
http://house.hcn-strela.ru/BSDCert/BSDA ... l#pf-pflog
Вот тут написано, что должны быть директива pass либо block.

Видимо, вот так, напрямую, правило rdr в логи не введёшь... :x

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-23 15:52:52
matrich
спасибо, разобрался
А умеет pf выхватывать mac адреса?

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-24 8:40:32
vasdor

Re: UPD помогите разобраться с PF

Добавлено: 2009-09-24 10:19:46
matrich
я имел в виду, чтоб логировался мак машины из инета, с которой идет соединение, если это возможно