分享
 
 
 

以FreeBSD架设NATD-Server&IP-FireWall防火墙

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

1.前言:

o缘起:

§Network Address Translation

§本校于扩大内需方案执行之初分配到64个IP(四分之一个Class C),目前已明显不够使用。

§另外,有网友提到他申请的ADSL只配给一个IP,那么公司内其它的机器怎么上网呢?

§IP-FireWall

§近日主机常常受到特定IP的骚扰。

以下的笔记是我在家里以HiNet的ADS-L(1 IP)环境操作的。

oprivate ip

§RFC 1918中有分配一般私人的ip (private ip):

According to RFC 1918, you can use the following IP networks for private nets which will never be connected to the Internet:Class A10.0.0.0 - 10.255.255.255255.0.0.0Class B172.16.0.0 - 172.31.255.255255.255.0.0Class C192.168.0.0 - 192.168.255.255255.255.255.0

§我挑选 Clacc C 其中一段 192.168.1.0/255.255.255.0

o背景说明:

§主机:FreeBSD 4.4-RELEASE。

§目前只有安装一块网络卡(D-Link 530TX verB):IP:211.75.215.107 NetMask:255.255.255.0 Gateway:211.75.215.254

这块俗称超级机车的网络卡(相对于RedHat),自 FreeBSD 4.2-RELEASE 起就已内建支持。

§为了建立NAT功能,同一块网卡新增一虚拟IP:192.168.1.254 NetMask:255.255.255.0,详如 /etc/rc.conf 设定。

§目的:让其它的Win98能透过192.168.1.254为通讯闸来存取网络上的资源。

§以下的说明文件中之"vr0",是我实际对外连上Internet的网卡代号(当您使用两块网卡做NAT时,要特别留意这一点。),你的主机网卡代号可能不同,用 dmesg 或 ifconfig -l 来查一查。

§您也可以使用二块网卡的方式,只要对照于本文件中的网卡代号,分清楚哪一块是对外的、而哪一块又是对内的。两块网卡千万不要接在同一个HUB上,除非使用SWITCH-HUB,并切割VLAN。

2.设定:

okernel

§修改kernel:

cd /usr/src/sys/i386/conf

vi GENERIC

options IPFIREWALLoptions IPFIREWALL_DEFAULT_TO_ACCEPToptions IPFIREWALL_VERBOSEoptions IPFIREWALL_VERBOSE_LIMIT=10options IPDIVERT

§请留意,options后面是用TAB键做间隔,不是用空格键(spacebar)。

§编译kernel:

config GENERICcd ../../compile/GENERICmake depend all install

o在 /etc/rc.conf 档案中加入下列设定:

# 第一片网卡固有的设定:ifconfig_vr0="inet 211.75.215.107 media 100baseTX netmask 255.255.255.0" # 只用一片网卡时,将第一片网卡虚拟出另一个IP(如果使用两片网卡,就不要设这一行,或者批注起来也可)。ifconfig_vr0_alias0="inet 192.168.1.254 media 100baseTX netmask 255.255.255.0" # 如果你有第二片网卡时,将此网卡设定如下(当然啦,这一行的批注就应该取消,第二块网卡才会有作用)。# ifconfig_vr1="inet 192.168.1.254 media 100baseTX netmask 255.255.255.0" # 宣告本主机可做为gateway(通讯闸)gateway_enable="YES" # 宣告防火墙(IP-FIREWALL)firewall_enable="YES"firewall_type="simple"firewall_quiet="YES"tcp_extensions="YES" # 定义 NATD 的网络卡接口,应定义在设定 public IP 的网卡代号上。natd_interface="vr0"natd_enable="YES"# 将真实 IP 上 port:80 转向至防火墙内。这样的转向为必要时才设定,NAT实际运作只要上述两行即可。natd_flags="-redirect_port tcp 192.168.1.220:80 211.75.215.107:80"

ovr0:真实IP的网卡。

o开机后,若要更改NAT的设定:

kill -KILL `cat /var/run/natd.pid`

natd -redirect_port tcp 192.168.1.220:80 211.75.215.107:80 -interface vr0

o/etc/services

确认 /etc/services 中是否有这一行,如果没有请加上去:

natd 8668/divert

o/etc/rc.firewall

修改 /etc/rc.firewall ?:(先将原档案备份)

#!/bin/sh# ================# 清除所有防火墙过滤的规则(归零),ipfw详细语法请:man ipfw/sbin/ipfw -f flush# ================# 先定义 deny,由此处开始定义防火墙过滤的规则# 我是比较狠一点,要挡就全部都挡住,滴水不漏。# ================# 这里的 all ,是指 /etc/services 档案中所记载的各项服务名称。# 如此设定防火墙规则后,他连 ping 我的主机都别想了。# 以下的 IP 或 Class C ,不是有入侵动作、就是乱寄广告信,我不欢迎这种人,所以拒绝提供任何服务。# ----- spam ----- #/sbin/ipfw add deny all from 211.22.166.45 to any/sbin/ipfw add deny all from 216.153.141.44 to any/sbin/ipfw add deny all from 192.72.80.7 to any/sbin/ipfw add deny all from 61.220.214.251 to any/sbin/ipfw add deny all from 61.154.244.0/24 to any/sbin/ipfw add deny all from 140.113.75.248 to any/sbin/ipfw add deny all from 61.16.11.0/24 to any/sbin/ipfw add deny all from 61.217.135.209 to any/sbin/ipfw add deny all from 61.225.169.0/24 to any/sbin/ipfw add deny all from 61.227.50.0/24 to any/sbin/ipfw add deny all from 61.228.0.0/24 to any/sbin/ipfw add deny all from 63.119.26.216 to any/sbin/ipfw add deny all from 64.94.217.0/24 to any/sbin/ipfw add deny all from 64.114.31.2 to any/sbin/ipfw add deny all from 65.30.9.44 to any/sbin/ipfw add deny all from 65.32.169.173 to any/sbin/ipfw add deny all from 139.175.252.20 to any/sbin/ipfw add deny all from 163.29.255.0/24 to any/sbin/ipfw add deny all from 192.72.81.0/24 to any/sbin/ipfw add deny all from 193.126.14.83 to any/sbin/ipfw add deny all from 195.190.94.200 to any/sbin/ipfw add deny all from 203.79.166.137 to any/sbin/ipfw add deny all from 203.198.160.118 to any/sbin/ipfw add deny all from 203.146.235.0/24 to any/sbin/ipfw add deny all from 203.204.139.129 to any/sbin/ipfw add deny all from 206.154.48.203 to any/sbin/ipfw add deny all from 207.254.20.124 to any/sbin/ipfw add deny all from 210.85.75.0/24 to any/sbin/ipfw add deny all from 210.208.48.108 to any/sbin/ipfw add deny all from 211.20.175.110 to any/sbin/ipfw add deny all from 211.21.140.133 to any/sbin/ipfw add deny all from 211.21.191.123 to any/sbin/ipfw add deny all from 211.75.204.163 to any/sbin/ipfw add deny all from 211.75.220.228 to any/sbin/ipfw add deny all from 211.78.1.3 to any/sbin/ipfw add deny all from 211.114.30.1 to any/sbin/ipfw add deny all from 212.67.193.231 to any/sbin/ipfw add deny all from 216.4.172.254 to any/sbin/ipfw add deny all from 217.11.131.182 to any/sbin/ipfw add deny all from 217.115.144.0/24 to any# ================# 这一行是定义NAT的通行,如果只是设定 firewall 的话,不需要设定这一行。/sbin/ipfw add divert natd all from any to any via vr0# ================# 其余的(all)都放行了,NAT 和 FireWall 都需要设定这一行。/sbin/ipfw add pass all from any to any

vr0:真实IP的网卡。

o您可以在任何时间对 /etc/rc.firewall 档案做防火墙之规则的修改,存盘后,记得做 sh /etc/rc.firewall ,就能立即使新的规则生效。

sh /etc/rc.firewall

Flushed all rules.00100 deny ip from 140.113.75.248 to any00200 deny ip from 211.78.1.3 to any00300 deny ip from 211.21.191.123 to any00400 deny ip from 64.114.31.2 to any00500 divert 8668 ip from any to any via vr000600 allow ip from any to any

3.备注:

o更改过kernel需重新激活FreeBSD主机,新的设定值才会生效。请确定主机就在你身边,万一操作不当,会因为防火墙的关系,而无法从远程登入,不可不慎。

o将Win98与这台FreeBSD接在同一组集线器(hub)上,其网络组态设定为:假设Win98的IP是在 192.168.1.1 ~ 192.168.1.255 的这段Class C上,NetMask为 255.255.255.0 ,通讯闸设为 192.168.1.254 ( 就是 FreeBSD虚拟出来的 IP ),其它的部份你应该会设定吧。

建议再使用 DHCP-Server ,让192.168.1.0/24 这个网段的各win98或工作站自动取得网络组态。

o我尝试着从这个NAT-Server底下的Win98以Outlook Express透过这台NAT-Server的SMTP来寄信出去时,在/var/log/maillog留下了纪录:

Jul 9 23:54:18 www sendmail[4378]: f69FsHY04378: from=, size=1161, class=0, nrcpts=1, msgid=,proto=SMTP, daemon=MTA, relay=pc102.priv.bsdlab.idv.tw [192.168.1.102

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有