Re: Статья о PF. Пинайте
Добавлено: 2009-03-16 12:24:20
давай
Если проблема не решается сама, значит она неразрешима
https://forum.lissyara.su/
Код: Выделить всё
int_if="rl0" // Local net
ext_if="rl1" // Internet
table <users128> persist file "/etc/internet/users128.table"
set optimization aggressive
set state-policy if-bound
scrub in all
# Users 128Kbit/s unlimited
altq on $ext_if cbq bandwidth 100Mb queue {inet128_out}
queue inet128_out bandwidth 128Kb {user128_out}
queue user128_out cbq(default)
altq on $int_if cbq bandwidth 100Mb queue {inet128_in}
queue inet128_in bandwidth 128Kb {user128_in}
queue user128_in cbq(default)
# Politics
pass out quick on $int_if proto tcp from any to <users128> flags S/SA keep state queue (user128_in)
pass out quick on $int_if proto udp from any to <users128> keep state queue (user128_in)
pass out quick on $ext_if proto tcp from <users128> to any flags S/SA keep state queue (user128_out)
pass out quick on $ext_if proto udp from <users128> to any keep state queue (user128_out)
Код: Выделить всё
set skip on $int_if ## полностью пропускаем проверку на интерфейсе,
Код: Выделить всё
nat on $ext_if_cheap from $trusted_lan to any -> ($ext_if_cheap)
Код: Выделить всё
pass out on $ext_if_cheap from $trusted_lan to any keep state
Код: Выделить всё
pass out on $ext_if_cheap from $ext_if_cheap to any keep state
Код: Выделить всё
pfctl -vvsr
Код: Выделить всё
pass out on $ext_if_cheap from $ext_if_cheap to any keep state
Код: Выделить всё
##--Интерфейсы
inet_if="ng0" ## VPN
ext_if="rl0" ## BeeLine
int_if="rl1" ## LAN
##--Сети и хосты
lan_net="{ 192.168.10/24 }"
icmp_types="{ echoreq, unreach}" ## разрешенные типы icmp сообщений.
##--Глобальные опции
set block-policy return ## сбрасываем соединение вежливо
set skip on lo0 ## Пропуск проверки петли
set skip on $int_if ## Пропуск проверки локальной сети
scrub in all ## нормализуем все входящие пакеты на всех
## интерфейсах.
##--Разрешаем локальным компам ходить через канал(ng0)
nat on $inet_if from $lan_net to any -> ($inet_if)
##--Правила фильтрации. Включает простейший антиспуфинг.
antispoof quick for $inet_if
antispoof quick for $ext_if
block all ## запрет всего по-умолчанию
##--Разрешаем весь исходящий трафик с локальной машины в интернет
pass out on $inet_if from $inet_if to any keep state
##--Разрешаем весь трафик от нашей локальной сети в интернет
pass out on $inet_if from $lan_net to any keep state
## разрешаем icmp трафик установленных типов.
pass log inet proto icmp all icmp-type $icmp_types
Спасибо, поправил!Va_ писал(а):Игорь, вижу что в конфиге нету правил pass in. Входящий трафик отбрасывается.
указывай во флайлинке адрес интерфейса rl0Игорь писал(а):Ситуация сложилась скверная, надо пробросить порт от DC, программу юзаю FlyLinkDC, в локалку провайдера ибо он цепляется на внешку.
может дело не в PF, а в DNS... у тебя кеширующий DNS сервер случайно для локалки не запущен? если нет и ты пользуешь DNSами из локалки, то у тебя сайты не должны открываться через pptpИгорь писал(а):Дальше есть два сайта которые тоже хотелось бы открывать с локалки провайдера, а не с внешки!
Код: Выделить всё
#!/bin/sh
pfctl -nf /usr/local/etc/pf-casual-rules.cfg
if test $? = 0; then
pfctl -f /usr/local/etc/pf-casual-rules.cfg
echo "rules reloaded"
else
echo "there are some mistakes"
fi
Код: Выделить всё
pfctl -F all
ты прав в своих условиях, но представь ситуацию, когда в якоря сторонними программами, загружено много строк правил.code_310 писал(а):...Потом трафик который ты разрешил ты блокируешь,ты подгрузил новые правила а keep stat-ы остались.
Я ,чтобы избежать подобного еще делаю еще :
Код: Выделить всё
pfctl -F all
Возможно я не прав, но пока меня никто не переубедил мне кажется что я прав.
Код: Выделить всё
pfctl -F all
Код: Выделить всё
-F nat #Сбросить правила nat
-F queue #Сбросить правила queue
-F rules #Сбросить правила фильтрации
-F state #Сбросить таблицу состояния (для nat и фильтрации)
-F Sources #Сбросить информацию о источниках пакетов
-F info #Сбросить статистическую информацию (не привязанную к правилам фильтрации)
-F Tables #Сбросить содержимое всех таблиц
-F osfp #Сбросить содержимое таблицы для пассивного детектирования операционной системы
-F all #Сбросить всё
Код: Выделить всё
$grep "bootp\|ldap" /etc/services
Код: Выделить всё
${fw} add 230 pipe 2 ip from 192.168.60/24 to any via fxp0
${fw} pipe 2 config bw 40000kbit/s
${fw} add 240 pipe 4 ip from 192.168.50./24 to any via fxp0
${fw} pipe 4 config bw 10000kbit/s
${fw} add 250 nat 1 ip from any to any via fxp0
${fw} nat 1 config ip 10.10.241.241
${fw} add 260 pipe 3 ip from any to 192.168.60/24 via fxp0
${fw} pipe 3 config bw 10000kbit/s
${fw} add 270 pipe 1 ip from any to 192.168.50/24 via fxp0
${fw} pipe 1 config bw 40000kbit/s
NAT ставиться на выходе интерфейса и количество сетей которые находятся за NAT'ом в большенстве случаев роли не играет.Radist писал(а):а можете подсказать как сделать 2 NATA?
есть stge0 - выход в инет через adsl модем
есть fxp0 - локалка 10/8
есть:
re0 - локалка_1 192.168.50/24
dc0 - локалка_2 192.168.60/24
как сделать два NAT'a для локалки 10/8 и интернерта в re0 и dc0
Код: Выделить всё
nat on stge0 from !(stge0) -> (stge0)
nat on fxp0 from !(fxp0) -> (fxp0)
а такой вопрос..BlackCat писал(а):NAT ставиться на выходе интерфейса и количество сетей которые находятся за NAT'ом в большенстве случаев роли не играет.Radist писал(а):а можете подсказать как сделать 2 NATA?
есть stge0 - выход в инет через adsl модем
есть fxp0 - локалка 10/8
есть:
re0 - локалка_1 192.168.50/24
dc0 - локалка_2 192.168.60/24
как сделать два NAT'a для локалки 10/8 и интернерта в re0 и dc0
Если нет каких-то особых условий и вам нужет NAT для выхода в интернет и в 10.0.0.0/8, то попробуйте вот такие правила:Код: Выделить всё
nat on stge0 from !(stge0) -> (stge0) nat on fxp0 from !(fxp0) -> (fxp0)
Код: Выделить всё
nat on stge0 from !(stge0) -> (stge0)
nat on fxp0 from !(fxp0) -> (fxp0)
Код: Выделить всё
${fw} add pipe 7 ip from 192.168.1.241 to 192.168.60/24
${fw} pipe 7 config bw 128kbit/s
${fw} add pipe8 ip from 192.168.50/24 to 192.168.1.241
${fw} pipe 8 config bw 128kbit/s
Всем. Если бы было единственно верное решение, остальные бы просто не использовались. Точно сформулируйте для себя цель, задачи и просто решите их.QweЯty писал(а):кому 4м из 5ти надо по мягкому месту надавать за дизинформацию?
Так и должно быть, если правильно настроена маршрутизация IP-пакетов.balamut писал(а):пинг с локалки 10.10 на 192.168 идет и наоборот если указывать ИПИШНИК
Не разрешаются имена в адреса? Или после удачного и правильного разрешения имён ICMP-пакеты перестают ходить?balamut писал(а):пинга нет если пинговать с сети 10.10 и указывать имя сервера который в сети 192.168 и наоборот
Объясните, что вы понимаете под словом "видела"? Самый простой вариант: если у вас сети разделены условно (нет физического разделения по коммутаторам или VLAN'ам), то перенести адреса всех узлов в одну подсеть.balamut писал(а):кароч над сделать так чтоб сеть 10.10 видела сеть 192.168 и наоборот без всяких ограничений
подскажите что нужно для этого сделать?
я пытался писать какие то правила и при пинге имени сервера покзывался ипишник но не пинговался...Не разрешаются имена в адреса?
какое правило дописать чтоб пинг шел на имена?Или после удачного и правильного разрешения имён ICMP-пакеты перестают ходить?