Страница 1 из 1

Проблема с PF

Добавлено: 2011-06-08 13:24:12
oleks1y
Всем добрый день.

Есть локалка 192.168.100.0/24, в локалке шлюз под управлением freebsd 7.0, на котором настроен proftpd, pf и mpd5 с виртуальной подсетью 10.189.159.0/24.
Задачи такие:
1) Обеспечить доступ из локалки в инет через nat без ограничений (в том числе и на торренты и фтп).
2) Обеспечить доступ из инета к фтпшнику на шлюзе (в том числе и пассивный режим).
3) Обеспечить подключенных удаленных впн клиентов доступом без органичений к ресурсам локальной сети.

Пункты 2 и 3 вроде бы работают, выкладываю конфиг, поругайте правила, поскольку в том что они на 100% правильные я сомневаюсь. Некоторые строчки бездумно драл с инета и особо не заморачивался, поскольку работает. Но хочу чтобы правила были правильные и не было ничего лишнего.

Проблемы, которые есть сейчас
1) Нет доступа из локалки через нат к фтп серврам в инете (не работает пассивный режим)
2) Как-то криво работает торрент (маленькая скорость и практически нет отдачи)

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

ext_if="em1"
int_if="em0"

lannet="192.168.100.0/24" 		#внутренняя локалка
ext_ip="81.x.x.x/8"			#внешний IP
1c_server="192.168.100.100"	#1C сервер в локалке, на который по RDP ходят из вне

table <vpn>	{10.189.159.0/24}	#VPN подсеть
private_nets = "{ 127.0.0.0/8, 192.168.100.0/24, 10.189.159.0/24, 0.0.0.0/8 }"
client_ports = "{ 21, 22, 25, 110, 123, 80, 5190, 443, 3128, 3129, 3389, 8080, 5938, 9997, 2802, >=49151 }"

ftp_ports = "{ 80, 21, 20, >=49151 }"	#эти порты необходимы для корректного захода на наш фтп из вне любым софтом (в том числе и браузером)

set block-policy drop
set loginterface $ext_if
set optimization normal
set skip on lo0

scrub in

nat on $ext_if from $int_if:network to any -> $ext_if
rdr on $ext_if proto tcp from any to $ext_if port rdp -> $1c_server

antispoof quick for {lo0, $int_if}

block log all
block drop in quick on $ext_if from $private_nets to any

pass out keep state

pass inet proto icmp icmp-type echoreq
pass in on $int_if proto udp from $lannet to any port domain keep state
pass in on $int_if proto udp from $lannet to any port ntp keep state
pass in on $int_if proto tcp from $lannet to any port $client_ports keep state

pass in log on $ext_if proto tcp from any to $ext_ip port 22 flags S/SA synproxy state
pass in log on $ext_if proto tcp from any to $1c_server port rdp flags S/SA synproxy state
pass in quick on $ext_if proto tcp from any to $ext_ip port 1723 flags S/SA keep state

pass in quick from <vpn> to any
pass in quick from any to <vpn>

pass out quick from any to <vpn>
pass out quick from <vpn> to any

pass in quick on $ext_if inet proto tcp from any to $ext_ip port $ftp_ports keep state
Жду Ваших замечаний по конфигу и рекомендаций по нормализации работы торрента и захода на фтп сервера в инете.

Re: Проблема с PF

Добавлено: 2011-06-08 21:03:47
sudo
1) Нет доступа из локалки через нат к фтп серврам в инете (не работает пассивный режим)
С таким конфигом и не будет с pf работать.

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

 nat-anchor "ftp-proxy/*"
 rdr-anchor "ftp-proxy/*"

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

rdr on $IntIf inet proto tcp from $IntIf:network to !(self)        port 21                  -> lo0           port 8021

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

[21:58 root@starscream /home/baton]# ps wuaxx | grep ftp
proxy    1702  0.0  0.0  3336    96  ??  Ss   17Dec10   0:45.38 /usr/sbin/ftp-proxy -v -D 7 -b 127.0.0.1
root    36424  0.0  0.0   552   296   0  DL+  10:00PM   0:00.00 grep ftp
rc.conf

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

ftpproxy_enable="YES"
ftpproxy_flags="-v -D 7 -b 127.0.0.1"
Дальше сам смотри по tcpdump -nettti pflog0 | grep block пакеты на интерфейсах.