作为服务器对外提供服务,不能不安装防火墙,这部分为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 # 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
case “$1″ in 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 “Restart FireWall OK” ;; *) echo “Usage: $0 {start|stop|restart}” esac
exit 0
如果想新开端口,直接修改start部分即可。
测试firewall是否能正常工作:
/etc/init.d/firewall restart
没有问题。
配置firewall随系统自动启动:
cd /etc/init.d update-rc.d firewall defaults 01
01表示启动优先级,让系统刚启动时就立即启动防火墙规则,可修改所有的K01为K99,在关机或重启服务器时最后停止防火墙服务。
至此,本系统文章全部完毕。
作为生产环境,以上配置基本足够了,能跑目前流行的各种应用,包括N多的开源或免费的应用,如BBS、CMS、Blog等。
|