LAMP安全加固之apache篇

运维 系统运维
正在使用和准备使用LAMP的人,都想为自己的LAMP安全有实质般的改变,那就随我看看实质性的加强LAMP安全的办法。

 

[[20466]] 

图-LAMP

一用LAMP,我就想到LAMP安全的问题,安全那是必须要搞定的!看看我是如何办的!

  apache方面:

  1.修改banner

  编译源代码,修改默认的banner

  ServerTokens ProductOnly

  ServerSignature Off

  在apache的源码包中找到ap_release.h将

  #define AP_SERVER_BASEPRODUCT “Apache”

  修改为

  #define AP_SERVER_BASEPRODUCT “Microsoft-IIS/6.0”

  os/unix下的os.h文件

  #define PLATFORM “Unix”

  修改为

  #define PLATFORM “Win32“

  2.修改默认的http状态响应码404,503等默认页面

  3.Apache的访问权限控制

  htpasswd -b -c /(存放密码文件路径)/.htpasswd username password

  Alias /hack “/var/www/html/hack/”

  authname “test”

  authtype basic

  authuserfile /var/www/html/hack/.htpasswd

  require user kindle

#p#

  4.关闭危险指令

  清除FollowSymlinks指令

  关闭索引目录

  Options Indexes FollowSymLinks

  关闭CGI执行程序

  5.open_basedir 限制目录

  用法:php_admin_value open_basedir /var/www

  php_admin_value open_basedir 引起的上传文件失败解决方法

  将上传文件的临时目录加入到php_admin_value open_basedir后面,最后看起来是这样的:

  php_admin_value open_basedir “/usr/local/apache/htdocs/www/:/tmp/”

  注意:两个目录之间是冒号隔开。

  把PHP脚本操作限制在web目录可以避免程序员使用copy函数把系统文件拷贝到web目录。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。

  6.掌握Apache的Order Allow Deny判断原则

  1. 首先判断默认的;

  2. 然后判断逗号前的;

  3. 最后判断逗号后的;

  4. 最终按顺序叠加而得出判断结果。

  ex:

  apache的php扩展名解析漏洞

  Order Allow,Deny

  Deny from all

  apache设置上传目录无执行权限

  Order allow,deny

  Deny from all

  7.mod_rewrite重写URL

  重写规则的作用范围

  1.使用在Apache主配置文件httpd.conf中。

  2.使用在httpd.conf里定义的配置中。

  3.使用在基本目录的跨越配置文件.htaccess中。

  1.url重定向80到443端口

  RewriteEngine on

  RewriteCond %{SERVER_PORT} !^443$

  RewriteRule ^/?(.*)$ https://www.kindle.com/$1 [L,R]

  含义是这样的:为了让用户访问传统的http://转到https://上来,用了一下rewrite规则:

  第一句:启动rewrite引擎

  第二句:rewrite的条件是访问的服务器端口不是443端口

  第三句:这是正则表达式,^是开头,$是结束,/?表示有没有/都可以(0或1个),(.*)是任何数量的任意字符

  整句的意思是讲:启动rewrite模块,将所有访问非443端口的请求,url地址内容不变,将http://变成https://

#p#

  8.Speling模块去除url大小写

  确认speling模块存在并已加载

  启动speling

  CheckSpelling .

  AllowOverride None

  Order allow,deny

  Allow from all

  9. Limit模块限制IP连接数

  下载模块 http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz

  安装:

  tar zxvf mod_limitipconn-0.04.tar.gz

  cd mod_limitipconn-0.04

  make APXS=/usr/local/apache/bin/apxs ß—–这里要按你自己的路径设置

  make install APXS=/usr/local/apache/bin/apxs ß—–这里要按你自己的路径设置

  编辑httpd.conf

  添加

  全局变量:

  < IfModule mod_limitipconn.c >

  < Location / > # 所有虚拟主机的/目录

  MaxConnPerIP 3 # 每IP只允许3个并发连接

  NoIPLimit image/* # 对图片不做IP限制

  < /Location >

  < Location /mp3 > # 所有主机的/mp3目录

  MaxConnPerIP 1 # 每IP只允许一个连接请求

  OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件

  < /Location >

  < /IfModule >

  9.让apache支持安全HTTPS协议

  yum -y install mod_ssl

  cd /etc/httpd/conf 进入HTTP服务器配置文件所在目录

  rm -rf ssl.*/server.* 删除默认或残留的服务器证书相关文件

  rpm -qa |grep openssl

  openssl genrsa -out www.kindle.com.key 1024 建立服务器密钥

  openssl req -new –key www.kindle.com.key -out www.kindle.com.csr 建立服务器公钥

  openssl x509 -req -days 365 -in www.kindle.com.csr -signkey www.kindle.com.key -out www.kindle.com.crt 建立服务器证书

  /etc/rc.d/init.d/httpd restart 重启服务

  netstat -ntpl |grep 443

  可以到http://www.startssl.com获取合法证书(免费)

  10.安装配置mod_security

  下载:http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz

  http://fedoranews.org/jorge/mod_security/mod_security.conf

  安装:下载到/opt/soft目录下。

  # tar –zxvf modsecurity-1.8.7.tar.gz

  # cd modsecurity-1.8.7

  #cd apache2

  # /opt/apache/bin/ apxs -cia mod_security.c

  #copy mod_security.conf /opt/apache/conf

  配置:

  在/opt/apache/conf/httpd.conf中添加下面一行:

  Include conf/mod_security.conf

  /opt/apache/bin/apachectl stop

  /opt/apache/bin/apachectl startssl

  更详细的mod_security的配置

通过文章,我们知道了LAMP安全里面的apache,在后面的文章为大家介绍PHP和Mysql安全。希望大家继续关注。

【编辑推荐】

  1. LAMP下虚拟主机用户个人网页的架设
  2. 从 WAMP 到 LAMP 看穿 LAMP
  3. 运用apt工具傻瓜式安装、配置、拆卸、卸载LAMP
  4. LAMP Web 技术平台体系简介
  5. 编译安装lamp 常用项目
  6. LAMP web机制 详解 (图)

 

 

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-03-23 15:17:44

2011-03-23 15:38:29

2011-03-21 10:49:33

LAMPApache

2011-03-21 11:33:09

LAMPApache

2011-03-11 14:02:53

Apache配置

2011-03-21 13:04:38

LAMPApache

2011-03-21 14:30:45

LAMPApachePHP

2011-03-22 12:53:35

UbuntuLAMPApache

2012-08-01 09:12:46

2011-03-14 13:07:22

LAMPApache调优

2011-03-09 16:28:25

2021-08-12 10:31:59

MySQL安全方法

2011-03-23 11:14:47

LAMP配置

2011-03-09 14:34:10

lamp安装

2011-03-21 13:59:44

Apachemysqlphp

2009-10-14 09:46:18

2010-03-08 11:25:33

2021-08-05 10:21:18

NSAKubernetes安全

2021-08-26 10:05:31

APP安全加密网络攻击

2019-04-12 14:07:13

系统安全Linux账号安全
点赞
收藏

51CTO技术栈公众号