LINUX.ORG.RU
решено ФорумAdmin

OPENBSD 5.8 RDR FTP

 , , ,


0

1

есть шлюз на openbsd и есть внутри сети ftp на который нужно перенаправлять вот pf.conf:

#FTP
#adress
ext_ip = 1.1.1.8
ftp_ip = 2.2.2.243
#open 21
pass in on $ext_if inet proto tcp to $ext_ip port 21 flags S/SA keep state
#NAT
pass out on $ext_if from 2.2.2.0/8 to any nat-to $ext_ip
pass in on $ext_if proto tcp from any to any port 21 rdr-to $ftp_ip
pass out on $int_if inet proto tcp to $ftp_ip port 21 user proxy
#nat-anchor "ftp-proxy/*"
#nat on $ext_if inet from 2.2.2.14 rdr-to ($ext_if) port 21
#rdr-anchor "ftp-proxy/*"
#pass in on $ext_if inet proto tcp to $ext_ip port 21 flags S/SA keep state
#pass out on 2.2.2.14 inet proto tcp to $ftp_ip port 21 flags S/SA keep state
#anchor "ftp-proxy/*"

#pass in on $ext_if proto tcp from any to $ext_ip port 21 divert-to $ftp_ip port 21
#pass out on $int_if proto tcp to 2.2.2.243 port 21 received-on $int_if nat-to $ext_if
внутренний фтп не доступен( пробовал настраивать по схеме:
ext_ip = "192.168.0.1"
ftp_ip = "10.10.10.1"

match out on $ext_if inet from $int_if nat-to ($ext_if)

anchor "ftp-proxy/*"
pass in on $ext_if inet proto tcp to $ext_ip port 21
pass out on $int_if inet proto tcp to $ftp_ip port 21 user proxy
результат аналогичен



Последнее исправление: beastie (всего исправлений: 2)

Тут читал? Для второго варианта ftp-proxy дожен слушать на 21-ом порту.

PS: Если без ftp-proxy, то надо ещё пробрасывать все потры выше 49151. И возможно ещё порт 20 (не помню уже точно).

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 3)
Ответ на: комментарий от beastie

Вот так у меня, только не rc.conf.local а rc.conf Edit /etc/rc.conf.local and add the following:

ftpproxy_flags="-R 2.2.2.243 -p 21 -b 1.1.1.1"

Этого не достаточно? или нужно ещё

127.0.0.1:6969 dgram udp wait root /usr/libexec/tftp-proxy tftp-proxy

minzdravv
() автор топика

Могу предположить, что для этих соединений conntrack как-то отдельно указать нужно. Не знаток, но на уровне предположения. ftp использует не только 21 порт, точнее это только для команд, для данных или 20-й или >1024 в зависимости от режима пассивный/активный. Погуглите именно в эту сторону.

anc ★★★★★
()

Для обычного ftp решение найдено.

в rc.conf пишете ftpproxy=yes ftpproxy_flag=-R ip.адрес.вашего.серера

в pf.conf пишете pass in on $ext_if proto tcp to port 21

pass in on $ext_if proto tcp to port > 49151 pass in on $ext_if proto tcp from any to self port 21 rdr-to 127.0.0.1 port 8021

pass in all pass out all anchor «ftp-proxy/*»

фтп пускает из вне.

Осталась проблема проброса ftps при подключении пишет «сервер не верно закрыл TLS соединение»((

minzdravv
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.