Aug
26
一个刚装好的系统如何让他做防火墙,IPFW在BSD上可谓极品.以下是朋友的教程.拿来学习一下.
IPFW 的主要部分是在内核中运行的, 因此会需要在FreeBSD内核配置文件中添加部分选项。(注意,如果你没有安装FreeBSD核心源代码,是无法进入以下目录的,所以运行之前一定要先安装内核源代码)我们先进入内核配置文件:(系统安装好后要把SYS包装上)
# cd /sys/i386/conf
# cp GENERIC ./kernel_fw (这里是新建一个内核文件)
打开内核配置文件:
# ee ./kernel_fw
添加四个选项,不需要后面的注释信息:
options IPFIREWALL # 将包过滤部分的代码编译进内核。
options IPFIREWALL_VERBOSE
# 启用通过syslogd记录的日志。如果没有指定这个选项,即使您在过滤规则中指定记录包, 也不会真的记录它们
options IPFIREWALL_VERBOSE_LIMIT=10
# 限制通过 syslogd(8) 记录的每项包规则的记录条数。在恶劣的环境中如果您想记录防火墙的活动, 而又不想由于 syslog 洪水一般的记录而导致拒绝服务攻击, 那么这个选项将会很有用。
options IPFIREWALL_DEFAULT_TO_ACCEPT
# 这将把默认的规则动作从 “deny’’ 改为 “allow’’。这可以防止在没有配置防火墙之前使用启用过 IPFIREWALL 支持的内核重启时把自己锁在外面。 另外, 如果您经常使用 ipfw(8) 来解决一些问题时它也非常有用。 尽管如此,在使用时应该小心,因为这将使防火墙敞开, 并改变它的行为。
options IPFIREWALL #必要项
options BRIDGE #启动网关用
options DUMMYNET #流量控制
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
编译内核:
# /usr/sbin/config kernel_fw
# cd ../compile/kernel_fw (注意你的版本,如果是低于5.0的版本用../../compile/kernel_fw)
# make depend (需要注意的是。在运行内核的时候。系统在安装完后会反复的安装。你只要在完成后按CTRL+C停止就可以了)
# make
# make install
然后在/etc/sysctl.conf中加入以下行用于(做透明网关用,如果是NAT转换就不用开了)
启用Bridge和IPFW:net.link.ether.bridge_cfg=fxp1,fxp2(这里的FXP是你的网卡名)
net.link.ether.bridge=1
net.link.ether.bridge_ipfw=1
注:在FreeBSD5.2以上版本,上面的设置应改为:
net.link.ether.bridge.enable=1
net.link.ether.bridge.config=fx1,fx2
net.link.ether.bridge.ipfw=1
到了这里还是和转贴的文章一样。下面开始修改配置文件
vi /etc/rc.conf
添加以下内容
firewall_enable=”YES” 激活Firewall防火墙 (必须要)
firewall_script=”/etc/rc.firewall” 防火墙的默认脚本
上一句和firewall_type=”OPEN” 效果一样
firewall_type=”/etc/ipfw.conf” 自定义脚本
firewall_quiet=”NO”
启用脚本时,是否显示规则信息;假如你的防火墙脚本已经不会再有修改,那么就可以把这里设置成“YES”了。
firewall_logging_enable=”YES” 启用Firewall的Log记录
如果要开记NAT转换的话请添加以下行
natd_interface="em0" //NATD服务启用在哪块网卡。
natd_enable="YES" //激活NATD服务
natd_flags="-config /etc/natd.conf" //NATD服务参数设置文件。
gateway_enable="YES" //启动网关
add 00400 divert natd ip from any to any via xl0 //natd服务启动设置
要是开NET转换请用以下设置添加/etc/natd.conf这个文件,其内容如下:
log yes //启动natd的log记录。
redirect_port tcp 192.168.0.2:25 x.x.x.x:25 //把对服务器IP为x.x.x.x的smtp
访问转到192.168.0.2的25上去。
添加完后保存。然后重起机器
IPFW 的主要部分是在内核中运行的, 因此会需要在FreeBSD内核配置文件中添加部分选项。(注意,如果你没有安装FreeBSD核心源代码,是无法进入以下目录的,所以运行之前一定要先安装内核源代码)我们先进入内核配置文件:(系统安装好后要把SYS包装上)
# cd /sys/i386/conf
# cp GENERIC ./kernel_fw (这里是新建一个内核文件)
打开内核配置文件:
# ee ./kernel_fw
添加四个选项,不需要后面的注释信息:
options IPFIREWALL # 将包过滤部分的代码编译进内核。
options IPFIREWALL_VERBOSE
# 启用通过syslogd记录的日志。如果没有指定这个选项,即使您在过滤规则中指定记录包, 也不会真的记录它们
options IPFIREWALL_VERBOSE_LIMIT=10
# 限制通过 syslogd(8) 记录的每项包规则的记录条数。在恶劣的环境中如果您想记录防火墙的活动, 而又不想由于 syslog 洪水一般的记录而导致拒绝服务攻击, 那么这个选项将会很有用。
options IPFIREWALL_DEFAULT_TO_ACCEPT
# 这将把默认的规则动作从 “deny’’ 改为 “allow’’。这可以防止在没有配置防火墙之前使用启用过 IPFIREWALL 支持的内核重启时把自己锁在外面。 另外, 如果您经常使用 ipfw(8) 来解决一些问题时它也非常有用。 尽管如此,在使用时应该小心,因为这将使防火墙敞开, 并改变它的行为。
options IPFIREWALL #必要项
options BRIDGE #启动网关用
options DUMMYNET #流量控制
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
编译内核:
# /usr/sbin/config kernel_fw
# cd ../compile/kernel_fw (注意你的版本,如果是低于5.0的版本用../../compile/kernel_fw)
# make depend (需要注意的是。在运行内核的时候。系统在安装完后会反复的安装。你只要在完成后按CTRL+C停止就可以了)
# make
# make install
然后在/etc/sysctl.conf中加入以下行用于(做透明网关用,如果是NAT转换就不用开了)
启用Bridge和IPFW:net.link.ether.bridge_cfg=fxp1,fxp2(这里的FXP是你的网卡名)
net.link.ether.bridge=1
net.link.ether.bridge_ipfw=1
注:在FreeBSD5.2以上版本,上面的设置应改为:
net.link.ether.bridge.enable=1
net.link.ether.bridge.config=fx1,fx2
net.link.ether.bridge.ipfw=1
到了这里还是和转贴的文章一样。下面开始修改配置文件
vi /etc/rc.conf
添加以下内容
firewall_enable=”YES” 激活Firewall防火墙 (必须要)
firewall_script=”/etc/rc.firewall” 防火墙的默认脚本
上一句和firewall_type=”OPEN” 效果一样
firewall_type=”/etc/ipfw.conf” 自定义脚本
firewall_quiet=”NO”
启用脚本时,是否显示规则信息;假如你的防火墙脚本已经不会再有修改,那么就可以把这里设置成“YES”了。
firewall_logging_enable=”YES” 启用Firewall的Log记录
如果要开记NAT转换的话请添加以下行
natd_interface="em0" //NATD服务启用在哪块网卡。
natd_enable="YES" //激活NATD服务
natd_flags="-config /etc/natd.conf" //NATD服务参数设置文件。
gateway_enable="YES" //启动网关
add 00400 divert natd ip from any to any via xl0 //natd服务启动设置
要是开NET转换请用以下设置添加/etc/natd.conf这个文件,其内容如下:
log yes //启动natd的log记录。
redirect_port tcp 192.168.0.2:25 x.x.x.x:25 //把对服务器IP为x.x.x.x的smtp
访问转到192.168.0.2的25上去。
添加完后保存。然后重起机器

ipfw命令来控制流量

对《IPFW配制全过程(freebsd)》有 1 条评论
MSN:maker021@hotmail.com 请告诉我您的邮箱或MSN好吗?