扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
rdr的另一个重要用途是可以用以构建透明的代理服务器,普通代理服务器都需要在客户机上进行设置,如果不进行设置,客户机将直接访问 Internet上的计算机而不通过代理服务器,然而防火墙可以将这些应用请求转发给代理服务器,完成代理工作。此时对外界发送请求是在内部网络界面fxp0上发起的,因此也要在这里进行地址转换,而使用0.0.0.0/0 代表对所有目的地址,并且是80端口的浏览请求都转发到127.0.0.1上去,而127.0.0.1 必须运行代理服务器软件,以提供代理服务。
rdr fxp0 0.0.0.0/0 port 80 -> 127.0.0.1 port 80
虽然不是所有的应用代理服务都能使用透明代理的方法来减轻客户设置的负担,但绝大多数代理完全可以使用这种方法,使得客户不需要修改软件设置,就能利用代理服务器,而代理服务器具备大量的缓冲区,能够节约内部网络的Internet 访问流量并加速Internet访问速度。
因此,一个简单的不支持透明代理服务器的设置文件ipnat.conf例子为:
map fxp1 192.168.3.0/24 -> 202.102.245.0/26 portmap tcp/udp 10000:65000map fxp1 192.168.3.0/24 -> 202.102.245.0/26rdr fxp1 202.102.245.60 port ftp -> 192.168.3.2 port ftp
在这样的设置下,tcp和udp在地址资源消耗完毕之后将进行端口转换,而其他协议,如icmp,将直接进行地址转换而不必进行端口转换。此后就可以将这个转换规则加入系统中,需要执行ipnat命令:
# ipnat -C# ipnat -f /etc/ipnat.conf
当前使用-C参数用于清除现有的转换规则,-f用于从配置文件中读取转换规则。设置了转换规则之后,就可以使用-l参数查看当前设置的转换规则和已经激活的转换关系。
# ipnat -lList of active MAP/Redirect filters:map fxp1 192.168.3.0/24 -> 202.102.245.0/26 portmap tc
# 设置包过滤
ipfilter也能很好的完成包过滤任务,它的过滤规则相当复杂。下面为一些简单的过滤设置例子,一般这些过滤规则可以保存在/etc/ipf.conf文件中。
block in log quick all with shortblock in log quick all with ipopts
block参数用于屏蔽符合过滤条件的数据包,in代表数据包的方向,标识从网络上或其他网络界面上发送到某个网络界面上的数据包,log用于指出该规则过滤的数据包应被记录下来,quick指示ipfilter进行快速过滤处理,符合这个规则的数据包将立即丢弃, all with short标识不完整的IP数据包,数据包的长度太小就没有包含合法的源地址或目标地址,从而无法被ipfilter识别,all with ipopts标志本身带有路由数据的IP数据包,这些IP数据包由于包含自己的路由信息,因此可能会带来网络安全问题。
这两句设置用于过滤可能会带来安全问题的短数据包或具备路由信息的数据包。
pass in on fxp0 allpass out on fxp0 allpass in on lo0 allpass out on lo0 all
pass用于指定数据包可以通过,out与in相反,标识从网络界面向网络上或其他网络界面发送的数据包,而on fxp0或on lo0标识进行处理的网络界面。这里的设置允许内部网络界面、loopback网络界面可以自由发送和接收数据包。
block in log on fxp1 allblock out log on fxp1 all
为了安全起见,除了明确指定可以发送和接收的数据包之外,屏蔽其余的外部网络界面进行数据发送和接收。
block in log quick on fxp1 from 10.0.0.0/8 to anyblock in log quick on fxp1 from 192.168.0.0/16 to anyblock in log quick on fxp1 from 172.16.0.0/12 to anyblock in log quick on fxp1 from 127.0.0.0/8 to any
上面的设置明确屏蔽具备内部网络地址的数据包被转发到外部网络去,由于ipfilter中地址转换和包过滤是在同一个系统中完成的,因此不必担心它们会发生冲突问题。
pass out log on fxp1 proto icmp all keep statepass out log on fxp1 proto tcp/udp from any to any keep state
proto用于指定不同的协议,通常可以设置为tcp, udp和icmp。这两行设置允许TCP, UDP, ICMP协议的数据包可以向外发送出去,keep state用于标识建立TCP连接之后的数据包,或者ICMP、UDP的回应数据包,以允许回应数据包能发送回内部网络。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者