Готовится статья "PF : Конфиг для офисов"

Вопросы настройки и работы с этой ОС.
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
itux
мл. сержант
Сообщения: 114
Зарегистрирован: 2008-11-09 12:37:55
Откуда: Kemerovo
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение itux » 2009-03-23 5:59:19

два наивных вопроса:
1) Как завернуть весь !!! весь трафик через прокси....
2) Можно ли, и как если можно завернуть удп трафик через прокси...
несу чушь, не дорого... звонить +7903.......

Хостинговая компания 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/

Аватара пользователя
Grishun_U_S
сержант
Сообщения: 221
Зарегистрирован: 2008-04-12 18:26:54
Откуда: Samara
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Grishun_U_S » 2009-03-23 8:56:05

itux писал(а):два наивных вопроса:
1) Как завернуть весь !!! весь трафик через прокси....

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

##--nat&rdr
rdr on $int_if from $lan to any -> $proxy_if port $proxy_port
##--filtering
pass in on $int_if from $lan to $proxy_if port $proxy_port keep state
Если http-proxy имеется ввиду, то нет смысла заворачивать весь траф, он ждет только http(tcp).

Тогда правила будут такими :

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

##--nat&rdr
rdr on $int_if proto tcp from $lan to any -> $proxy_if port $proxy_port
##--filtering
pass in on $int_if proto tcp from $lan to $proxy_if port $proxy_port keep state
itux писал(а): 2) Можно ли, и как если можно завернуть удп трафик через прокси...
через http-proxy нет
Изображение

Аватара пользователя
itux
мл. сержант
Сообщения: 114
Зарегистрирован: 2008-11-09 12:37:55
Откуда: Kemerovo
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение itux » 2009-03-30 9:03:11

Спасибо, разобрался... В общем ситуация такая, что Locker от PISOFT дружит только с Trafic Inspector, если на прямую доступ до прокси делать, то на нем не учитывается трафик по UDP и другим, отличным от 80 порта TCP... Такой вот Пииии Софт )
несу чушь, не дорого... звонить +7903.......

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение rnd » 2009-04-08 10:26:32

Добрый день. Скажите пожалуйста ситуация такая:
Есть прокси сервер FreeBSD 7.0 c pf, раньше pf работал по принципу пускать всё и всех ) решил перевести в режим block all и открывать только необходимое. После всех проделанных действий все вроде настроил и работает, но pfstat стал отрисовывать такую картину, как узнать что это вообще постоянно блокируется??
Спасибо.
pfstat-packets-day-large.jpg
pfstat
config:

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

									 

		### ext_interface
ext_if1="vr0"
ext_if="tun0"
ext_ip1="***.***.***.***"
vpn_if="tun1"
proxy_if="lo0"
proxy_port="8080"
vpn_network="10.10.3.0/24"
mail="10.10.0.111"
video="10.10.0.100"


		### lan_interface
int_if="vr1"
#int_if1="vr2"
int_addr0="10.10.0.1"
#int_addr1="10.10.1.1"
int_net0="10.10.0.0/24"
#int_net1="10.10.1.0/24"

		### tabl 
Me="Внешний статический ip"
priv_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 }"
magent="{194.186.55.0/24, 194.67.57.0/24, 194.67.23.0/24, 94.100.181.0/24, 94.100.178.0/24 }"
tcp_svc="{ ftp, ssh, domain, www, smtps, imaps, https, pop3 }"
udp_svc="domain"

		### options
set timeout { frag 10, tcp.established 3600 }
set block-policy drop
icmp_types="{ echoreq, unreach}"
set skip on lo0

		### table
#table <ExtSSH> { *********,********** }
#table <Extwww> {**************}
#table <kick> persist file "/etc/pf/kick"
table <mail_block> persist file "/etc/pf/mail_block"
table <ftp_block> persist file "/etc/pf/ftp_block"
table <spamers> persist file "/etc/pf/spamers"
table <firewall> const { self }

		### normalize
scrub in all
#scrub in on $ext_if all fragment reassemble min-ttl 15 max-mss 1400
#scrub in on $ext_if all no-df
#scrub on $ext_if all reassemble tcp

		### NAT
nat on $ext_if from $int_addr0 to any port { ntp, domain } -> ($ext_if:network)
nat pass on $ext_if from $vpn_network to any -> ($ext_if:network)

		### Transparent Proxy Redirection
	#Proxy
rdr on $int_if proto tcp from $int_net0 to any port www -> $proxy_if port $proxy_port

	#Magent
rdr pass on $int_if proto tcp from $int_net0 to any port 443 -> $proxy_if port $proxy_port
rdr pass on $int_if proto tcp from $int_net0 to any port 2041 -> $proxy_if port $proxy_port
rdr pass on $int_if proto tcp from $int_net0 to any port 2042 -> $proxy_if port $proxy_port

		### Redirection_Others

Пропущенно

	#Mail_Server

rdr pass on $ext_if proto tcp from any to $ext_ip port 25 -> 10.10.0.111 port 25				#Mail
rdr pass on $ext_if proto tcp from any to $ext_ip port 110 -> 10.10.0.111 port 110				#Mail


		### BLOCK

	#All
block all

	#Spamers
block in quick on $ext_ip1 proto tcp from <spamers> to port 110
block in quick on $ext_ip1 proto tcp from <spamers> to port 25

	#Blpck_FTP
block in quick on $ext_ip1 proto tcp from <ftp_block> to port 21

	#antispoof
antispoof quick for $int_if 

	#block_other_ip_adres
block drop in quick on $ext_if from $priv_nets
block drop in quick on $int_if from !$int_if:network to any

	#magent
block in quick on $ext_ip1 proto tcp from <magent> to port 443
block in quick on $ext_ip1 proto tcp from <magent> to port 2041
block in quick on $ext_ip1 proto tcp from <magent> to port 2042
block out quick on $int_if proto tcp from <magent> to port 443
block out quick on $int_if proto tcp from <magent> to port 2041
block out quick on $int_if proto tcp from <magent> to port 204

		### PASS

	#tcp_serv
pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_svc flags S/SA keep state

	#IntIF
pass in on $int_if from $int_net0 to any
pass out on $int_if from any to $int_net0

	#ExtIF
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
pass in inet proto icmp all icmp-type $icmp_types keep state

	#proxy_users
pass in on $int_if proto tcp from $int_net0 to $proxy_if port $proxy_port keep state
	
	#ssh_local_users
pass in on $int_if proto tcp from $int_if:network to $int_if port ssh

	#ssh_internet_users
#pass in on $ext_ip1 proto tcp from any to ! <firewall> port ssh flags S/SA synproxy state
#pass in on $ext_ip1 proto tcp from any to $ext_ip1 port ssh
pass in on $ext_ip1 proto tcp from any to $ext_ip1 port ssh flags S/SA keep state
pass proto tcp from any to $Me port 84 flags S/SA keep state
pass proto tcp from $Me port 84 to any flags S/SA keep state

	#www_traf
pass in on $ext_ip1 proto tcp from $int_net0 to any port $proxy_port
pass out on $ext_ip1 proto tcp from $ext_ip1 to any port www modulate state

	#time
pass in on $int_if proto udp from $int_net0 to any port ntp keep state
pass out on $ext_ip1 proto udp from $ext_ip1 to any port ntp keep state

	#DNS
pass in on $ext_ip1 proto tcp from any to $int_if port 53 keep state
pass in on $ext_ip1 proto udp from any to $int_if port 53 keep state
pass proto udp from any to $Me port 53 keep state
pass proto udp from $Me port 53 to any keep state
pass proto udp from any port 53 to $Me keep state
pass proto udp from $Me to any port 53 keep state
pass proto tcp from any to $Me port 53 keep state
pass proto tcp from $Me port 53 to any keep state
pass proto tcp from any port 53 to $Me keep state
pass proto tcp from $Me to any port 53 keep state

	#VPN
pass in on $ext_ip1 proto tcp from any to $ext_ip1 port 2000 keep state
#pass in on $ext_ip1 proto udp from any to $ext_ip1 port 2000 keep state
pass proto udp from any to $Me port 2000 keep state
pass proto udp from $Me port 2000 to any keep state
pass proto udp from any port 2000 to $Me keep state
pass proto udp from $Me to any port 2000 keep state
pass proto tcp from any to $Me port 2000 keep state
pass proto tcp from any to $vpn_network port 2000 keep state
pass proto udp from any to $vpn_network port 2000 keep state
pass in on $ext_ip1 proto udp from any to port 2000 keep state
pass quick on $vpn_if inet keep state


Аватара пользователя
Grishun_U_S
сержант
Сообщения: 221
Зарегистрирован: 2008-04-12 18:26:54
Откуда: Samara
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Grishun_U_S » 2009-04-08 13:12:47

разделить правила block таким образом :

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

block all
block in log
и смотреть логи.
Вообще 7 пакетов в секунду это много.
Изображение

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение rnd » 2009-04-08 13:24:15

и смотреть логи.
tcpdump`ом смотреть? тогде не подскажите полностью команду
Вообще 7 пакетов в секунду это много.
Я знаю, поэтому и стало беспокоить, думал что пройдет, но нет... )
Ну на производительности никак не сказывается.

Аватара пользователя
Grishun_U_S
сержант
Сообщения: 221
Зарегистрирован: 2008-04-12 18:26:54
Откуда: Samara
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Grishun_U_S » 2009-04-08 13:37:35

rnd писал(а):
и смотреть логи.
tcpdump`ом смотреть? тогде не подскажите полностью команду
Вообще 7 пакетов в секунду это много.
Я знаю, поэтому и стало беспокоить, думал что пройдет, но нет... )
Ну на производительности никак не сказывается.

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

tcpdump -n -ttt -r /var/log/pflog
Изображение

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение rnd » 2009-04-08 13:48:22

да... особо картина не обрадовала, вроде ничего особенного или все же я ошибаюсь?

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

215. 845562 IP 10.10.0.17 > 224.0.0.22: igmp v3 report, 1 group record(s)
677133 IP 10.10.0.17 > 224.0.0.22: igmp v3 report, 1 group record(s)
193. 057272 IP 10.10.0.73 > 224.0.0.22: igmp v3 report, 1 group record(s)
627976 IP 10.10.0.73 > 224.0.0.22: igmp v3 report, 1 group record(s)
3. 920854 IP 10.10.0.73 > 224.0.0.22: igmp v3 report, 1 group record(s)
579033 IP 10.10.0.73 > 224.0.0.22: igmp v3 report, 1 group record(s)
926. 841938 IP 10.10.0.49 > 224.0.0.22: igmp v3 report, 1 group record(s)
592050 IP 10.10.0.49 > 224.0.0.22: igmp v3 report, 1 group record(s)
5274. 941116 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
533390 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
85. 051136 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
591480 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
1379. 986820 IP 10.10.0.31 > 224.0.0.22: igmp v3 report, 1 group record(s)
984270 IP 10.10.0.31 > 224.0.0.22: igmp v3 report, 1 group record(s)
1965. 607963 IP 10.10.0.230 > 224.0.0.22: igmp v3 report, 1 group record(s)
535018 IP 10.10.0.230 > 224.0.0.22: igmp v3 report, 1 group record(s)
709. 010403 IP 10.10.0.230 > 224.0.0.22: igmp v3 report, 1 group record(s)
713553 IP 10.10.0.230 > 224.0.0.22: igmp v3 report, 1 group record(s)
989. 535703 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
005118 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
743654 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
356. 247881 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
000827 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
759838 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
17. 007563 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001176 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
991724 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
27. 235687 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001894 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
763065 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
10. 998936 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001477 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
999887 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
562. 243916 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001001 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
768270 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
26. 007457 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001357 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
991795 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
1542. 281045 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001936 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
756332 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
21. 013326 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
003124 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
983974 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
4221. 266427 IP 10.10.0.10 > 224.0.0.22: igmp v3 report, 1 group record(s)
588387 IP 10.10.0.10 > 224.0.0.22: igmp v3 report, 1 group record(s)
130. 275502 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
000422 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
959063 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
56. 973358 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
003659 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
524216 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
16. 463235 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
001156 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
535992 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
81. 514645 IP 10.10.0.14 > 224.0.0.22: igmp v3 report, 1 group record(s)
224.0.0.22 странный ip какой-то

Аватара пользователя
Grishun_U_S
сержант
Сообщения: 221
Зарегистрирован: 2008-04-12 18:26:54
Откуда: Samara
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Grishun_U_S » 2009-04-08 14:09:22

10.10.0.73 а этот ИП чей? Твой?
а этот? 10.10.0.14 ???
На 224 сетки любят слать всякие говнопроги типа 1с-ких серверов ключей.
Изображение

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение rnd » 2009-04-08 14:22:01

Grishun_U_S писал(а):10.10.0.73 а этот ИП чей? Твой?
а этот? 10.10.0.14 ???
На 224 сетки любят слать всякие говнопроги типа 1с-ких серверов ключей.
10.10.0.14 мой
10.10.0.73 на нем висит другой прокси, и сеть с другими адресами, кароче левые люди просто инет берут от нас.
А ключи 1С есть, и не один

Аватара пользователя
Grishun_U_S
сержант
Сообщения: 221
Зарегистрирован: 2008-04-12 18:26:54
Откуда: Samara
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Grishun_U_S » 2009-04-08 15:56:31

rnd писал(а): 10.10.0.14 мой
10.10.0.73 на нем висит другой прокси, и сеть с другими адресами, кароче левые люди просто инет берут от нас.
А ключи 1С есть, и не один
садишься за 10.10.0.14 и ловишь что долбится на 224.
Чем?
Да хоть Tcpview.exe от sysinternals...
Изображение

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение rnd » 2009-04-08 16:09:49

В принципе уже можно сказать разобрался, но.. не совсем )
На это адрес долбятся все компьютеры из сети при выключении питания (завершения работы Windows)
Это только что успел отследить при пропадании компов из сетки.

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

reading from file /var/log/pflog, link-type PFLOG (OpenBSD pflog file)
16:07:09.301559 rule 31/unkn(8): pass in on vr1: 10.10.0.10 > 224.0.0.22: igmp v3 report, 1 group record(s)
16:07:10.013939 rule 31/unkn(8): pass in on vr1: 10.10.0.10 > 224.0.0.22: igmp v3 report, 1 group record(s)
16:34:08.955074 rule 31/unkn(8): pass in on vr1: 10.10.0.22 > 224.0.0.22: igmp v3 report, 1 group record(s)
16:34:09.514059 rule 31/unkn(8): pass in on vr1: 10.10.0.22 > 224.0.0.22: igmp v3 report, 1 group record(s)
16:53:44.759738 rule 31/unkn(8): pass in on vr1: 10.10.0.31 > 224.0.0.22: igmp v3 report, 1 group record(s)
16:53:45.466970 rule 31/unkn(8): pass in on vr1: 10.10.0.31 > 224.0.0.22: igmp v3 report, 1 group record(s)
17:00:08.266957 rule 31/unkn(8): pass in on vr1: 10.10.0.20 > 224.0.0.22: igmp v3 report, 1 group record(s)
17:00:09.034219 rule 31/unkn(8): pass in on vr1: 10.10.0.20 > 224.0.0.22: igmp v3 report, 1 group record(s)
17:23:40.551803 rule 31/unkn(8): pass in on vr1: 10.10.0.230 > 224.0.0.22: igmp v3 report, 1 group record(s)
17:23:41.335682 rule 31/unkn(8): pass in on vr1: 10.10.0.230 > 224.0.0.22: igmp v3 report, 1 group record(s)
17:38:15.879004 rule 31/unkn(8): pass in on vr1: 10.10.0.73 > 224.0.0.22: igmp v3 report, 1 group record(s)
17:38:16.441505 rule 31/unkn(8): pass in on vr1: 10.10.0.73 > 224.0.0.22: igmp v3 report, 1 group record(s)
это вообще нормальное явление??
зато видно кто когда выключил комп, и ушел с раб.места :smile:

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение rnd » 2009-04-25 18:16:59

Помогите перекинуть один комп. (один ip) в обход прокси, просто занатить.
Что-то не получается.

avh
проходил мимо

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение avh » 2009-05-11 15:29:43

может стоит написать статью про pfw - это web fronted для pf, интересная программа.
сам пользуюсь ей недавно, мне она понравилась.

djan
рядовой
Сообщения: 20
Зарегистрирован: 2009-06-18 11:23:59

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение djan » 2009-06-18 11:43:21

От старого админа досталась настроеная фря, которая используется как шлюз. Файрволл - pf, с которым сталкииваюсь в первый раз. На фре поднят ssh на 3322 порту, доступ при активном pf только с 192,168,0,20.

Помогите определить какое правило блокирует ssh для всех

конфиг pf

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

################################################################################
# правила FireWall
################################################################################
# Описываем переменные, содержащие имена интерфейсов
int_if="vr0"
ext_if="ng0"
tun_if="tun0"

# локальные адреса
int_ip="192.168.0.250"
loc_ip="{ 192.168.0.0/24 }"
vpn_ip="{ 192.168.3.0/24 }"
my_ip="{ 192.168.0.1, 192.168.0.20, 192.168.0.24 }"

# открываем порты для локальной сети ( на 322 у нас вистит ssh :) )
int_port_tcp="{ smtp, www, ntp, pop3, auth, 322, pop3s, \
		3128, rdp, 5222, 5901, 5902, 5903, \
		ldap, netbios-ns, netbios-dgm, microsoft-ds, kerberos-sec }"
mail_port="{ smtp, pop3 pop3s, imap, imaps }"

eMule="{ 4236, 4242, 4246, 4500, 4661, 4662, 4665, 5000, 5125 }"
eMuleTCP="23983"
eMuleUDP="23998"
uTorrent="40604"

# для доступа к котроллеру домена для авторизации пользователей
#pdc_server="192.168.0.1"
#pdc_ports="{ ldap, netbios-ns, netbios-dgm, microsoft-ds, kerberos-sec }"

################################################################################
# отбрасывать пакеты будем тихо, чтобы никто не догадался.. ))
set block-policy drop
#set block-policy return #для тестов, быстрее сбрасывает по RST

# Игнорируем петлевой интерфейс
set skip on lo0
set skip on tun0

# нормализуем входящий трафик
scrub in all fragment reassemble

# нормализуем исходящий трафик
# max-mss необходим из-за низкого mtu на внешнем канале
scrub out all random-id max-mss 1440

################################################################################
# разрешаем доступ к внешним почтовым ящикам
nat on $ext_if from $int_if:network \
	to any port $mail_port -> ($ext_if)
#nat on $ext_if from any -> $ext_if
	
################################################################################

#  разрешаем достуа клиент-банкам
#	аваль
#nat pass on $ext_if from $int_if:network \
#	to 194.44.50.101 port 443 -> ($ext_if)

#	МТБ
#nat pass on $ext_if from $int_if:network \
#	to 195.47.202.104 port 7333 -> ($ext_if)
	
#	УкрСибБанк
#nat pass on $ext_if from $int_if:network \
#	to 193.41.49.67 port 2028 -> ($ext_if)

# MTB открываем порты для злостного банка
nat pass on $ext_if from $int_if:network \
	to 195.47.202.108 port 80 -> ($ext_if)

nat pass on $ext_if from $int_if:network \
	to 195.47.202.108 port 443 -> ($ext_if)
	
nat pass on $ext_if from $int_if:network \
	to 195.47.202.108 port 9091 -> ($ext_if)

nat pass on $ext_if from $int_if:network \
	to 195.47.202.108 port 9092 -> ($ext_if)

################################################################################
# Доступ к латвийскому серверу
#nat pass on $ext_if from $int_if:network \
#	to 213.226.139.30 port {5001, 5002, 5004, 5009} -> ($ext_if)

################################################################################
# разрешаем доступ для ftp с моего компа
nat on $ext_if from $my_ip \
	to any -> ($ext_if)
#	to any port {ftp, ftp-data} -> ($ext_if)

################################################################################
# Прокинем порт 3389
#nat on $ext_if from 192.168.0.1 \
#	to any port {3389} -> ($ext_if)
#rdr on $ext_if proto tcp from any to any port 3389 -> 192.168.0.1 port 3389
#nat pass on $ext_if from 192.168.0.1	to any port {3389} -> ($ext_if)
#rdr on $ext_if proto tcp from any to any port 3389 -> 192.168.0.1 port 3389
#pass out on $int_if proto tcp port 3389 keep state
#pass  in on $int_if proto tcp port 3389 keep state
 	

################################################################################
# разрешаем доступ для uTorrent с моего компа
nat on $ext_if from $my_ip \
	to any port 6881 -> ($ext_if)
rdr on $ext_if proto udp from any \
	to any port 4444 -> $my_ip port 4444

################################################################################
# разрешаем доступ для eMule с моего компа
nat on $ext_if from $my_ip \
	to any port $eMule -> ($ext_if)
rdr on $ext_if proto tcp from any to any port $eMuleTCP \
	-> $my_ip port $eMuleTCP
rdr on $ext_if proto udp from any to any port $eMuleUDP \
	-> $my_ip port $eMuleUDP
	
pass in quick on $ext_if inet proto tcp from any \
	to $my_ip port $eMuleTCP keep state
pass out quick on $int_if inet proto tcp from any \
	to $my_ip port $eMuleTCP keep state
	
pass in quick on $ext_if inet proto udp from any \
	to $my_ip port $eMuleUDP keep state
pass out quick on $int_if inet proto udp from any \
	to $my_ip port $eMuleUDP keep state
	
pass in quick on $int_if inet proto { tcp, udp } from $my_ip \
	to any port $eMule keep state
pass in quick on $int_if inet proto udp from $my_ip port $eMuleUDP \
	to any keep state


pass in quick on $int_if inet proto { tcp, udp}  from $my_ip \
	to any keep state
#pass in quick on $ext_if inet proto udp from any \
#	to any port $uTorrent keep state
################################################################################
# блокируем сканирование nmap
block in quick from any os nmap to any

block in log all
block out log all

# детектор сканера портов
block in log-all quick proto tcp from any to any flags /S
block in log-all quick proto tcp from any to any flags /SFRA
block in log-all quick proto tcp from any to any flags /SFRAU
block in log-all quick proto tcp from any to any flags A/A
block in log-all quick proto tcp from any to any flags F/SFRA
block in log-all quick proto tcp from any to any flags U/SFRAU
block in log-all quick proto tcp from any to any flags SF/SF
block in log-all quick proto tcp from any to any flags SF/SFRA
block in log-all quick proto tcp from any to any flags SR/SR
block in log-all quick proto tcp from any to any flags FUP/FUP
block in log-all quick proto tcp from any to any flags FUP/SFRAUPEW
block in log-all quick proto tcp from any to any flags SFRAU/SFRAU
block in log-all quick proto tcp from any to any flags SFRAUP/SFRAUP
block in log-all quick proto tcp from any to any flags FPU/SFRAUP
block in log-all quick proto tcp from any to any flags F/SFRA
block in log-all quick proto tcp from any to any flags P/P

################################################################################
# открываем порт для ftp с моего компа
pass quick on $int_if proto { tcp, udp } from $my_ip \
	to any port {ftp, ftp-data} keep state
	
################################################################################
# открываем порты для клиен-банков
#	Аваль
#pass quick on $int_if inet proto tcp from $int_if:network \
#	to 194.44.50.101 port 443 keep state
#	МТБ
#pass quick on $int_if inet proto tcp from $int_if:network \
#	to 195.47.202.104 port 7333 keep state
#	УкрСибБанк
#pass quick on $int_if inet proto tcp from $int_if:network \
#	to 193.41.49.67 port 2028 keep state

pass quick on $int_if inet proto tcp from $int_if:network \
	to 195.47.202.108 port 80 keep state

pass quick on $int_if inet proto tcp from $int_if:network \
	to 195.47.202.108 port 443 keep state

pass quick on $int_if inet proto tcp from $int_if:network \
	to 195.47.202.108 port 9091 keep state

pass quick on $int_if inet proto tcp from $int_if:network \
	to 195.47.202.108 port 9092 keep state

################################################################################
# открываем порты для латвиского сервера
#pass quick on $int_if inet proto tcp from $int_if:network \
#	to 213.226.139.30 port {5001, 5002, 5004, 5009} keep state

################################################################################
# открываем доступ для ftp 
#pass in on $ext_if proto tcp from any port 1024:65535 \
#	to any port 80 keep state
pass in on $ext_if inet proto tcp from any port 1024:65535 to \
	any port 21 flags S/SA keep state
#pass in on $ext_if inet proto tcp from any port 1024:65535 to \
#	 port 50000:50100 flags S/SA keep state

################################################################################
# открываем доступ для vtun
pass on $ext_if proto tcp from any to port 5000 keep state

# разрешаем DNS запросы
pass quick inet proto tcp to any port domain keep state
pass quick inet proto udp to any port domain keep state

# разрешем SSH с локальной сети он у нас на 322 порту :)
#pass in quick on $int_if inet proto { tcp, udp } to $int_if \
#         port 322 keep state

# разрешаем доступ к локальным сервисам
pass in quick on $int_if inet proto { tcp, udp } \
	to $int_if port $int_port_tcp keep state
	
# Разрешаем все исходящие соединения на данном интерфейсе
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state

# Разрешаем пинговать все интерфейсы
pass on { $ext_if, $int_if, $tun_if }  proto icmp all keep state

# открываем доступ для локальной сети и тунеля
pass on { $int_if, $tun_if } proto { tcp, udp } from $loc_ip \
	to any port $int_port_tcp keep state 
pass on { $int_if, $tun_if } proto icmp all keep state

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение iZEN » 2009-06-18 17:13:11

djan писал(а):От старого админа досталась настроеная фря, которая используется как шлюз. Файрволл - pf, с которым сталкииваюсь в первый раз. На фре поднят ssh на 3322 порту, доступ при активном pf только с 192,168,0,20.

Помогите определить какое правило блокирует ssh для всех
Никакое. По умолчанию используется политика разрешения ("запрещено всё, что не разрешено"). А соответствующее разрешающее правило закомментировано:

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

# разрешем SSH с локальной сети он у нас на 322 порту :)
#pass in quick on $int_if inet proto { tcp, udp } to $int_if \
#         port 322 keep state
поэтому пакеты для SSH не пропускаются.
Раскомментируйте правило и SSH заработает.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Аватара пользователя
itux
мл. сержант
Сообщения: 114
Зарегистрирован: 2008-11-09 12:37:55
Откуда: Kemerovo
Контактная информация:

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение itux » 2009-06-19 9:50:46

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

my_ip="{ 192.168.0.1, 192.168.0.20, 192.168.0.24 }"
Здесь можно занести свой ИП и не разрешать кому папало лезть к прокси...
или поступить более варварски и открыть доступ всем к SSH ^____^
несу чушь, не дорого... звонить +7903.......

djan
рядовой
Сообщения: 20
Зарегистрирован: 2009-06-18 11:23:59

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение djan » 2009-06-26 15:13:58

пытаюсь пробростить порт вовнутрь сети
есть - Вин2003 сервер на который надо пробросить порт, IP - 192.168.0.1 , его основной шлюз 192,168,0,200 (резервный канал интернета)
оснвной инет - FreeBsd где пытаюсь настроить pf IP - 192.168.0.250, интернет поднят через pppoe (ng0 интерфейс)

часть настройни pf

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

rdr on $ext_if proto tcp from any to $ext_if port 3389 -> 192.168.0.1 port 3389 #пробрасываем порт внутрь
.......

# в самом низу конфига....
pass  in on $ext_if proto tcp from any to 192.168.0.1 port 3389 synproxy state # впускаем пакеты на шлюз
pass out on $int_if proto tcp from any to 192.168.0.1 port 3389 modulate state # выпускаем со шлюза
смотрю tcpdump'ом 81.21.11.23 - внешний IP, с которого проверяю
на вснешнем интерфейсе - пакеты приходят

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

# tcpdump -i ng0 -n | grep 3389
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ng0, link-type NULL (BSD loopback), capture size 96 bytes
15:06:57.358479 IP 81.21.11.232.24965 > 94.178.15.253.3389: S 3330952027:3330952027(0) win 5840 <mss 1460,sackOK,timestamp 649033813 0,nop,wscale 7>
15:06:57.358531 IP 94.178.15.253.3389 > 81.21.11.232.24965: S 3624344811:3624344811(0) ack 3330952028 win 0 <mss 1452>
15:06:57.477889 IP 81.21.11.232.24965 > 94.178.15.253.3389: . ack 1 win 5840
15:07:00.475065 IP 81.21.11.232.24965 > 94.178.15.253.3389: . ack 1 win 5840
15:07:06.477641 IP 81.21.11.232.24965 > 94.178.15.253.3389: . ack 1 win 5840
на внутреннем - уходят,

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

# tcpdump -i vr0 -n | grep 3389
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vr0, link-type EN10MB (Ethernet), capture size 96 bytes
15:09:03.954100 IP 81.21.11.232.24965 > 192.168.0.1.3389: R 3624344811:3624344811(0) ack 3330952028 win 0
но IP источника остается 81.21.11.232 соответстено виндовый сервак видит пакет из другой подсети сбрасывает его, отсылая rst флаг на дефаулт роут. В итоге ничего не работает.
Каким образом в проброшеных вовнутрь пакетах поменять IP.src на IP шлюза?

зы: весь конфиг pf - на два поста выше
логи WireShark на Вин-сервере

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

226 21.876512   81.21.11.232          192.168.0.1           TCP      20982 > 3389 [SYN] Seq=0 Win=0 Len=0 MSS=1440
227 21.876539   192.168.0.1           81.21.11.232          TCP      3389 > 20982 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460
228 21.876697   81.21.11.232          192.168.0.1           TCP      20982 > 3389 [RST] Seq=1 Win=0 Len=0

Аватара пользователя
konstantine
ефрейтор
Сообщения: 55
Зарегистрирован: 2009-03-14 11:51:17

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение konstantine » 2009-06-27 10:46:45

Ребят я вот про pfstat читал, но что то не ставил его хотя ПФом уже яро пользуюсь с декабря 2008 прям ВЕЩЬ !!! Так вот у мя примерно такая же система на роутере тоже замутил по статьям прозрачный прокси все дела + ещё ВПН на mpd, так вот я живу в томской области и может некоторые слышали что там у нас есть такие понятие "томские сети" и "внешний интернет" - объясняю томск за абонент плату 1GB доступ (например вот у моего предприяти 3.500), а вот внешний канал для томичей привыкших к "халяве" дороговат и тут мы начинаем хитрить. Я по тихой даю своим внешку, но я во внешний интернет режу порты вот например вот так:

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

#Otkrivaem ports dla nashix GAMEROV i zakrivaem im TOMSK
pass in proto { tcp udp } from { $vpn_network } to !<tomsk> port \
 { 80,8080,22,110,123,443,488,591,777,6667:6669,7770:7775,2106,2009,5190,6060,7777 \
  ,3390,3392,3400,2346,3688,1174,2802,5000,5121,6000,6121,6900,3128,3122 \
  ,6007, 8888, 62500 \
  ,29000 \
  ,3794 \
  ,4232 \
  ,8085,8086,3724 \
  ,3574,3576,3577,17453 \
  ,3050 \
  ,3945 \
  ,3516, 4500, 4514 } keep state

pass in proto udp from $vpn_network to !<tomsk> port { 6100 } # Ventrilo

#porti dla GAME Fantasy Tennis
pass in proto { tcp } from $vpn_network to { 217.110.102.31 217.110.102.33 } port { 5894 8976 }
pass in proto { tcp udp } from $vpn_network to { 217.110.102.37 217.110.102.38 } port { 15033 15034 15044 15045 }

#porti dla Dragon Chase
pass in proto { tcp } from $vpn_network to 216.39.108.134 port { 58888 }                                        #esho + port 62500 v all ports otkrit
pass in proto { tcp udp } from $vpn_network to { 216.39.108.206 216.39.108.205 216.39.108.204 216.39.108.203 } port { 9400 9401 9501 9300 9700 9610 }

#FTP и Торренты
#pass in proto { tcp } from $vpn_network to !<tomsk> port { 20 21 49152:65534 }

#2106,7777,17453 - Lineage
#8085,8086,3724  - WOW
#29000 - Perfect World
#8888 - Time speake
#Ventrilo
#TCP - 3794 for Kleo
#TCP - 3912 for Mumz
#TCP - 3912 for Mumz
#3050 - Russian Рыбалка
#3516, 4500, 4514 - Rappelz. Власть Драконов.
pass in proto tcp from { 192.168.222.31 } to !<tomsk> port { 3912 }
#UDP - 5000, 6100
Эти порты собрались уже давно по просьбам открыть их для пользователей.

И к чему я всё это клоню, когда у вас через роутер бегает много человек 100-200 тяжеловастенько к примеру tcpdump`ом пользоваться НО если уметь им пользоваться то поверьте это самая сильная вещь http://house.hcn-strela.ru/BSDCert/BSDA ... 06s11.html ! Так вот я бы посоветовал пользоваться для выяснения косяков и дыр своих проваил pftop очень удобно, он кстати в удобочитаемом виде предоставляет вам tcpdump можно палить онлайн кто куда и сколько + если юзверей буран и глаза разбегаются, а вам нужно смотреть куда лезет именно какой то конкретный человек можно запустив pftop на жать "f" и написать src host IP_юзверя для определения сколько твоего народу ломить на какой то хост за место src пишем dst - я же говорю прям как tcpdump только по симпотичнее и тогда напарники на работе не будут на вас коситься как на параноидального психа который ловит глазами мелькающий вывод tcpdump`a и при этом ещё ухмыляется.

И вообще советую всем выкачать http://house.hcn-strela.ru/BSDCert/BSDA ... ingle.html - вся инфа BSDa одной страницей.

п.с. А вообще Евгению Миньковскому за его BSDa можно ящик пива при встрече сразу ставить!


А шейпить я всеравно ещё не умею :(
@lissyara: Решений "искаропки" под конкретную задачу - катастрофически мало.
Любое боле-мене серьёзное решение - это кручение коробки под себя.

djan
рядовой
Сообщения: 20
Зарегистрирован: 2009-06-18 11:23:59

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение djan » 2009-08-12 1:53:56

есть вот такой конфиг для pf, который должен всех пускать в инет

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

################################################################################
# правила для pf
################################################################################
# Описываем переменные, содержащие имена интерфейсов
int_if="vr0"
ext_if="rl0"

# локальные адреса
int_ip="192.168.10.2"
my_ip="{ 192.168.10.12 }"
loc_ip="{ 192.168.10.0/24 }"

################################################################################
# отбрасывать пакеты будем тихо, чтобы никто не догадался.. ))
#set block-policy drop
set block-policy return #для тестов, быстре сбрасывает по RST

# Игнорируем петлевой интерфейс
set skip on lo0

#таймайты tcp соединения
set timeout {frag 10, tcp.established 3600 }

# нормализуем входящий трафик
scrub in all fragment reassemble

# нормализуем исходящий трафик
# max-mss необходим из-за низкого mtu на внешнем канале
#scrub out all random-id max-mss 1440

################################################################################
# натим весь трафик наружу
nat on $ext_if from $int_if:network to any -> ($ext_if)

################################################################################
# говорят весчЬ
block all 

######################## всякие пассы ##########################################

#до сервера изнутри может достучаться каждый
pass in on $int_if  inet proto tcp from $int_if:network to $int_if keep state

#выпускаем трафик наружу
pass out on $ext_if from any to any keep state
#pass out on $ext_if proto tcp from 192.168.10.12 to any keep state

# впускаем ssh из локальной сети. Должён был последним, чтобы точно пустил
pass in on $int_if  inet proto tcp from $int_if:network to $int_if port ssh keep state
в rc.conf GATEWAY_ENABLE = "YES" со шлюза: пинг до ya.ru уходит, страницы открываются, в вот из внутрененй машин инет никак нет :(. На на int_if входяшие пакеты пакеты вижу, но назад на все попытки соединения с внешним миром уходят сбросы

Подскажите где ошибка в конфиге?

Аватара пользователя
konstantine
ефрейтор
Сообщения: 55
Зарегистрирован: 2009-03-14 11:51:17

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение konstantine » 2009-08-19 18:10:53

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

#выпускаем трафик наружу
pass out on $ext_if from any to any keep state
#pass out on $ext_if proto tcp from 192.168.10.12 to any keep state

прежде чем будет "out" пакету надо сначало попасть через правило "in" с нутри

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

#выпускаем трафик наружу
pass in on $int_if from any to any keep state
pass out on $ext_if from any to any keep state
#pass out on $ext_if proto tcp from 192.168.10.12 to any keep state
Причём from any to any ты можешь на тупо all заменить но я те советую from $local_net to any - вот так делать типо антисупфинг
Последний раз редактировалось paradox 2009-08-19 19:25:13, всего редактировалось 1 раз.
Причина: полюбите использовать теги
@lissyara: Решений "искаропки" под конкретную задачу - катастрофически мало.
Любое боле-мене серьёзное решение - это кручение коробки под себя.

Гость
проходил мимо

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Гость » 2009-09-17 16:55:08

konstantine
спасибо, с правилами хождения трафика разобрался
теперь хочу прикрутить трафик-шейпер, канал 2М/2М конфиг

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

################################################################################
# правила для pf
################################################################################
# Описываем переменные, содержащие имена интерфейсов
int_if="vr0"
ext_if="rl0" # интелеком

# локальные адреса
int_ip="192.168.10.2"
my_ip="{ 192.168.10.12 }"
loc_ips="{ 192.168.10.0/26 }"

# открываем порты для локальной сети ( на 322 у нас вистит ssh :) )
int_port_tcp="{ smtp, www, ntp, pop3, auth, 322, pop3s, \
                3128, rdp, 5222, 5901, 5902, 5903, \
                ldap, netbios-ns, netbios-dgm, microsoft-ds, kerberos-sec }"
mail_port="{ smtp, pop3 pop3s, imap, imaps }"



################################################################################
# отбрасывать пакеты будем тихо, чтобы никто не догадался.. ))
#set block-policy drop
set block-policy return #для тестов, быстре сбрасывает по RST

# Игнорируем петлевой интерфейс
set skip on lo0

#таймайты tcp соединения
set timeout {frag 10, tcp.established 3600 }

# нормализуем входящий трафик
scrub in all fragment reassemble#что-то
#pass in on $ext_if from $int_if to any keep state

################################################################################
# трафико-резалко
altq on $ext_if cbq bandwidth 1800Kb queue \
{qI, qProgs, qBoss, qOther, qSsh, qAck}
queue qBoss bandwidth 60% priority 2 cbq ( borrow )
queue qI bandwidth 40% priority 2 cbq ( default)

################################################################################
# натим весь трафик наружу
nat on $ext_if from $int_if:network to any -> $ext_if   #скобки не надо, ип статический
################################################################################
# говорят весчЬ
block all

######################## всякие пассы ##########################################

# впускаем ssh из локальной сети. Должён быть с квиком чтобы не возникало вопросов почему так работает
pass in quick  on $int_if inet proto tcp from $int_if:network to $int_if port ssh keep state

# до сервера изнутри может достучаться каждый
pass in on $int_if  inet proto {tcp, udp, icmp} from $int_if:network to $int_if keep state
# сервер имеет полный доступ ко внутренней сети
pass out on $int_if inet proto {tcp, udp, icmp} from $int_if keep state

# все, кто ломяццы наружу
pass in on $int_if  inet proto {tcp, udp, icmp} from $int_if:network to any queue qI keep state

#выпускаем трафик наружу
pass out on $ext_if from $ext_if to any  keep state
#pass out on $ext_if proto tcp from 192.168.10.12 to any keep state

возникла еще одна проблема - трафик ограничивается только на аплоад, на доунлоал качаю с полной скоростью ~2M. тестю на speedtest.net

cuHanc
проходил мимо
Сообщения: 2
Зарегистрирован: 2009-10-09 2:19:02

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение cuHanc » 2009-10-09 2:28:53

Такая странная штука с ПФ, при пользовании uTorrent (это такой битторрент клиент)
оч сильно упала скорость сначала скачет 170-100, потом паддает где-то до 20кб в секунду и так и остается.
Канал 2мбита, т.е. должно быть ~200кб , фтп или хттп примерно так и качает. Такая же фигня и с внутренним п2п shareman.

Соединение в инет через pppoe, демон ppp .
Мой конфиг , слегка модифицированный стандартный, + проброшены на внутренний комп тсп порты для
uTorrent и Shareman клиентов. Может надо как-то заапгрейдить конфиг чтобы не тормозило ?
Причем тормозит даже если не врубать пф, а просто сделать ppp -nat -ddial pppoe, может проблема в ppp ?

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

set require-order no
set skip on lo
scrub in

ext_if="tun0"
int_if="re0"
tcp_services="{80}"

nat on $ext_if from $int_if:network -> ($ext_if:0)
block in on ! lo0 proto tcp from any to any port 6000

block in 
pass out keep state
pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services flags S/SA keep state
pass in quick on $int_if
rdr on $ext_if inet proto tcp from any to any port 15557 -> $int_if port 22
pass in on $ext_if inet proto tcp from any to $int_if port 22
rdr on $ext_if inet proto tcp from any to any port 44866 -> 192.168.100.2 port 44866
pass in on $ext_if inet proto tcp from any to any port 44866
rdr on $ext_if inet proto tcp from any to any port 11725 -> 192.168.100.2 port 11725
pass in on $ext_if inet proto tcp from any to any port 11725

Аватара пользователя
acd
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-09-07 1:07:04

PF: класна штука, але...

Непрочитанное сообщение acd » 2009-11-01 3:15:28

От, маю на разі таку ситуацію: агрегат з 4-х ADSL-модемів в одному пулі за допомогою PF. Чому саме так? Та того, що 4 ADSL (в сумі 16Мбіт/с) дешевше ніж одним виділеним каналом. :smile: Але от маю до того щастя ще таку проблему - багато пакетів drop'иться саме десь на маршрутизаторі! Коли було 3 модеми з'єднані в один канал, то проблем ніяких не було. Коли включили 4-й, то стали зникати пакети...

Привожу нижче те, що може подальшого знадобитись для подальшого аналізу. OC - FreeBSD 8.0

LAN = 192.168.0.0/16, vr0 - internal LAN interface, rlxx - outgoing interfaces.

host# pfctl -si

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

State Table                          Total             Rate
  current entries                     2092
  searches                       414515880         2282.0/s
  inserts                            8123232           44.7/s
  removals                         8121140           44.7/s
Counters
  match                            8850149           48.7/s
  short                                      90            0.0/s
  memory                             11038            0.1/s
  proto-cksum                            23            0.0/s
  state-mismatch                  17575            0.1/s
[/color]
host# more /etc/pf.conf

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

lan = "192.168.0.0/16"
int_if  = "vr0"
ext_if1 = "rl1"
ext_if2 = "rl2"
ext_if3 = "rl3"
ext_if4 = "rl0"
gw1 = "x.x.x.x1"
gw2 = "x.x.x.x2"
gw3 = "x.x.x.x3"
gw4 = "x.x.x.x4"

#  Block undenied packets
set block-policy return

#  Optimizing network traffic
set timeout { frag 10, tcp.established 3600, tcp.first 120, tcp.finwait 20, \
              udp.single 30, adaptive.start 6000, adaptive.end 12000 }
set limit { states 20000, src-nodes 2000 }
set ruleset-optimization basic
#set optimization conservative

scrub no-df
scrub random-id
scrub in on $int_if all fragment reassemble

#  NAT outgoing connections on each internet interface
nat on $ext_if1 from $lan to any -> ($ext_if1)
nat on $ext_if2 from $lan to any -> ($ext_if2)
nat on $ext_if3 from $lan to any -> ($ext_if3)
nat on $ext_if4 from $lan to any -> ($ext_if4)

#  Pass in quick any packets destinated to the router itself
set skip on $int_if

#  Load balance outgoing tcp traffic from internal network.
pass in on $int_if route-to { ($ext_if1 $gw1), ($ext_if2 $gw2), ($ext_if3 $gw3),\
 ($ext_if4 $gw4) } round-robin proto tcp from $lan to any flags S/SA modulate state

#  Load balance outgoing udp and icmp traffic from internal network
pass in on $int_if route-to { ($ext_if1 $gw1), ($ext_if2 $gw2), ($ext_if3 $gw3),\
 ($ext_if4 $gw4) } round-robin proto { udp, icmp } from $lan to any keep state

#  General "pass out" rules for external interfaces
pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if1 proto { udp, icmp } from any to any keep state
pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if2 proto { udp, icmp } from any to any keep state
pass out on $ext_if3 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if3 proto { udp, icmp } from any to any keep state
pass out on $ext_if4 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if4 proto { udp, icmp } from any to any keep state

#  Route related to IPs packets on $ext_if1 to $gw1, for $ext_if2 to $gw2, $ext_if3 to $gw3
pass out on $ext_if1 route-to { ($ext_if2 $gw2), ($ext_if3 $gw3), ($ext_if4 $gw4) }\
 from { $ext_if2, $ext_if3, $ext_if4 } to any
pass out on $ext_if2 route-to { ($ext_if1 $gw1), ($ext_if3 $gw3), ($ext_if4 $gw4) }\
 from { $ext_if1, $ext_if3, $ext_if4 } to any
pass out on $ext_if3 route-to { ($ext_if1 $gw1), ($ext_if2 $gw2), ($ext_if4 $gw4) }\
 from { $ext_if1, $ext_if2, $ext_if4 } to any
pass out on $ext_if4 route-to { ($ext_if1 $gw1), ($ext_if2 $gw2), ($ext_if3 $gw3) }\
 from { $ext_if1, $ext_if2, $ext_if3 } to any
-----------------------------------------------------------------------------------------------------------------------
Трохи громіздкий конфіг, але, думаю з коментами, розберетесь, що й до чого.
Підкажіть, чого в мене втрати пакетів з клієнтської машини 5-12%, в той час як з маршрутизатора на всі модеми <1%!

Помогите разобраться с пробросом портов
проходил мимо

Re: Готовится статья "PF : Конфиг для офисов"

Непрочитанное сообщение Помогите разобраться с пробросом портов » 2009-11-30 23:45:05

Есть шлюз на OpenBSD требуется дать доступ по ssh на внутреннюю машинку. Насколько я понял это делается с помощью rdr:

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

rdr on $ext_if proto tcp from any to $ext_ip port $ssh_port -> $ssh_serv port $ssh_port
pass all
Судя по tcpdump, запущенному на $ssh_serv пакеты извне до него доходят, но клиент отваливается с "Connection time out".