作为服务器对外提供服务,不能不安装防火墙,这部分为Ubuntu7.1配置iptables。 在网上查看了很多关于Ubuntu下防火墙配置的文章,感觉都很麻烦。 在desktop版下,可以使用firestarter来配置iptables。 在server中也有shorewall工具来配置。 仔细研究了一下iptables的配置,发现都是使用iptables命令来配置规则,同时发现网上有朋友直接使用脚本配置规则。于是,依样画葫芦也搞了个脚本,这样省事,而且与Fedora Core命令行下的配置类似。 创建/etc/init.d/firewall文件: vi /etc/init.d/firewall 放到/etc/init.d下的原因是方便自动启动。 脚本如下: #!/bin/bash case “$1″ in ;; echo “Restart FireWall OK” exit 0 如果想新开端口,直接修改start部分即可。 测试firewall是否能正常工作: /etc/init.d/firewall restart 没有问题。 配置firewall随系统自动启动: cd /etc/init.d 01表示启动优先级,让系统刚启动时就立即启动防火墙规则,可修改所有的K01为K99,在关机或重启服务器时最后停止防火墙服务。 至此,本系统文章全部完毕。 作为生产环境,以上配置基本足够了,能跑目前流行的各种应用,包括N多的开源或免费的应用,如BBS、CMS、Blog等。
# This program is used to use start my iptables.
#History :
# Sat Jun 17 23:22:01 CST 2006 Jerry Second realease
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:~/bin
export PATH
start)
echo -n “Staring FireWall … ”
# /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state INVALID,NEW -j DROP
echo “OK”
stop)
echo -n “Stop FireWall … ”
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
echo “OK”
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
;;
*)
echo “Usage: $0 {start|stop|restart}”
esac
update-rc.d firewall defaults 01