|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
初期目的:以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 监测数据的流量 |
|