apache安全与优化
时间:2010-02-26 来源:cainoma
参考文献http://bbs.linuxtone.org/thread-88-1-1.html
apache安全
安全特性
1 采用选择性访问控制和强制性访问控制的安全策略
选择性访问控制DAC(Discretionary Access Control)
# 基于用户名和密码
强制性访问控制MAC(Mandatory Access Control)
# 依据发出请求的客户端的IP地址或服务器系统安全所在的域号来进行界定
2 安全模块
apache一个优势就是灵活的模块结构,其设计思想也是围绕模块(Modules)概念展开的
这些安全模块负责提供访问控制和认证,授权等一系列重要的安全服务
mod_Access
# 根据访问者的IP地址(或域名,主机名等)控制访问,称为基于主机的访问控制
mod_auth
# 控制用户和组的认证授权(Authentication)
# 用户名和服务器安全方案口令存于纯文本文件
mod_auth_db
# 将用户信息(名称,组属和口令等)存于Berkeley-DB,便于管理及提高应用效率
mod_auth_dbm
# 将用户信息(名称,组属和口令等)存于DBM型小型数据库,方便管理提高效率
mod_auth_digest
# 采用MD5数字签名的方式进行用户认证,但它相应需要客户端的支持
mod_auth_anon
# 与mod_auth类似,只是它允许匿名登录,将用户输入的E-mail地址作为口令
SSL(Secure Socket Lager)
# 安全套接字协议,提供安全交易服务,是电子商务的一项安全措施
# 通过对通讯字节流的加密来防止敏感信息的泄露
# 需建立对Apache的API扩展来实现这种安全,相当于一个外部模块,与第三方程序
结合提供安全的网上交易支持
安全配置
Apache的安全特性需要经过周密的设计和规划,进行认真的配置
Apache服务器的安全配置包括很多层面
有运行环境,认证与授权设置及案件安全的电子交易链接
0 以Nobody用户运行
# 当以root运行时,Apache进程具有root特权,将对系统的安全构成很大威胁
# 所以确保以尽可能低的权限用户运行,修改httpd.conf
1 关闭不必要的模块,只安装需要的
apache特点是灵活性和大量可选择安全模块,这将是一个安全隐患.
一个标准的apache安装包含20多个模块eg:CGI,身份证验证等.
httpd.conf配置文件,找到LoadModule开头的行.通过apache文档或google.yahoo搜索
每个模块的目的信息.
2 暴露程度最小化
apache能为外界提供apache版本号与操作系统等信息,这些存在安全隐患
httpd.conf中"ServerSignature” 指令设置为“off” (关闭版本号)
httpd.conf中"ServerTokens“ Minimal/ProductOnly/OS/Full 四个隐藏信息一次增加
apache的源码包中ap_release.h将
引用
#define AP_SERVER_BASEPRODUCT "Apache" 修改为
引用
#define AP_SERVER_BASEPRODUCT “Microsoft-IIS/5.0”
在os/unix下的os.h文件,将其
引用
#define PLAFORM "Unix" 修改为
引用
#define PLAFORM "Win32"
修改完源代码之后编译安装
禁用目录浏览
对httpd.conf中的每一个“Directory”指令,清除“Indexes”引用
eg: <Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks (清除这个引用)
Options -Indexes FollowSymLinks (加个破折号是禁用此指令)
3 禁用符号连接追踪
4 清除默认的注释行
php配置修改
默认情况下
引用
expose_php=On 修改为
expose_php=OFF
It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
禁止涉及php安全的函数 disable_functions=phpinfo, get_cfg_var #禁止phpinfo和get_cfg_var等函数 display_errors=Off #禁止爆出错误 allow_url_fopen=Off #这个关闭就无法取远程内容,可用curl远程读取 safe_mode=On #开启安装模式,会导致有些php功能无法使用 本篇随时更新,还请有经验者多多提出自己宝贵的意见......谢谢。。。。
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
禁止涉及php安全的函数 disable_functions=phpinfo, get_cfg_var #禁止phpinfo和get_cfg_var等函数 display_errors=Off #禁止爆出错误 allow_url_fopen=Off #这个关闭就无法取远程内容,可用curl远程读取 safe_mode=On #开启安装模式,会导致有些php功能无法使用 本篇随时更新,还请有经验者多多提出自己宝贵的意见......谢谢。。。。
相关阅读 更多 +