分页: 1 / 1

FTP服务器通过外部的PF防火墙运行NAT来保护

发表于 : 2011-02-22 17:07
chenjun
FTP服务器通过外部的PF防火墙运行NAT来保护,参照手册http://openbsd.gobsd.org/pf/ftp.html可以实现一台内部FTP服务器被保护,如果内部FTP服务器数量在两台以上,请问该如何实现?

发表于 : 2011-02-22 20:47
leo
chenjun 写了:FTP服务器通过外部的PF防火墙运行NAT来保护,参照手册http://openbsd.gobsd.org/pf/ftp.html可以实现一台内部FTP服务器被保护,如果内部FTP服务器数量在两台以上,请问该如何实现?
用地址池不行吗?

发表于 : 2011-02-23 8:34
chenjun
用地址池我考虑过,不过设置ftp代理时需要在rc.conf.local中加上类似于ftpproxy_flags="-R 10.10.10.1 -p 21 -b 192.168.0.1"这样的一句话,如果多台FTP服务器,不知该如何添加。我试过另外再写一条ftpproxy_flags绑定第二台FTP服务器,可这样只有后者生效,第二台内部的服务器能正常被外网到,第一台不行

发表于 : 2011-02-23 8:51
leo
稍后我来试试吧,我也没有试过,如果成功我会将方法和结果提出来。

发表于 : 2011-02-23 9:02
chenjun
leo 写了:稍后我来试试吧,我也没有试过,如果成功我会将方法和结果提出来。
先在此谢过,我也继续尝试

发表于 : 2011-02-23 17:13
chenjun
问题解决了,我的配置如下:
1.编辑/etc/rc.conf,启动ftp-proxy服务

代码: 全选

ftpproxy_flags=""
2.在/etc/rc.local中添加需要做NAT的服务器信息

代码: 全选

/usr/sbin/ftp-proxy -R 10.10.10.1 -p 21 -b 192.168.0.1
/usr/sbin/ftp-proxy -R 10.10.10.2 -P 21 -b 192.168.0.2
其中10.10.10.1、10.10.10.2是内部FTP服务器的IP地址,192.168.0.1、192.168.0.2是OB服务器对外提供的接口em0上的两个IP地址
3.pf.conf规则如下:

代码: 全选

anchor "ftp-proxy/*"
match out on em0 inet from $int_if nat-to (em0)
pass in on em0 inet proto tcp to 192.168.0.1 port 21
pass out on $int_if inet proto tcp to 10.10.10.1 port 21
pass in on em0 inet proto tcp to 192.168.0.2 port 21
pass out on $int_if inet proto tcp to 10.10.10.2 port 21

发表于 : 2011-02-23 21:07
leo
不错不错,恭喜。

回复: FTP服务器通过外部的PF防火墙运行NAT来保护

发表于 : 2012-03-30 13:28
chrdn
高手就是这样炼成的,佩服