2008年6月8日星期日

iptables优化

配置新的ftp做好iptables后,被网络协会的学长骂ftp连接效率大大降低。原来iptables需要优化而我竟然一直没有注意到么,我很伤心于是苦练优化。
google了若干篇文献之后发现简单的iptables优化实在是简单和泛滥得很的一个议题。对于不太长的规则表,最简单而有效的优化策略就是按照规则被引用的频率进行排序、使用 -m state 和用户自定义规则链。我目前所作的,就是对21, 4021和它们对应的被动端口配置filter表,而优化的策略就是:
1. 在针对IP和端口进行过滤之前加上语句
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2. 把这4种端口分别写进4个用户自定义规则链,并且在INPUT中引用这4个规则链,如下:
# new chain for port 21
/sbin/iptables -N allow21
/sbin/iptables -A allow21 -p tcp -s 123.45.670.0/24 --dport 21 -j ACCEPT
/sbin/iptables -A allow21 -p tcp -s 123.45.671.0/24 --dport 21 -j ACCEPT
/sbin/iptables -A allow21 -p tcp -s 123.45.672.0/24 --dport 21 -j ACCEPT
/sbin/iptables -A allow21 -p tcp -s 123.45.673.0/24 --dport 21 -j ACCEPT
/sbin/iptables -A allow21 -p tcp -s 123.45.675.0/24 --dport 21 -j ACCEPT
# allow connection to port 21
/sbin/iptables -A INPUT -p tcp --dport 21 -j allow21

按照我的设想,这样做有两个好处。其一就是把用户端的动作进行了分解,登录时和下载时只需要遍历一个自定义链,再加上-m state的帮助,性能应该可以得到提升。其二就是INPUT表实际上只包含4条规则而最常用到的21端口又排在最前面,这样也可以减少遍历的次数。

3. 本来原先是对eth0和eth1两张网卡分别进行了设置,后来发现并不需要如此高而不实的安全性,干脆就省掉对网络界面的定义了。

经我自己测试,效能反正有提高就是了。至于是不是能就此完工,就看那位学长是不是满意了。

2008年6月2日星期一

localhost不等于127.0.0.1?

用chmview查看chm文件,从前都很顺利,今天突然说无法访问。尝试了更改防火墙甚至取消防火墙都没有用。于是
ps aux |grep chmview

查到chmview的PID为9403,然后
netstat -anp |grep 9403

确认了其端口确实是17767。
这下有点摸不着头脑了,浏览器里面是localhost:17767,这里是127.0.0.1:17767,难道不是一样的么?怀着试一下的心理把浏览器里面的地址改成了127.0.0.1:17767,竟然就正常了。
我晕,难道localhost不就是127.0.0.1么?