Вопрос по PF

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Вопрос по PF

Непрочитанное сообщение HEDG_SS » 2009-01-14 18:08:02

У меня возникла необходимость использовать pf (до этого пользовал ipfw). При попытке перезагрузить все настройки pf по ssh меня выбрасывает ( . Подскажите пожалуйста, как этого избежать или в чем моя ошибка?

Используемая команда для перезабивки pf

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

 pfctl -F all ; pfctl -f /etc/pf.conf
Содержимое pf.conf

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

# Interfaces
ext_if="net0"
tcp_port="{22}"
udp_port="{53 }"
# Tables
table <me> const { self }
table <local_net> persist {172.16.0.0/12}
table <good_ssh> persist file "/etc/tables/ssh"
table <bad_net> persist file "/etc/tables/bad_net"

# Options:
#
set skip on lo0
set block-policy drop
set limit src-nodes 50000
set limit states 50000
set limit frags 20000
set debug misc
set loginterface net0
##############
set optimization aggressive #минимальное использование ресурсов, быстрый дроп пакетов
set require-order yes # требовать соблюдения очередности в pf.conf
##############

#scrub in on $ext_if all fragment reassemble
scrub in all fragment drop-ovl

########################################################################
#######################     RULES   ####################################
########################################################################
# Верхнее правило более приоритетное (из-за использования quick)
####    Блокировка сетей по RFC
block quick from <bad_net> to <me>
block quick from <me> to <bad_net>

####       SSH
block log quick proto tcp from !<good_ssh> to <me> port 22

#########      For Local network
## TCP
pass in quick on $ext_if inet proto tcp from <local_net> to <me> port $tcp_port flags S/SA keep state                        

# UDP
pass in quick on $ext_if inet proto udp from <local_net> to <me> port $udp_port keep state                                   

# ICMP
pass in quick on $ext_if inet proto icmp from <local_net> to <me> icmp-type 8 code 0                                         
pass out quick on $ext_if inet proto icmp from <me> to <local_net> icmp-type 0
##########   ME
pass quick inet proto tcp from <me> to any flags S/SA keep state

#   DNS & NTP
pass quick on $ext_if inet proto udp from <me> to any port {53,123} keep state
# ICMP
pass quick on $ext_if inet proto icmp from <me> to any keep state
##########
# DENY ALL
block quick all

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Вопрос по PF

Непрочитанное сообщение paradox » 2009-01-14 18:14:36

При попытке перезагрузить все настройки pf по ssh меня выбрасывает
вы ж рубите сук на котором сидите

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Вопрос по PF

Непрочитанное сообщение HEDG_SS » 2009-01-14 20:36:45

Просто допустим в ipfw можно было поставить правило по умолчанию "allow any to any".
При этом спокойно перезабивается фаервол, где выставляется предполследнее правило "deny any to any".
Такая конструкция на ipfw без проблем работает, вот я и захотел узнать, как можно реализовать этот же принцип на PF.
P.S. не всегда сервер под боком, а иногда возникает такая необходимость (

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Вопрос по PF

Непрочитанное сообщение paradox » 2009-01-14 20:39:52

вы делаете флуш всего фаера
естественно все очищаеться

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Вопрос по PF

Непрочитанное сообщение HEDG_SS » 2009-01-25 5:08:51

Понял, спасибо!
Еще один вопрос -
Если в правиле не задан keep state, при загрузке правил, он сам добавляется. Как этого избежать (иногда все же нужно отсутствие динамических правил)?. Как в pf написать правило без учета состояний?

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Вопрос по PF

Непрочитанное сообщение princeps » 2009-01-25 20:11:46

а зачем, если не секрет?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Вопрос по PF

Непрочитанное сообщение kirgudu » 2009-01-26 11:41:47

pfctl -F all не делаете. а просто рубите состояния через pfctl -k xxx.xxx.xxx.xxx -k xx.xx.xx.xx

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Вопрос по PF

Непрочитанное сообщение kirgudu » 2009-01-26 11:44:33

HEDG_SS писал(а):Понял, спасибо!
Еще один вопрос -
Если в правиле не задан keep state, при загрузке правил, он сам добавляется. Как этого избежать (иногда все же нужно отсутствие динамических правил)?. Как в pf написать правило без учета состояний?
no state в конце добавить. Keep state нужен только на роутерах и при всех закрытых портах, но присутствующих исходящих коннектах.

При обращении из интернета на сервисы машины - keep state не нужен, если только не собираетесь резать по каким-либо лимитам.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Вопрос по PF

Непрочитанное сообщение HEDG_SS » 2009-01-26 12:08:51

princeps писал(а):а зачем, если не секрет?
Если я правильно понимаю при выполнении pfctl -F all, связь прерывается именно из-за сброса состояния соединения. Поэтому может понадобиться прописать правила без учета состояний соединения, Например для стабильного соединения по ssh.

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Вопрос по PF

Непрочитанное сообщение kirgudu » 2009-01-26 12:26:19

HEDG_SS писал(а):
princeps писал(а):а зачем, если не секрет?
Если я правильно понимаю при выполнении pfctl -F all, связь прерывается именно из-за сброса состояния соединения. Поэтому может понадобиться прописать правила без учета состояний соединения, Например для стабильного соединения по ssh.
по идее так должно быть. Но лучше -F all не делать.

Аватара пользователя
koffu
сержант
Сообщения: 154
Зарегистрирован: 2008-03-23 0:51:18
Откуда: Киев
Контактная информация:

Re: Вопрос по PF

Непрочитанное сообщение koffu » 2009-01-26 12:51:38

У меня pfctl -f /etc/pf.conf нормально правила и без сброса подтягивает. :smile:
Главное когда меняешь много правил себя сразу вверху прописать или сервер какой-нить из внутренней локалки, и меняй хоть все на свете!
pass in on $ext_if proto tcp from <myIP> to $ext_if port ssh keep state

не охота потом среди ночи в серверную пробираться) :st:

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Вопрос по PF

Непрочитанное сообщение HEDG_SS » 2009-01-26 13:04:54

kirgudu писал(а): по идее так должно быть. Но лучше -F all не делать.
Согласен, что лучше использовать

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

pfctl -F rules; pfctl -Rf /etc/pf.conf  - перезагрузка правил
pfctl -F nat ; pfctl -Nf /etc/pf.conf   - перзагрузка ната
Но иногда могут возникать некоторые проблемы,а у меня нет возможности сделать это самому. Вот и нужен набор "стандартных действий" для исправления "стандартных ситуаций", чтоб это мог сделать другой человек...