Apache服务器安全防范

Apache服务器走到那里,unix/linux就跟到那里,这足以说明在WEB服务器领域Apache的优良性能与市场占有率 这今天互联网的大环境下,web服务已经成为公司企业必不可少的业务,大多数的安全问题也跟随而来,攻击重点也转移为web攻击,许多web与很有价值的客户服务与电子商业活动结合在一块儿,这也是吸引恶意攻击重要缘由。 先来了解下web所面临的安全风险 HTTP拒绝服务攻击 攻击者经过某些手段使服务器拒绝对http应答,这使Apache对系统资源(cup时间与内存)需求巨增,最终形成系统变慢甚至彻底瘫痪,Apache服务器最大的缺点是,它的广泛性使它成为众矢之的,Apache服务器无时无刻不受到DoS攻击威胁,主要有下边几种 1.数据包洪水攻击 一种中断服务器或本地网络的方法是数据包洪水攻击,它一般使用internet控制报文协议(ICMP,属于网络层协议) 包或是udp包,在最简单的形式下,这些攻击都是使服务器或网络负载太重,这意味这攻击者的网络速度必须比目标主机网络速度要快,使用udp包的优点是不会有任何包返回到黑客的计算机(udp效率要比tcp高17倍),而使用ICMP包的优点是攻击者能让攻击更加富与变化,发送有缺陷的包会搞乱并锁住受害者的网络,目前流行的趋势是攻击者欺骗服务器,让其相信正在受来自自身的洪水攻击 2.磁盘攻击 这是一种很不道德的攻击,它不只影响计算机的通讯,还破坏其硬件,伪造的用户请求利用写命令攻击目标计算机硬盘,让其超过极限,并强制关闭,结局很悲惨 3.路由不可达 一般DoS攻击,集中在路由器上,攻击者首先得到控制权并操纵目标机器,当攻击者能更改路由表条目时候,会致使整个网络没法通讯,这种攻击很阴险,隐蔽,由于网络管理员须要排除的网络不通缘由不少,其中一些缘由须要详细分辨 4.分布式拒绝服务攻击 这也是最具备威胁的DDoS攻击,名称很容易理解,简单说就是群欧,不少客户机同时单条服务器,你会发现你将伤痕累累,Apache服务器特别容易受到攻击,不管是DDos仍是隐藏来源的攻击,由于Apache无处不在,特别是为Apache特地打造的病毒(特选SSL蠕虫),潜伏在许多主机上,攻击者经过病毒能够操纵大量被感染的机器,对特定目标发动一次浩大的DDoS攻击,经过将蠕虫散播到大量主机,大规模的点对点攻击得以进行,除非你不提供服务,要否则几乎没法阻止这样的攻击,这种攻击一般会定位到大型的网站上。 缓冲区溢出,这种攻击很广泛,攻击者利用CGI程序编写一些缺陷程序偏离正常的流程,程序使用静态的内存分配,攻击者就能够发送一个超长的请求使缓冲区溢出,好比,一些perl编写的处理用户请求的网关脚本,一但缓冲区溢出,攻击者就能够执行恶意指令 非法获取root权限 若是Apache以root权限运行,系统上一些程序的逻辑缺陷或缓冲区溢出漏洞,会让攻击者很容易在本地系统获取linux服务器上的管理者权限,在一些远程状况下,攻击者会利用一些以root身份执行的有缺陷的系统守护进程来取得root权限,或利用有缺陷的服务进程漏洞来取得普通用户权限,以远程登录,进而控制整个系统。 这边这些都是服务将会遇到的攻击手段,下边来讲,如何打造安全的Apache服务器 若是你能遵照下边这些建议,那么你将获得一台相对安全的apache服务器 一:勤打补丁 你必需要相信这个是最有用的手段,缓冲区溢出等漏洞都必须使用这种手段来防护,勤快点相信对你没有坏处 在http:www.apache.org上最新的changelog中都写有:bug fix ,security bug fix的字样,作为负责任的管理员要常常关注相关漏洞,及时升级系统添加补丁。使用最新安全版本对增强apache相当重要 二:隐藏和假装Apache的版本 打乱攻击者的步骤,给攻击者带来麻烦,相信是管理员愿意看到的。软件的漏洞信息和版本是相关的,在攻击者收集你服务软件信息时候给与迷惑是个不错的选择,况且版本号,对攻击者来讲至关与GPS定位同样重要 默认状况,系统会把apache版本模块都显示出来(http返回头),若是列举目录的话,会显示域名信息(文件列表正文),去除Apache版本号的方法是修改配置文件,找到关键字,修改成下边 ServerSignature off ServerTokens prod 经过分析web服务器类型,大体能够推测操做系统类型,win使用iis,linux广泛apache,默认的Apache配置里没有任何信息保护机制,而且容许目录浏览,经过目录浏览,一般能够获得相似“apache/1.37 Server at apache.linuxforum.net Port 80”或“apache/2.0.49(unix)PHP/4.3.8”的信息 经过修改配置文件中的ServerTokens参数,能够将Apache的相关信息隐藏起来,若是不行的话,多是提示信息被编译在程序里了,要隐藏须要修改apache的源代码,而后从新编译程序,以替换内容 编辑ap_release.h文件, 修改”#define AP_SERVER_BASEPRODUCT\”Apache\”"为 “#define AP_SERVER_BASEPRODUCT\”Microsoft-IIS/5.0\” 编辑os/unix/os.h文件 修改”#define PLATFORM\”Unix\”"为 “#define PLATFORM\’Win32″ 修改完成后,从新编译,安装apache,在修改配置文件为上边作过的,再次启动apache后,用工具扫描,发现提示信息中已经显示为windows操做系统了 顺便说下,如今这个论坛,就有点不太讲究,这是论坛错误的返回信息,看了有点汗地感受 Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_ssl/2.2.8 OpenSSL/0.9.8g Server at forum.ubuntu.org.cn Port 80 这个等于告诉恶意用户不少有用信息,虽说不算开了门,但等于被告诉了门在那里,仍是至关危险的 三:创建安全的目录结构apache服务器包括四个目录结构 ServerRoot #保存配置文件,二进制文件与其余服务器配置文件 DocumentRoot #保存web站点内容,包括HTML文件和图片等 ScripAlias #保存CGI脚本 Customlog 和 Errorlog #保存日志和错误日志 建议的目录结构为,以上四种目录相互独立而且不存在父子逻辑关系 注: ServerRoot目录只能为root用户访问 DocumentRoot目录应该可以被管理web站点内容的用户访问和使用apache服务器的apache用户与组访问 ScripAlias目录应该只能被CGI开发人员和apache用户访问 Customlog 和 Errorlog只能被root访问 下边是一个安全目录结构的事例 +——-/etc/ | | +—-/http (ServerRoot) | +—-/logs (Customlog 和 Errorlog) | +——-var/www | | +—/cgi-bin (ScripAlias) | +—/html (DocumentRoot) 这样的目录结构是比较安全的,由于目录之间独立,某个目录权限错误不会影响到其余目录 四:为apache使用专门的用户与组 按照最小特权的原则,须要给apache分配一个合适的权限,让其可以完成web服务 注: 最小特权原则是系统安全中最基本的原则之一,限制使用者对系统及数据进行存取所须要的最小权限,保证用户能够完成任务,同时也确保被窃取或异常操做所形成的损失 必须保证apache使用一个专门的用户与组,不要使用系统预约的账户,好比nobody用户与nogroup组 由于只有root用户能够运行apache,DocumentRoot应该可以被管理web站点内容的用户访问和使用apache服务器的apache用户与组访问,例如,但愿“test”用户在web站点发布内容,而且能够以httpd身份运行apache服务器,能够这样设定 groupadd webteam usermod -G webteam test chown -R httpd.webteam /www/html chmod -R 2570 /www/htdocs 只有root能访问日志,推荐这样的权限 chown -R [...]
相关文章
相关标签/搜索