以 FreeBSD 架设 NATD-Server & IP-FireWall 防火墙
日期:2007年4月7日 作者: 查看:[大字体 中字体 小字体]-
1. 前言:
o 缘起:
§ Network Address Translation
§ 本校于扩大内需方案执行之初分配到64个IP(四分之一个Class C),目前已明显不够使用。
§ 另外,有网友提到他申请的ADSL只配给一个IP,那么公司内其它的机器怎么上网呢?
§ IP-FireWall
§ 近日主机常常受到特定IP的骚扰。
以下的笔记是我在家里以HiNet的ADS-L(1 IP)环境操作的。
o private 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 A 10.0.0.0 - 10.255.255.255 255.0.0.0Class B 172.16.0.0 - 172.31.255.255 255.255.0.0Class C 192.168.0.0 - 192.168.255.255 255.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. 设定:
o kernel
§ 修改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"
o vr0:真实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=<000f01c1088f$69195d20$6601a8c0@bsdlab.idv.tw>,proto=SMTP, daemon=MTA, relay=pc102.priv.bsdlab.idv.tw [192.168.1.102 - [1] [2] 下一页
-
- 以 FreeBSD 架设 NATD-Server & IP-FireWall 防火墙 相关文章:
- ·以 FreeBSD 架设 NATD-Server & IP-FireWall 防火墙
- 以 FreeBSD 架设 NATD-Server & IP-FireWall 防火墙 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:可以用以下Windows软件学习Linux/UNIX
精品推荐
热点TOP10
- ·RedHat Linux常见的日志文件和常用命令
- ·Linux常用命令详解
- ·Linux硬件管理的基础知识
- ·Linux Apache Web 服务器终极教程
- ·菜鸟文本模式安装Fedora Core 4.0教程
- ·Linux系统下DNS服务器的配置
- ·如何查看Linux下系统占用的资源(top、free、uptime)
- ·Linux下限制Root用户进行远程登陆
- ·Linux系统网络配置详细解析
- ·恢复被误删除的Linux文件
- ·Red Hat linux 8.0 Package List
- ·Linux和Windows系统升级的最大不同
- ·知己知彼 看黑客如何入侵Linux操作系统
- ·SuSE Linux10上安装Oracle数据库方法
- ·在Linux操作系统下安装与运行GAMIT软件
- ·在Linux服务器上做备份和恢复
- ·Linux操作系统下VI编辑器常用命令详细介绍
- ·boot loader
- ·tar和gzip
- ·linux知识大全
特别推荐
- ·Linux操作系统下用单网卡捆绑双IP
- ·恢复被误删除的Linux文件
- ·在Linux服务器上做备份和恢复
- ·Linux中网络参数的意义及其应用
- ·linux知识大全
- ·解析Linux服务器远程控制技术
- ·新手关于Linux系统的一些错误认识
- ·Linux系统至少有五大点比Vista更好
- ·Linux攻略 关于Apache安装、配置、优化
- ·详细讲解Linux操作系统的进程管理的功能
- ·解决Linux和Windows双系统的引导问题
- ·新手学堂:Linux操作系统安全性能检查笔记
- ·600个优秀网站
- ·提高Linux操作系统网速的方法
- ·Linux系统下挂载硬盘光驱和U盘的方法
- ·Linux发行版图标大全
- ·优化Linux系统资源和加快启动速度的方法
- ·新手学堂 Linux操作系统的内核编译步骤
- ·网卡设置常见问题
- ·Linux学习手册
