Проблемы установки, настройки и работы Правильной Операционной Системы
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
HEDG_SS
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-11-22 20:37:07
Непрочитанное сообщение
HEDG_SS » 2009-01-14 18:08:02
У меня возникла необходимость использовать pf (до этого пользовал ipfw). При попытке перезагрузить все настройки pf по ssh меня выбрасывает ( . Подскажите пожалуйста, как этого избежать или в чем моя ошибка?
Используемая команда для перезабивки pf
Содержимое 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
HEDG_SS
-
Хостинг HostFood.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
Непрочитанное сообщение
paradox » 2009-01-14 18:14:36
При попытке перезагрузить все настройки pf по ssh меня выбрасывает
вы ж рубите сук на котором сидите
paradox
-
HEDG_SS
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-11-22 20:37:07
Непрочитанное сообщение
HEDG_SS » 2009-01-14 20:36:45
Просто допустим в ipfw можно было поставить правило по умолчанию "allow any to any".
При этом спокойно перезабивается фаервол, где выставляется предполследнее правило "deny any to any".
Такая конструкция на ipfw без проблем работает, вот я и захотел узнать, как можно реализовать этот же принцип на PF.
P.S. не всегда сервер под боком, а иногда возникает такая необходимость (
HEDG_SS
-
HEDG_SS
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-11-22 20:37:07
Непрочитанное сообщение
HEDG_SS » 2009-01-25 5:08:51
Понял, спасибо!
Еще один вопрос -
Если в правиле не задан keep state, при загрузке правил, он сам добавляется. Как этого избежать (иногда все же нужно отсутствие динамических правил)?. Как в pf написать правило без учета состояний?
HEDG_SS
-
kirgudu
- сержант
- Сообщения: 185
- Зарегистрирован: 2009-01-16 23:14:00
Непрочитанное сообщение
kirgudu » 2009-01-26 11:41:47
pfctl -F all не делаете. а просто рубите состояния через pfctl -k xxx.xxx.xxx.xxx -k xx.xx.xx.xx
kirgudu
-
kirgudu
- сержант
- Сообщения: 185
- Зарегистрирован: 2009-01-16 23:14:00
Непрочитанное сообщение
kirgudu » 2009-01-26 11:44:33
HEDG_SS писал(а):Понял, спасибо!
Еще один вопрос -
Если в правиле не задан keep state, при загрузке правил, он сам добавляется. Как этого избежать (иногда все же нужно отсутствие динамических правил)?. Как в pf написать правило без учета состояний?
no state в конце добавить. Keep state нужен только на роутерах и при всех закрытых портах, но присутствующих исходящих коннектах.
При обращении из интернета на сервисы машины - keep state не нужен, если только не собираетесь резать по каким-либо лимитам.
kirgudu
-
HEDG_SS
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-11-22 20:37:07
Непрочитанное сообщение
HEDG_SS » 2009-01-26 12:08:51
princeps писал(а):а зачем, если не секрет?
Если я правильно понимаю при выполнении pfctl -F all, связь прерывается именно из-за сброса состояния соединения. Поэтому может понадобиться прописать правила без учета состояний соединения, Например для стабильного соединения по ssh.
HEDG_SS
-
kirgudu
- сержант
- Сообщения: 185
- Зарегистрирован: 2009-01-16 23:14:00
Непрочитанное сообщение
kirgudu » 2009-01-26 12:26:19
HEDG_SS писал(а):princeps писал(а):а зачем, если не секрет?
Если я правильно понимаю при выполнении pfctl -F all, связь прерывается именно из-за сброса состояния соединения. Поэтому может понадобиться прописать правила без учета состояний соединения, Например для стабильного соединения по ssh.
по идее так должно быть. Но лучше -F all не делать.
kirgudu
-
koffu
- сержант
- Сообщения: 154
- Зарегистрирован: 2008-03-23 0:51:18
- Откуда: Киев
-
Контактная информация:
Непрочитанное сообщение
koffu » 2009-01-26 12:51:38
У меня pfctl -f /etc/pf.conf нормально правила и без сброса подтягивает.

Главное когда меняешь много правил себя сразу вверху прописать или сервер какой-нить из внутренней локалки, и меняй хоть все на свете!
pass in on $ext_if proto tcp from <myIP> to $ext_if port ssh keep state
не охота потом среди ночи в серверную пробираться)

koffu
-
HEDG_SS
- сержант
- Сообщения: 198
- Зарегистрирован: 2008-11-22 20:37:07
Непрочитанное сообщение
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 - перзагрузка ната
Но иногда могут возникать некоторые проблемы,а у меня нет возможности сделать это самому. Вот и нужен набор "стандартных действий" для исправления "стандартных ситуаций", чтоб это мог сделать другой человек...
HEDG_SS