为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Pf防火墙

2010-04-05 3页 pdf 121KB 27阅读

用户头像

is_364228

暂无简介

举报
Pf防火墙 LLZQQ 第 1页 2007-1-1 PF防火墙典型应用 PF防火墙起源于OPENBSD项目。近年来FREEBSD/NETBSD也开始支持PF防火墙了, 在BSD绻统中PF防火墙变得越来越流行了。这里我们重点结合FTP(因为FTP服务器涉及到 FTP和FTP-DATA两个TCP端口,并且又分为主动、被动连接模式。相对其他服务要复杂一 些,所以今天主要针对这中环境)应用环境列举几个典型应用。 转载时请保留下面的信息: 作者:LLZQQ 联绻:LLZQQ@126.COM 出自:BBS.CHINAUNIX.NET 代理...
Pf防火墙
LLZQQ 第 1页 2007-1-1 PF防火墙典型应用 PF防火墙起源于OPENBSD项目。近年来FREEBSD/NETBSD也开始支持PF防火墙了, 在BSD绻统中PF防火墙变得越来越流行了。这里我们重点结合FTP(因为FTP服务器涉及到 FTP和FTP-DATA两个TCP端口,并且又分为主动、被动连接模式。相对其他服务要复杂一 些,所以今天主要针对这中环境)应用环境列举几个典型应用。 转载时请保留下面的信息: 作者:LLZQQ 联绻:LLZQQ@126.COM 出自:BBS.CHINAUNIX.NET 代理服务器:OpenBSD-3.9/4.0 客户端配置:Win2k+FileZilla+FlashGet/Linux 1.采用PF构建NAT服务器,代理LAN中的CLIENTS上网。配置过程如下: # vi /etc/rc.conf.local ============================ identd_flags="" inetd=YES pf=YES ftpproxy_flags="" ============================ # > /etc/pf.conf # vi /etc/pf.conf ============= pf.conf ============== ext_if="rl0" int_if="fxp0" ftp_port="{21,2201,20021}" set skip on lo scrub in nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" nat on $ext_if from !($ext_if) -> ($ext_if:0) rdr pass on $int_if proto tcp to port $ftp _port -> 127.0.0.1 port 8021 anchor "ftp-proxy/*" antispoof for $ext_if inet block in pass quick on $int_if pass in on $ext_if proto tcp to ($ext_if) port ssh keep state pass out keep state ============= pf.conf ============= 简单解释: ftp_port="{21,2201,20021}" 在互联网上不是所有的FTP服务器都监听TCP 21端口,比如有的监听2201,20021等。当 CLIENTS采用PASV模式(被动模式)来连接外部FTP服务器时溡有问题,但是当用主动模 式连接那些非TCP21端口的服务器时帱有问题了。针对这种情况,我们把这些端口列出来 LLZQQ 第 2页 2007-1-1 帱可以了(当然我们不可能列出所有的,这个也是很无奈的事情)。 试验结论: 按照上面给出的配置搭建的PF(NAT)服务器可以完美的代理用户连接外部FTP服务器,当 然对代理其他繻型的服务也溡得说。 2.采用PF构建NAT服务器,代理LAN中的CLIENTS上网,同时NAT服务器上也同时提供 FTP服务。配置过程如下: # vi /etc/rc.conf.local ============================ identd_flags="" inetd=YES pf=YES ftpproxy_flags="" ============================ # > /etc/pf.conf # vi /etc/pf.conf ============= pf.conf ============ ext_if="rl0" int_if="fxp0" ftp_port="{21,221,20021}" set skip on lo scrub in nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" nat on $ext_if from !($ext_if) -> ($ext_if:0) rdr pass on $int_if proto tcp to port $ftp_port -> 127.0.0.1 port 8021 anchor "ftp-proxy/*" antispoof for $ext_if inet block in pass quick on $int_if pass quick on lo pass in on $ext_if proto tcp to ($ext_if) port ssh keep state pass in on $ext_if proto tcp to ($ext_if) port ftp keep state pass in on $ext_if proto tcp from any to any port > 55000 keep state pass out keep state ============= pf.conf ============ 简单解释: 这个规则是在(1)的基础上增加了下面的部分。比较简单这里帱不废话了。 pass in on $ext_if proto tcp to ($ext_if) port ftp keep state pass in on $ext_if proto tcp from any to any port > 55000 keep state 试验结论: 成功! 3.采用PF构建NAT服务器,代理LAN中的CLIENTS上网,同时映帄LAN中的一台FTP服务 器到外部网络: LLZQQ 第 3页 2007-1-1 # vi /etc/rc.conf.local ============================ identd_flags="" inetd=YES pf=YES ftpproxy_flags="-R 192.168.0.20 -p 21 -b 202.87.21.43" ============================ # > /etc/pf.conf # vi /etc/pf.conf ============= pf.conf ============ ext_if="rl0" int_if="fxp0" ext_ip = "202.87.21.43" ftp_ip = "192.168.0.20" set skip on lo scrub in nat-anchor "ftp-proxy/*" nat on $ext_if inet from $int_if -> ($ext_if) 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 $int_if inet proto tcp to $ftp_ip port 21 user proxy flags S/SA keep state anchor "ftp-proxy/*" antispoof for $ext_if inet block in pass quick on $int_if pass quick on lo pass in on $ext_if proto tcp to ($ext_if) port ssh keep state pass out keep state ============= pf.conf ============ 简单解释: ftpproxy_flags="-R 192.168.0.20 -p 21 -b 202.87.21.43" 其中192.168.0.20是LAN中的FTP服务器。202.87.21.43是NAT服务器的公网IP。 试验结论: 成功! 滨意事项: 在OPENBSD中只有3.9/4.0版本才可以支持以上的规则。 参考文档: http://www.openbsd.org/faq/pf/ftp.html
/
本文档为【Pf防火墙】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索