[原创]不编译内核快速使用ipfw做NAT_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4347 | 回复: 0   主题: [原创]不编译内核快速使用ipfw做NAT        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-6-29 16:11:14 | [全部帖] [楼主帖] 楼主

FreeBSD手册上建议使用编译内核的方式来支持IPFW,但在很多时候,特别是新安装机器或虚拟机中时,不希望过多的涉及内核的操作,更希望用一种快捷的方式来使用IPFW。

实际上,在/boot/kernel目录下,有两个IPFW的内核模块,我们随时都可以加载它:

# ls /boot/kernel/ipfw*
/boot/kernel/ipfw.ko /boot/kernel/ipfw_nat.ko


前一个就是ipfw模块,后一个是ipfw的nat模块,用来提供NAT(网络地址转换)功能,除了WEB、FTP、数据库等服务器外,在大多数情况下,都需要加载它。

1、加载ipfw模块

#kldload ipfw
ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabled


出现的几句话表明:

(1)divert禁用,这个现在问题不大了,做nat一般用内核的nat。

(2)forwardin禁用,这个一般问题也不大,除非你有需要重定向的应用,比如web劫持。

(3)默认为deny,也就是deny ip from any to any,禁用所有的数据包。该规则同时也提示:远程操作将被中断,所以在远程操作ipfw的时候,最好同时再加一句话:

kldload ipfw && ipfw add 65530 allow ip from any to any,否则你就被锁到外面了。

(4)log禁用,这个问题也不大,一般不编译内核都是临时性的,日志功能不是太重要。

2、加载ipfw_nat模块:

#kldload ipfw_nat


3、编写基础的规则:

(内网卡,em0,ip:192.168.1.1,外网卡em1,ip:172.16.1.1)
ipfw nat 10 config ip 172.16.1.1
ipfw add 100 nat 10 ip from any to any in via em1
ipfw add 200 nat 10 ip from any to any out via em1
ipfw add 65530 allow ip from any to any


4、做nat的时候,不要忘了要启用网关,如果不确定,那么就把这句加上吧:

sysctl net.inet.ip.forwarding=1


该贴由hui.chen转至本版2014-11-5 17:04:57



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论