免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1015 | 回复: 0
打印 上一主题 下一主题

FREEBSD5.1上用IPFILTER做NAT做网关(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-28 09:06 |只看该作者 |倒序浏览
初期目的:以UNIX里的FREEBSD系统做主机,实现网关功能,提供内网机器上网.
预期目的:同时实现防火墙FIREWALL的作用.
前序:我所知的也是目前用的UNIX下实现这个功能的有三种,1,IPFW,2,IPFILTER,3,安装squid等第三方软件.我选择了IPFILTER,简称IPF方法.
注意:本问是对静态IP的配置,对于PPP/ADSL拨号不适用.但差不多,拨号需要额外设置PPP
说明:本文中#代表系统提示符,## 解释说明 ###解释说明转行。
开始:   
1、使用双网卡。一块连接外,一块连接内网.连接外网的网卡标识rl1,连接内网的为rl0
(因为我2块网卡都是REALTEK8139的,所以网卡标识为rl,1和0是两块网卡的区别号)
2、在/etc/rc.conf中加上:   
ifconfig_rl1="inet 218.92.251.108 netmask 255.225.225.0"   
##(对外网卡的设置,很显然,218.92.251.108为静态IP地址。255.255.255.0子网掩码。不懂?我颠~)   
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0" 
##(对内网卡IP地址以及子网掩码的设置)   
##以上加进rc.conf是为了再每次开机的时候配置好两块网卡的IP地址等。
firewall_enable="NO"  #取消防火墙
gateway_enable="YES"   ##启用网关功能,很显然,很重要。
named_enable="YES"     ##启用DNS名字服务,这样可以让内网通过设置主机做DNS
natd_enable="YES"       ##启用nat功能,很显然,特重要
natd_interface="rl1"      ##设置NAT转发的网卡标识号,rl1为对外连接网卡。相当于###WIN2000里的连接共享设置的那块网卡连接。
3,设置/etc/ipnat.conf
map rl1 192.168.0.0/24 ->; 218.92.251.108/32 portmap tcp/udp 10000:65000
map rl1 192.168.0.0/24 ->; 218.92.251.108/32
##以上是设置允许共享连接的内网IP范围,很显然,24精确到最后一位!也就是说###192.168.0.*的子机都可以通过这台主机上网。
4,设定开机自动执行ipnat。
#cd /usr/local/etc/rc.d
#vi runipnat.sh   
##加入以下内容:   
       #!/bin/sh   
       /sbin/ipnat -f /etc/ipnat.conf
#chmod 755 runipnat.sh  ##权限设为可执行。   
5、设置内核,至关重要!
因为ipfw和ipfilter不能共存,所以如果要使用ipfilter,必须将内核中有关ipfw的部份注释掉
#cd /usr/src/sys/i386/conf   ##/usr/src/sys/i386/conf是内核文件所在目录
#cp GENERIC DWOLF     ##备份内核文件GENERIC
#grep -i IPFIREWALL DWOLF ##查找:IPFIREWALL,如果找到,就加"#"注释掉:
#vi  DWOLF  ##vi编辑,也可以用ee编辑器   
   #options IPFIREWALL   
   #options IPDIVERT   
##再加入:
   options IPFILTER   
   options IPFILTER_LOG   
##保存!
#config DWOLF   ##检查有没有错误
#cd /usr/src   
#make kernel KERNCONF=DWOLF   ##编译内核   
#reboot   
##重起以后打dmesg查看启动信息,我看到有一条
IP Filter: v3.4.31 initialized.  Default = pass all, Logging = enabled   
#ipnat -l   ## 显示ipnat的设定状况
map rl1 192.168.0.0/24 ->; 218.92.251.108/32 portmap tcp/udp 10000:65000
map rl1 192.168.0.0/24 ->; 218.92.251.108/32
呵呵,搞定!
试试内网机器能不能上网,(测试,可省略)
PING 192.168.0.1   成功连接主机,OK!
PING mdxy.3322.org  解析到IP地址,DNS OK!
PING 218.92.251.122  PING通外网主机,OK!(注意,因为8月中旬全国ISO升级,禁止ICMP数据包,路由器外的IP一般都不给PING,你可以找一个自己可以PING通的外网IP,或者省略这一步,无所谓)
==附录几个常用的IPNAT命令
ipnat -l  会列出目前ipnat的设定及状况   
ipnat -C 清除ipnat的设定   
ipfstat 监测数据的流量

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1534/showart_119140.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP