热搜
您的位置:首页 >> 体育

设置和使用ipfwnatdFreeBSD技术文摘

2019年11月04日 栏目:体育

如果使用者喜欢自己定制过滤规则,而不是在系统提供的规则基础上更改,那么可以将规则放入一个文件中,在rc.conf文件中设置 firewall

如果使用者喜欢自己定制过滤规则,而不是在系统提供的规则基础上更改,那么可以将规则放入一个文件中,在rc.conf文件中设置 firewall_enable=”YES”的基础上,将firewall_type的值改为放置ipfw规则的文件名。这样系统启动时就能够使用 ipfw自动执行这些配置。但如果只是对过滤规则的少量更改,就可以直接修改rc.firewall文件。

* 使用natd设置地址转换

natd与ipfw相互配合,能够实现网络地址翻译的能力。内核通过一个特定的divert类型的端口,将需要转换的数据包交给natd,而natd转换之后,再发送回内核,由内核再进行转发。它的好处不但是能提供防火墙能力,还能使得内部计算机能共享外部网络地址,这在IP地址空间比较紧张的当前是一个非常有用的技术。   当应用网络地址翻译时,可供选择的内部IP有:10.0.0.0到10.255.255.255,172.16.0.0到 172.31.255.255,192.168.0.0到192.168.255.255。这些地址由RFC1918中定义为内部地址,不会出现在 Internet上。

FreeBSD下有几种软件能实现部分或全部NAT功能,功能简单的是用户级ppp提供的alias功能,使用alias参数启动ppp将使ppp将所有来自其他网络介面的数据包中的源IP地址改变为tun0网络界面的IP ,转发到ppp连接上去。这种IP伪装的方式虽然功能简单,但对于拨号将内部网络和Internet连接的用户非常适合。

设置natd需要以下的步骤,首先设置好包过滤支持,包括内核中的IPFIREWALL和rc.conf中的 gateway_enable参数设置。它需要内核支持IPDIVERT选项,如果没有设置这个选项,就需要重新编译支持这些选项的内核;然后需要为 natd指定一个divert端口,用于接收和发送从内核转发过来的包。这需要在/etc/services 中增加一个divert端口的设置:

natd 8668/divert

然后需要将所有的数据包都发送给相应的divert端口natd,然后由监听这个端口的守护进程natd 接收并转换。

# /sbin/ipfw -f flush# /sbin/ipfw add divert natd all from any to any via fxp0# /sbin/ipfw add pass all from any to any

上面的命令中使用了一个新的ipfw指令divert,这个指令就对符合这个规则的数据包通过divert规定的端口natd进行地址转换。但是 divert指令和log和count指令相似,它并没有终止过滤规则,而是继续进行数据包过滤,只是此后的过滤将是针对转换后的数据包进行的了。

执行了这些ipfw指令之后,而由于还没有启动natd守护进程,那么网络的正常连接都不再能进行了,发送到 divert的端口natd的数据包就被丢掉。直到启动natd进程,通过它进行处理之后,数据包才会正常发送。

简单的启动natd的指令为:

# natd -interface fxp1

此时,natd将内部的向外连接中的内部地址转换为fxp1上的IP地址,而内部网络的计算机必须设置这个防火墙为它们的路由器,以便将数据包交给它进行转发。但由于整个网络对外只表现为一个地址,外部网络并不需要了解这台防火墙的路由能力。

如果要在系统启动时自动设置地址转换,就需要将这些ipfw/natd的过滤规则与系统启动文件结合在一起。缺省的启动文件已经支持了 ipfw/natd,因而仅仅需要打开启动文件中相关设置就可以了。这不但需要在rc.conf 中设置gateway_enable,firewall_enable,还需要设置natd_enable为YE S,以使得自动启动natd守护进程,还需要指定natd使用的网络界面natd_interface的值,帮助将正确的数据包发送给natd,并使系统执行natd时使用正确的参数。而设置项natd_flags用来指定其他natd 需要的参数,例如用于指定natd设置文件等,简单情况下不需要使用这个设置项。

当打开natd_enable时,将在其他过滤规则之前添加这个过滤规则,但是其他规则同样也会生效,因为当数据包从natd发送回系统之后,系统再对其应用过滤规则。

不过,由于在natd转换IP地址之后还应用过滤规则,因此这些数据包还有可能被过滤。尤其在同时设置了 firewall_type为simple以执行rc.firewall中的防火墙过滤设置的时候,就需要注意其中与na td相冲突的设置。simple过滤规则中存在屏蔽外部计算机对RFC1918规定的IP地址进行访问的设置,然而n atd将正常通信的数据包中的地址转换为了内部IP地址,因而缺省设置将阻止这些数据包发送到内部计算机中。

贵州白癜风皮肤病医院李顺柏
潍坊明润眼科医院医生
贵阳癫痫病医院那里好
大连治疗阴道炎费用
洛阳整形美容医院哪家好
  • 友情链接
  • 合作媒体