忙乎了一两天,俺的VPS算是上线了,基于Ubuntu Linux的,512MB内存,20G硬盘,1TB月流量,赠送2个IP,还不错。不过,现在还没有把博客迁移过去的打算,此VPS仅作为练手而用,只是建了一些ssh账号,供自己和同事跨栏用,还简单的搭建了基于Nginx+MySql+PHP+FastCGI的WordPress环境,并成功拉过来俺的一位同事在上面安了个blog,嘿嘿。 提到VPS,最重要的还是安全,毕竟你的系统是直接面向公网,如果不加强防范,很容易成为别人手里的肉鸡。Linux中的iptables,用过的同学都知道,是一个基于Linux内核的防火墙,功能比较强大,下面是iptable的一些常用的规则设置:
/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 DROP #禁止ping,因为ping是基于icmp协议的
/sbin/iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT #允许部分常用端口入口请求访问
/sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m udp --dport 53 -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 #DROP掉所有失效或者新的请求
可以把上述脚本保存起来,执行,然后用命令/sbin/iptables -L -n查看规则是否生效
把上述脚本再完善一下:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:~/bin
export PATH
case "$1" in
start)
echo -n "Staring to write your Iptbales:..."
/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 DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m udp --dport 53 -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 "Cleaning your Iptables:..."
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
echo "Ok"
;;
restart)
echo -n "Cleaning your Iptables:..."
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
echo "Ok"
echo -n "Staring to write your Iptbales:..."
/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 DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m udp --dport 53 -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"
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
exit 0
这样,我们就可以用start/stop/restart的参数来启用、禁止iptables防护了,很方便。另外,可以把此脚本放入/etc/init.d,让它像系统服务一样,在VPS启动的时候自动运行。
PS: 1.此脚本参考自网上,并作了部分修改 2.搜狗云输入法,也有郁闷的时候,在写文章的时候,候选词半天不出来,很卡,囧rz 是我打字速度太快,还是网速很慢?……