首页 > 代码库 > 能让你看醉了:让“开源”承包整个IT系统----你造吗?Linux软件一直很拼的。

能让你看醉了:让“开源”承包整个IT系统----你造吗?Linux软件一直很拼的。

能让你看醉了:让“开源”承包整个IT系统

----你造吗?Linux软件一直很拼的。

哥浸淫企业IT架构设计这么多年,“私人定制”的设计产品五花八门,既有过“高大上”型的大品牌会战,也有过“屌丝”型的免费开源混搭。这次就跟大家来聊聊我最近的一次铁(yi)公(mao)鸡(bu)式(ba)企业IT系统搭建项目。

. 需求分析:

用户企业是师妹注册刚开的一家文化传媒公司。硬件环境是两台大公司淘汰下来的服务器和一下网络设备。对内要有员工上网,文件交流、存储、打印,邮件收发;对外要有官网、论坛、会员博客,视频文件上传/下载等;远程要有员工在企业外访问内网资源。她的心很大,时髦的IT服务她都想到了。哎。既然是“师妹”相求,又是刚起步,你懂的了。哥恨不得达到“既要马儿好又要马儿不吃草”的效果。

. 概要设计:

哥一直身处外企,养成了尊崇标准的习惯。所以这次设计还是沿用标准化的节奏,所有涉及到的开源软件都挑选的通过并持有GPLGNU General Public License 通用公共许可证)的。此设计的整体功能服务器划分为:

·         文件共享和打印服务器(Samba)

·         反向代理(Web)服务器(Squid3.0+Apache+LNMP+Keepalived),

·         邮件服务器(Postfix+Courier-IMAP+maildrop+Extmail+Extman+Amavisd-new+SpamAssassin+Clamav+Apache+phpMyAdmin+MySQL),

·         上网(正向)代理服务器(Squid3.0+Clamav+IPTables),

·         BBS/blog/FTP服务器(Discuz!+X-Space+ProFTPd+MySQL),

·         远程接入服务器(PPTPD)。

. 细节说明:

虚拟机:VirtualBox 4.3 改版本支持虚拟机的克隆和SATA硬盘的热插拔等特性。

操作系统:Linux哪家强?当然是CentOS 7。其7版本已将内核更新至3.10.0CentOS高稳定性的服务器的上选。

文件共享和打印服务器:Samba解决异构平台中数据共享与传输问题,值得一提的是如果企业日后发达了(希望师妹有朝一日变成“白富美”)升级或转换到微软架构,Samba同样可以加入到活动目录(AD)中,实现单一登录访问(SSO)。

反向代理(Web)服务器:

方案采用的是LNMP架构,其中Nginx用作并实现负载均衡;Squid用作并实现反向代理;Apache用作并实现Web服务的发布。

除了Nginx本身,还要安装ngx_cache_purge(缓存服务)。

而除了Apache本身,还要安装PHPPHPMyAdminphp-memcacheeAcceleratorlibmcrptphp扩展)、cmakeMySQL的编译工具)、CoreSeekMySQLPHP的中午检索)、多文件类型支持模块(包括gb, libvpx, tiff, libpng, freetype, jpgsrc)。

另外,Apache的安全工具:mod_clamav(防病毒),Ddos(防止DDos攻击)和ModSecurity(应用防火墙)、以及验证模块(SaslAuthlib)。

而数据库则选用MySQL,因为它相对于PostgreSQL来说更流行更多支持和完善的文档资料。

邮件服务器:

Postfix:利用SMTP协议提供邮件发送服务。

POP3/IMAP服务:Courier-IMAP:提供多种用户认证模块和方式、支持虚拟邮箱、支持共享目录并且可以限制IMAP同事登录的数目以及同一IP地址登录数,还能有效应对DoS攻击。另外Dovecot作为可选,因为其安全性比价出众,且一般Linux系统自带。

Maildrop是必要的邮件投递代理,负责将邮件转发到用户邮箱。

SmapAssassin是利用Perl对邮件内容来进行文字分析以达到过滤垃圾邮件的目的,它对邮件各种特征进行评分方式,总分高于门限值就视为垃圾邮件。

MailScanner可以对PostfixSpamAssassinClamAV进行总管并协调各模块之间的工作。但是个人觉得其必须监视PostfixHold队列,此“暴力”做法实在坑爹,因此我采用Amavisd-new对邮件病毒进行扫描。

那么对邮件系统、邮箱设置等综合管理我采用由Perl语言编写的ExtMail,它具有面向大容量ISP级别应用和高性能。

WebMailSquirrelMail,不使用任何JavaScript代码,纯粹用PHP所开发,从而兼容各种浏览器。它有支持增强的MIME、地址簿、文件夹操作等功能。且一般Linux系统自带。

远程接入服务器:方案设计上采用的是构建VPN网络让远程用户拨入系统内部。选择PPTPD的原因是一般人员用的是Windows操作系统,而Windows客户端默认就支持PPTP方式的VPNWindows用户不需要额外安装客户端软件而只需简单配置便可。

.运维设计

妹纸的需求在功能上已满足了。那么问题来了,如果系统运行没一段时间就遇到问题或攻击,学妹是否会抱怨此等“终身大事”相托,却搞得如此脆弱,“人与人之间的基本信任都没有”。哥自认为是一个负责任的网络设计师,为了系统在实际使用中的平稳运营,我前瞻性的多走一步,设计了方便运维的模块。

·         文件存储与备份:考虑到文件服务器硬件配置且为二手,同时估计IT人员是刚毕业的“小鲜肉”,哥设计上采用的是FreeNAS软件的NAS架构,备份介质则用平时的移动硬盘便可。

·         网络管理:网管软件采用的是Nagios的“分布-集中”模式对网络及应用的各种特征进行自定义监控,且有友好的Web界面和报表功能。

·         集中配置管理:我采用的是C/S结构的自动化运维工具Puppet

. 后记

设计完成,学长只能帮你到这里了。之后,我协同其单位的IT专业小伙伴联合实施,历时3个多月,系统搭建完成并上线,除了BBS/blog/FTP服务器尚未投入使用外(不是臣妾做不到,而是师妹的合伙人一位女汉子说这些锦上添花的功能等后期发展壮大了在逐步推出),一切运营正常且效果还不错。师妹夸我有“业界良心”,在其公司启动资金有限的情况下,实现了“多快好省”。我得意的笑并情不自禁的哼起了自己一直唾弃却总是不由得唱起的“你是我的小啊小苹果。。。。。。”

本文出自 “陈巨廉” 博客,请务必保留此出处http://2574478.blog.51cto.com/2564478/1568446

能让你看醉了:让“开源”承包整个IT系统----你造吗?Linux软件一直很拼的。