Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - Настройка пакетного фильтра pf в FreeBSD

Ответить
Настройки темы
FreeBSD - Настройка пакетного фильтра pf в FreeBSD

Пользователь


Сообщения: 145
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ребят помогите не могу понять в чем может быть дело, перегружаю FreeBSD все работает кроме правил для входящих RDP запросов, как только делаю принудительное применение правил pfctl -f /etc/pf/conf то все сразу начинает работать, после перегруза машина опять пока не подключусь по ssh не наберу волшебную команду не пускает ниже приведено содержание файла pf.conf
Код: Выделить весь код
# vr0 - имя сетевой карточки, смотрящей в офисную сеть
int_if="vr0"
 # rl0 - имя сетевой карточки, смотрящей в интернет
ext_if="tun0"

localnet="10.0.0.0/24"

#определяем через переменные ip-адреса офисов
office1_ip="111.111.111.111"
office2_ip="222.222.222.222"


#опять таки, через переменную перечисляем какие порты выпускать из офиса во внешний мир
#tcp_ports="{22,80,443,25,110,465,995,5190}"
#udp_ports="{53}"

#не фильтруем трафик, проходящий по интерфейсу lo0 (интерфейс внутренней петли), gif0 (виртуальный туннель между офисами) и $int_if (интерфейс внутрен
set skip on lo0
set skip on gif0
set skip on $int_if

#отбрасываем входящие пакеты, с нестандартными опциями
scrub in all

 #создаем правило входящие для RDP
 rdr pass on $ext_if proto tcp from any to $ext_if port 3389 tag RDP -> 10.0.0.100 port 3389
 nat on $ext_if tagged RDP -> ($ext_if)
 

#создаем правило трансляции адресов из офисной сети во внешний мир
nat on $ext_if from $localnet to any -> ($ext_if)

#создаем правило входящие для RDP
#rdr pass on $ext_if proto tcp from any to ($ext_if) port 3389 tag RDP -> 10.0.0.100 port 3389
#nat on $int_if tagged RDP -> 10.0.0.1

#создаем правило входящие для LotuNotes
#rdr pass on $ext_if proto tcp from any to ($ext_if) port 1352 tag LotusNotes -> 10.0.0.100 port 1352
#nat on $int_if tagged LotusNotes -> 10.0.0.1*

#включаем антиспуфинг для внешнего интерфейса
antispoof quick for $ext_if

#блокируем все по умолчанию
block all

#разрешаем доступ из офисной сети во внешний мир портам, перечисленным в переменных tcp_ports и udp_ports:
pass out on $ext_if proto tcp to any
pass out on $ext_if proto udp to any

#разрешаем доступ к нашей машине по ssh из внешнего мира
pass in inet proto tcp from any to $ext_if port 22  keep state

#разрешаем пинг
pass inet proto icmp all

#разрешаем исходящий трафик IPSec с офиса 1 на офис 2
pass out quick on $ext_if proto udp from $office1_ip port = isakmp to $office2_ip port = isakmp
pass out quick on $ext_if proto esp from $office1_ip to $office2_ip
pass out quick on $ext_if proto ipencap from $office1_ip to $office2_ip

#разрешаем входящий трафик IPSec, пришедший с офиса 2 на офис 1
pass in quick on $ext_if proto udp from $office2_ip port = isakmp to $office1_ip port = isakmp
pass in quick on $ext_if proto esp from $office2_ip to $office1_ip
pass in quick on $ext_if proto ipencap from $office2_ip to $office1_ip

Отправлено: 10:19, 06-08-2012

 

Новый участник


Сообщения: 16
Благодарности: 2

Профиль | Отправить PM | Цитировать


В rc.conf дописывай

firewall_enable="YES"
firewall_script="/etc/pf.conf" - путь к правилу

-------
Бред со смыслом! (с) stamp


Отправлено: 08:41, 07-08-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 145
Благодарности: 2

Профиль | Отправить PM | Цитировать


У меня в rc.conf есть
Код: Выделить весь код
#включим наш фаервол на этапе загрузки системы
pf_enable="YES"
#указываем откуда загружать правила
pf_rules="/etc/pf.conf"
#указываем где находится программа для управления pf
pf_program="/sbin/pfctl"
pf_flags=""
...
    #включаем логирования для pf
pflog_enable="YES"
pflog_logfile="/var/log/pf.log"
pflog_program="/sbin/pflogd"
pflog_flags=""
pfsync_enable="NO"
pfsync_syncdev=""
pfsync_ifconfig=""
Разве этого не достаточно?

Отправлено: 10:50, 07-08-2012 | #3


Ветеран


Сообщения: 738
Благодарности: 89

Профиль | Отправить PM | Цитировать


Цитата stamp:
В rc.conf дописывай
firewall_enable="YES"
firewall_script="/etc/pf.conf" - путь к правилу »
уйди не чистая!
Цитата nvhost:
как только делаю принудительное применение правил pfctl -f /etc/pf/conf то все сразу начинает работать »
хм, что говорит whereis pfctl ?

-------
Бараш.


Отправлено: 20:55, 08-08-2012 | #4


Пользователь


Сообщения: 145
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вот что говорит
Код: Выделить весь код
freebsd1# whereis pfctl
pfctl: /sbin/pfctl /usr/share/man/man8/pfctl.8.gz /usr/src/sbin/pfctl
получается дело не в том что пакетный фильтр не подымается при загрузке системы, а в том что ему что то не хватает для правила входящего RDP, а после загрузки принудительно уже помогает, может дело в том что при загрузке системы и применения правил еще не известны IP адреса , хотя PPPoe tun0 подымается до применения правил, я еще где то читал что если переменная содержит ip -адрес то ее необходимо заключать в скобки, на тот случай если вдруг ip-адрес на момент примения правил будет отсутствовать правила привяжутся к интерфейсу

на всякий случай привожу код rc.conf
Код: Выделить весь код
hostname="freebsd1"
keymap="ru.koi8-r.kbd"
ifconfig_sk0=" inet 192.168.1.77 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
sshd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
ifconfig_vr0="inet 10.0.0.1 netmask 255.255.255.0"
gateway_enable="YES"
#PPP service
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"   # if you want to enable nat for your local network, otherwise NO
ppp_profile="utk"

#включим наш фаервол на этапе загрузки системы
pf_enable="YES"
#указываем откуда загружать правила
pf_rules="/etc/pf.conf"
#указываем где находится программа для управления pf
pf_program="/sbin/pfctl"
pf_flags=""

    #включаем логирования для pf
pflog_enable="YES"
pflog_logfile="/var/log/pf.log"
pflog_program="/sbin/pflogd"
pflog_flags=""
pfsync_enable="NO"
pfsync_syncdev=""
pfsync_ifconfig=""

# включим racoon
racoon_enable="YES"
racoon_flags="-F -f /usr/local/etc/racoon/racoon.conf"

 #включим ipsec
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"

 #создаем виртуальный gif-интерфейс
gif_interfaces="gif0"
gifconfig_gif0="111.111.111.111 222.222.222.222"
ifconfig_gif0="inet 10.0.0.1 10.1.1.1 netmask 0xffffffff"

 #прописываем статический рутинг для удаленной сети
static_routes="vpn"
route_vpn="10.1.1.0/24 -interface gif0"
Может дело в виртуальных интерфейсах, они поднимаются после правил pf

Отправлено: 09:22, 09-08-2012 | #5


Ветеран


Сообщения: 738
Благодарности: 89

Профиль | Отправить PM | Цитировать


если посмотреть список загруженых правил сразу после старта системы, он (список) соответствует тому, что прописано в pf.conf ?

-------
Бараш.


Отправлено: 11:34, 09-08-2012 | #6


Пользователь


Сообщения: 145
Благодарности: 2

Профиль | Отправить PM | Цитировать


нет список пустой, pfctl -sn ничего не показывает!

Отправлено: 12:16, 04-09-2012 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Описывайте все девайсы в правилах в скобках.
Тогда загрузится в любом случае.

И чо ето за бред?

Сначала RDR описывает , потом НАТ, а не в перемешку.

И одним правилом а не двумя или тремя.

nat on $ext_if tagged RDP -> ($ext_if)

эта чушь к примеру вообще щас ненужна
Срабатывает всегда последнее правило, будь то рдр, нат или другие правила.

Отправлено: 20:58, 15-09-2012 | #8


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
#указываем откуда загружать правила pf_rules="/etc/pf.conf"
А руками правила грузите из
Цитата:
pfctl -f /etc/pf/conf
Или в rc.conf путь поправьте, или pf.conf положите в /etc

Отправлено: 21:42, 10-10-2012 | #9


Аватара для Smoke2k

Старожил


Сообщения: 157
Благодарности: 12

Профиль | Отправить PM | Цитировать


кажется такая же канетель как и в соседнем топике...
А зачем вы два раза NAT поднимаете? один раз в ppp,
Цитата:
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
а второй раз в pf?
Цитата:
#создаем правило трансляции адресов из офисной сети во внешний мир
nat on $ext_if from $localnet to any -> ($ext_if)
Я кстати заметил что если на интерфейсе не включён NAT в самом pf, то redirect не сробатывает, может у вас наложение правил? потому и не работает rdr? попробуйте отключить в rc.conf ppp_nat

-------
Прошу не пинать больно за не грамматный русский. Это мой родной язык, но я редко пишу по-русски, потому прошу у всех зарание меня простить. А если уж сильно напортачил, поправить! Мне будет наука ;-)


Отправлено: 07:22, 07-11-2012 | #10



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - Настройка пакетного фильтра pf в FreeBSD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Вопрос - настройка пакетного фильтра IPSec leonty Защита компьютерных систем 1 22-12-2008 21:30
FreeBSD - настройка маршрутизатора на freebsd kosto Общий по FreeBSD 9 30-08-2008 12:55
FreeBSD - KDE под FreeBSD. Установка и настройка. progreccor Общий по FreeBSD 3 26-08-2008 17:20
Настройка фильтра в The Bat! Guest Хочу все знать 4 06-01-2004 03:57
Настройка модема в FreeBSD 4.8 Sinbad Общий по FreeBSD 7 06-08-2003 18:20




 
Переход