高手帮我看看这个防火墙的问题
IPFW 防火墙的安装和设置1,对IPFW的一些基本参数进行配置:
#cd /sys/i386/conf
#cp GENERIC ./kernel_IPFW
打开kernel_IPFW文件,在文件未尾加入以下个行:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
输入完成后,保存,并退出。
2、编译系统内核:
#/usr/sbin/config kernel_IPFW
#cd ../compile/kernel_IPFW
#make && make install clean
3、编辑/etc/rc.conf
firewall_enable=“YES“
firewall_script=“/etc/ipfw.conf“
firewall_type=“open“
firewall_quiet=“NO“
firewall_logging_enable=“YES“
4、编辑/etc/syslog.conf 文件,在文件最后加入:
!ipfw
*.* /var/log/ipfw.log
最后,重启VPS。
5、加入规则
# ee /etc/ipfw.conf
增加下面内容:
#!/bin/sh
# DNS服务器与客户端的通讯端口都是udp的53号端口,因此我们只有开放自己与DNS服务器之间的53号端口进行通信即可,如果你知道自己的DNS服务器的ip地址可以把下面的any改成你的DNS地址。
# DNS
ipfw add allow udp from me to any 53 out
ipfw add allow udp from any 53 to me in
# DHCP的服务器与客户端的通讯端口是udp 67、68端口,其工作原理这里不多做介绍,如果你知道自己的DHCP服务器地址可以把其中的any改成你的DHCP服务器地址,前面两条是正常情况下的规则,如果你的DHCP服务器不是很可靠,你可以加上下面注释掉的两条,当然一般情况下这两条可以不加。
# DHCP
ipfw add allow udp from me 68 to any 67 out
ipfw add allow udp from any 67 to me 68 in
# ipfw add allow udp from any 68 to 255.255.255.255 67 out
# ipfw add allow udp from any 67 to 255.255.255.255 68 in
# 在创建与ICMP有关的规则时,只能指定ICMP数据包的type而不能指定它的code。
# 允许接受一些ICMP types (不支持codes)
# 允许双向的path-mtu
ipfw add allow icmp from any to any icmptypes 3
ipfw add allow icmp from any to any icmptypes 4
我需要考虑是否需要ping我的网络之外的主机或运行traceroute命令,由于二者都需要,并希望收到相应的应答,但我并不希望互联网上的所有用户都可以对我运行ping 或traceroute命令,因此,我需要添加下面的规则:
# 允许我对外部的主机运行ping命令,并得到相应的应答
ipfw add allow icmp from me to any icmptypes 8 out
ipfw add allow icmp from any to me icmptypes 0 in
# 允许我运行traceroute命令
ipfw add allow icmp from any to any icmptypes 11 in
# ICMP type 8是一个查询请求,ICMP type 0是对查询请求的应答。由于我只允许反复地发出请求并接受应答,从而我可以ping别人而别人不能ping我。
如果想让别人也能ping自己的话,则需要把上面的规则反一下
ipfw add allow icmp from any to me icmptype 8 in
ipfw add allow icmp from me to nay icmptype 0 out
# 在运行traceroute命令时,就会向外发出UDP数据包。如果希望能够获得所有应答信息,我还必须允许系统接受所有的CMP type 11数据包。
# TCP类型服务
# 只允许向外发送信息包
ipfw add check-state
ipfw add deny tcp from any to any in established
ipfw add allow tcp from any to any out setup keep-state
# 允许ssh等tcp端口的服务
ipfw add allow tcp from any to me 21,22,80,3306 in
ipfw add allow tcp from me 22 to any out
# 由于web服务通过80端口进来,但是出去的数据是随机的,所以还得再加一条:
ipfw add allow tcp from me to any out
我的问题是规则没加时,可以用SSH登陆,加了之后登陆不了,请教问题出在什么地方了, 关于日志,如果条件允许,所有日志推荐远程记录 回复 2# 芭比小柒
老大,这个防火墙设置有没有问题,如果没问题的话,规则只允许 20 21 22 80 3306端口,该怎么写,因为我的是VPS,只做个网站而已
本帖最后由 kisswen 于 2012-11-14 21:21 编辑
ipfw是先最优先匹配
你应该先允许21 22 80 3306
最后一条禁止所有
---
建议看这个
http://www.freebsd.org/doc/zh_CN/books/handbook/firewalls-ipfw.html 1、ipfw最好加上规则号,否则顺序排。
2、ipfw add deny tcp from any to any in established,这句什么意思?除非全部是动态规则,否则就不通了。
3、把下面这句放到最前头:
# 允许ssh等tcp端口的服务
ipfw add allow tcp from any to me 21,22,80,3306 in
ipfw add allow tcp from me 22 to any out
4、把上面的第一句改为:ipfw add allow tcp from any to me 21,22,80,3306 in via 外网卡 keep-state
ipfw add allow tcp from me 22 to any out删除
把4楼给的链接读十遍以上,然后不懂再来问……
页:
[1]