freebsd natd+ipfw使用

来源:互联网 发布:淘宝上一两块钱包邮 编辑:程序博客网 时间:2024/05/23 18:33

最近被调到华师来了,华师的教育网经常会down掉,为了能让自己网络正常点就装了台低配置的服务器,开始的时候,同事使用linux+iptables,总是掉包,感觉也不爽。忍受不了后,本帅哥就装上了freebsd,来解决这痛苦。

   最开始的时候,使用了chinaunix上所提到的ipnat+ipfilter 来配置,编译内核后,配了半天客户端都不能pingdns 郁闷了实在搞不定,最后没办法只能换成ipfw+natd了,然后重新编译内核,配置好后,客户端就OK了。

 

  下面是配置步骤:

  1. 进入 /sys/i386/conf 后,找到GENERIC,这个是系统正使用的内核,然后cp GENERIC kernel_ipfw
     copy一份内核然后修改,就算有问题也可以随时恢复。

   3.进入kernel_ipfw所编译的目录,一般都是../complie/kernel_ipfw

2.ee kernel_ipfw

   在最后加上 

   # ipfirewall

    options IPFIREWALL

   options IPFIREWALL_DEFAULT_TO ACCEPT

  options IPFIREWALL_VERBOSE

 options IPFIREWALL_VERBOSE_LIMIT=100

 options IPFIREWALL_IPDIVERT

 保存后,启用命令config kernel_ipfw  然后,kernel_ipfw内核被编译。

 

   进入后,make depend all install,编译内核后进行安装。

  reboot....

4.修改/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="OPEN"
firewall_quiet="YES"
tcp_extensions="YES"

# 定义 NATD 的网络卡接口,应定义在设定 public IP 的网卡代号上。

natd_program="/sbin/natd"
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"

 

5. check /etc/services   natd   8668/divert   这个服务,如果没有请加入

6.修改 /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

 

如果想简单的使用,只需要/sbin/ipfw -f  flush 加最后两句就可以完成。不过不够安全,

请自行斟酌安全语句。

 

reboot后,natdfirewall开始执行,客户端就可以上网了。

 

^_^  happy

 

 
原创粉丝点击