002《Linux运维趋势》投稿信箱:yangsai@51cto.com杂志订阅:频道:目录Index002目录人物·People003抚琴煮酒:漫谈CDN运维与电子商务运维交流·Interact005Linux服务器安全审计工具与流程完全指南八卦·News007不可思议的贡献,无可容忍的凌乱专题·Special009深入浅出Netfilter/iptables防火墙原理011用iptables保护服务器的缺省策略012用iptables把来自某个国家的IP重定向013iptables之7层过滤(封QQ、MSN、P2P等)015用iptables抗御SYNFlood攻击017用iptables的raw表解决压力过大报错问题技巧·Tips020小技巧:在Linux下生成crypt加密密码021当Shell遇见Emacs工具·Tools023Linux运维监控之Smokeping分布式运维DBA·Database025教你五招,快速提升MySQL可扩展性脚本·Shell026Shell脚本编程练习与交流(一)出版方:51CTO系统频道(北京无忧创想信息技术有限公司)责任编辑:杨赛联系方法:yangsai@51cto.com010-68476606(分机8035)出版日期:2011年8月12日每月第2个星期五出版订阅:《Linux运维趋势》投稿信箱:yangsai@51cto.com杂志订阅:频道:人物People003抚琴煮酒:漫谈CDN运维与电子商务运维在运维的工作生涯中,如何才能少走弯路?在CDN做运维和在电子商务网站做运维有什么不同?在本次人物访谈中,我们邀请到了资深项目管理工程师余洪春(抚琴煮酒)跟我们分享他在CDN和电子商务网站工作的一些经验心得。51CTO:首先介绍一下您现在的情况吧。您现在加盟一拍网,主要还是负责电子商务网站维护、内网开发环境部署和技术研发么?抚琴煮酒:主要是负责电子商务网站维护和技术研发。由于是小公司,所以不存在内网开发环境这块,程序这块我们全部外包出去了;公司没有程序员,肯定就不存在内网开发环境这一说。一拍网的网站架构现在是我在设计。一开始预算不多,前期规模不会很大,后期我会再增加四台web服务器和四台squid反向加速服务器,全部用二手的2950,这样性价比最高。51CTO:也就是现在更多还是偏向于生产环境运维这一块了。从酒哥的经历看来,您自己对Windows、Linux/BSD服务器,网络以及数据库都有所涉猎。学了这么多方面的东西,您觉得从2005年正式开始转作企业网管到现在,发展的过程中有没有哪些走了弯路的地方?抚琴煮酒:我感觉在工作中有二个方面花了不少时间和精力,但收益非常之少:一个方面,我有段时间很喜欢研究别人没研究过的东东,比如DDNS,花了不少时间和精力做出来的实验却没法在生产环境中应用,还有samba结合域控等,我也想提醒大家,建议大家学习和努力的方向,应该是生产环境下能用得着的,大家真正在企业做事,领导真正看中的是你的经验,即你能够迅速投入生产环境的技术,而不是你会什么能什么;第二个方面,我花了接近一年时间从事RHCE和Linux方面的教学工作,虽然认识了不少朋友,也拓宽了自己的职业发展方向,但我个人觉得,这种工作性质跟我目前从事的项目实施工程师还是很有距离,做讲师虽然是一个知识沉淀的过程,但由于接触不到生产环境,技术退步的反而性可能更大。如果对自己有要求和不怕辛苦的话,建议多参加生产环境的项目实践,这是一个方面。第二个方面建议在一些大公司和门户网站做事。因为如果没有足够大的并发环境,许多开源的新技术都用不上。企业真正需要的并不是什么技术,它需要的是能做事的人,特别是能够为自己的公司节约钱的人,这也是现在Xen虚拟化和集群如何流行的原因之一!51CTO:刚好您说到节约钱,那我就先顺便问一句:酒哥有没有遇到过老板出于成本考虑不愿意添加服务器的情况?抚琴煮酒:这种情况居多啊。像我现在做的许多小网站,就是因为客户不愿意增加服务器,逼得我用HAProxy做1+2的架构;而公司用的测试服务器就不说了,经常是组装的服务器,装个VMwareESXI都装不上,所以我只有花许多时间来测试VMwareServer和思杰的XenServer!51CTO:难怪酒哥把各种虚拟化都试用了一圈。谈谈CDN吧。您在07-09年间在北京3158负责维护CDN系统。维护CDN系统都需要哪些技术?抚琴煮酒:CDN主要是用来解决高并发和南北互连的问题,南北互连的问题即电信和网通之间的问题,人物简介:余洪春,网名抚琴煮酒,2005年开始正式进入企业网管的岗位,在2007年到2009年之间在北京3158维护CDN系统,后来回到武汉某外企任职高级Linux/Unix系统管理员、项目实施工程师,负责电子商务网站维护、内网开发环境部署、以及技术研发支持等工作。最近加盟新组建的电子商务网站一拍网,担任系统架构师一职。个人博客:采访/杨赛004《Linux运维趋势》投稿信箱:yangsai@51cto.com杂志订阅:频道:人物People004CDN维护的技术含量非常高的,我觉得应该至少具备:一、极熟悉linux/FreeBSD系统,我希望这方面的经验至少是3-5年以上的,因为很多时候我发现,CDN系统都是基于FreeBSD的;二、极熟练的配置Linux的集群技术,比如LVS/Nginx/HAproxy,还有F5等硬件负载均衡,软件级别的负载均衡我希望大家能到一个比较精的水平;三、了解squid和varnish原理,能够熟练的配置和优化它们;还有Nginx,这个是基本功,这一点是玩CDN中最重要的,尤其是squid的优化。四、bind的智能view搭建和维护,这个不多说了,基本功;五、熟悉至少一种数据库,能够DBA一起交流,能够设计数据库架构和切分,解决流量过大时,数据库的压力问题;六、熟悉iptables的配置(这个看公司的需求了,有的公司有钱,全硬防);七、能够熟练的配置openVPN,解决节点之间互连的问题;八、能够用SHELL和puppet等分布式工具,解决和节点服务器自动配置和同步的问题。CDN维护的技术含量非常高,我这里的要求只少不多,有些技术问题我可能暂时也没想到,因为现在CDN基本都是上亿级的PV,并发一般都是上万,这样的环境是最锻炼人的!51CTO:CDN维护的工作听起来很复杂。相比之下,电子商务网站的运维又有哪些特别值得注意的技术点呢?抚琴煮酒:CDN我感觉是架子大,初期搭好比较难,但搭好以后维护就相对轻松一些,大家各司其责就行,每一个节点都有一组集群,集群中的某台服务器出问题也没什么问题;但电子商务就不一样,我感觉每一天就像打仗一样,因为牵涉到的都是钱,所以丝毫不能松懈,电子商务网站我觉得应该掌握的技术有:一、熟悉安全技术,了解硬件防火墙性能,能熟悉的配置iptables和了解Linux/Unix相关的安全工具;二、熟练的配置Linux的集群技术,比如LVS/Nginx/HAproxy,了解其原理和会话保持机制;三、熟悉的配置Nginx和Apache服务器,能熟练的配置其正则;四、熟悉和了解MySQL或oracle数据库,至少要了解一种;五、熟悉存储;六、熟悉和了解虚拟化技术;七、极熟悉SHELL脚本,用其实现工作中的各项需求;八、懂PHP或java代码。51CTO:我记得酒哥前一阵子在研究到底用lvs+keepalived还是Haproxy+Heartbeat架构,我现在看一拍网的架构图,最终还是选择了lvs+keepalived的架构,这个选择是出于哪方面的考虑?抚琴煮酒:LVS+Keepalived我用了好多了(这种大家都应该相当了解和熟悉),我很多网站都是用这种成熟的负载均衡高可用方案,一拍网的架构的负载其实是二层,LVS(一层--》Nginx(二层);由于我目前还只是将HAProxy+Heartbeat在内网测试环境下通过,主要是担心heartbeat的心跳问题。HAProxy跟LVS比较类似,主要是Keepalived跟Heartbeat不一样,Keepalived是通过发送VRRP包,模拟一个路由出来;而Heartbaet的工作机制大家应该有所了解,它是比较成熟的双机方案,这里我不也想混淆大家,HAproxy+Heartbeat方案只是我研究的兴趣方向,如果大家想用成熟的线上方案,我推荐LVS+Keepalived或Nginx+Keepalived。51CTO:最后,您的新书《构建高可用的Linux服务器》差不多8月能买到了吧?面向哪些人群?抚琴煮酒:对,8月底可以买到了。这本书主要涉及Linux集群、iptables防火墙和Linux安全及Xen虚拟化。适合系统管理员、开发人员和网络管理员及IT类学生阅读。本文有删节,完整内容见原文:图1一拍网架构图005《Linux运维趋势》投稿信箱:yangsai@51cto.com杂志订阅:频道:交流Interact005Linux服务器安全审计工具与流程完全指南虽然Nessus是公认最流行、最先进的漏洞扫描工具,大家仍然可以尝试其它选择,例如Nmap,虽然它总体来说只是个端口扫描器,还不能完全称之为漏洞扫描器;Metasploit,功能强大但使用复杂、售价昂贵;或者是BacktrackLinux,一个渗透测试工具大合集的Linux发行版。最有效的Linux安全审计方式是在服务器上运行专门为之量身打造的应用程序及服务项目。这意味着我们必须首先了解自己所要审计的运行环境,进而判断安全风险可能会隐藏在哪些部位,最终决定安全扫描应该从何处着手。举例来说,运行中的网页服务器,其最薄弱的环节无疑是Web脚本风险,这也正是黑客们最常见的攻击目标之一。更不用说网页服务器本身或者是其中的任何模块都可能存在着过期、脆弱或是不安全的配置。要想部署一套成功的审计流程,我们还需要了解一些关于网络、编程(如Perl、PHP或者是其它服务器上支持的语言)及Linux系统的知识。这可能要求我们花费时间来学习一些自己尚不能运用自如的技术。然而,在某些情况下我们似乎没有更好的选择。一旦大家准备好着手实施安全审计,请按照下列步骤进行操作:◆执行渗透测试渗透测试能够帮助大家找出存在于自己服务器上的漏洞并对设备的整体安全性进行评估。这种评估是任何形式的安全审计工作的基础。它能够就如何提高服务器安全性给出实用的结论,并为即将开展的进一步安全审计提供有关扫描侧重点的重要信息。要执行渗透测试,我们可以使用诸如Nessus之类的漏洞扫描程序,这款工具具备能够接入几乎任何在线服务项目的端口。不过虽然Nessus是公认最流行、最先进的漏洞扫描工具,大家仍然可以尝试其它选择,例如Nmap,虽然它总体来说只是个端口扫描器,还不能完全称之为漏洞扫描器;Metasploit,功能强大但使用复杂、售价昂贵;或者是BacktrackLinux,一个渗透测试工具大合集的Linux发行版。无论大家最终选择哪款工具或者说如何部署自己的渗透测试工作,总会有一些漏洞被揪出来,尽