共计 3322 个字符,预计需要花费 9 分钟才能阅读完成。
注:以下所有操作均在 CentOS 6.5 x86_64 位系统下完成。
# 准备工作 #
在安装 Nginx 之前,请确保已经使用 yum 安装了各基础组件,并且配置了 www 用户和用户组,具体见《CentOS 6.5 安装 Nginx-1.6.2 及安全配置》。
另外还需要先安装以下几个组件:
1、安装 Sqllite:
# wget http://www.sqlite.org/2014/sqlite-autoconf-3080704.tar.gz
# tar zxf sqlite-autoconf-3080704.tar.gz
# cd sqlite-autoconf-3080704
# ./configure --prefix=/usr/local/sqlite-3.8.7.4
# make && make install
2、安装 apr:
# tar zxf apr-1.4.5.tar.gz
# cd apr-1.4.5
# ./configure --prefix=/usr/local/apr-1.4.5
# make && make install
3、安装 apr-util:
# tar zxf apr-util-1.3.12.tar.gz
# cd apr-util-1.3.12
# ./configure --prefix=/usr/local/apr-util-1.3.12 --with-apr=/usr/local/apr-1.4.5
# make && make install
#Apache 的安装 #
开始下载 Apache 并进行编译安装:
# cd /usr/local/src
# wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.10.tar.gz
# tar zxf httpd-2.4.10.tar.gz
# cd httpd-2.4.10
# ./configure --prefix=/usr/local/apache-2.4.10 --with-apr=/usr/local/apr-1.4.5 --with-apr-util=/usr/local/apr-util-1.3.12 --enable-dav --enable-so --enable-maintainer-mod --enable-rewrite --with-sqlite=/usr/local/sqlite-3.8.7.4
# make && make install
# cp /usr/local/apache-2.4.10/conf/httpd.conf /usr/local/apache-2.4.10/conf/httpd.conf.default
# ln -s /usr/local/apache-2.4.10/ /usr/local/apache
接着修改 http.conf 配置文件:
# vim /usr/local/apache-2.4.10/conf/httpd.conf
Listen 8888
User www
Group www
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule rewrite_module modules/mod_rewrite.so
注:这里我们配置其监听端口是 8888,并且开启 DAV 模块和 Rewrite 模块。
之后保存文件并开启 apache 服务:
# /usr/local/apache/bin/apachectl start
注意新版本的 Apache 已经禁止以 root 用户启动 Apache,启动后如下所示:
# ps aux | grep httpd
www 10087 0.0 0.5 221664 2960 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start
www 10088 0.0 0.5 221664 2964 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start
www 10089 0.0 0.7 287200 3528 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start
www 10171 0.0 0.5 221664 2968 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start
root 12966 0.0 0.7 98588 3872 ? Ss 2014 0:15 /usr/local/apache-2.4.10/bin/httpd -k start
root 10331 0.0 0.1 103252 836 pts/0 S+ 15:49 0:00 grep httpd
注:这里有个 httpd 进程是 root 的,这是正常的,因为启动后 root 才会 fork 出 ww 权限的进程,用户的请求由 www 权限进程处理。
这个时候打开浏览器访问地址 http://youripaddress:8888/ 应该可以看到:
至此,Apache 已经安装完毕并且已经启动成功。
#Apache 的安全配置 #
1、Apache 默认是允许目录浏览的,如果目录下没有索引文件则会出现目录浏览漏洞,所以这里需要关闭目录浏览。这里直接选择全局关闭:
# vim /usr/local/apache/conf/httpd.conf
<Directory "/usr/local/apache-2.4.10/htdocs">
Options Indexes FollowSymLinks
Require all granted
</Directory>
注:原来的 Indexes 改成 -Indexes,也可以选择在.htacess 文件中部分禁止该功能,或者直接把 Indexes 这行删除。
2、Apache 默认输出的 banner 会泄漏关键信息,比如服务器 OS 类型、Apache 版本等。可以禁止起输出这些信息:
# vim /usr/local/apache/conf/httpd.conf
ServerSignature Off
ServerTokens Prod
注:直接在文件末尾添加内容即可。
3、开启访问日志并正确配置其路径(默认已开启):
# vim /usr/local/apache/conf/httpd.conf
<IfModule log_config_module>
CustomLog "logs/access_log" common
</IfModule>
4、确保目录安全,由于是以 www 用户启动 Apache 的,所以可以设置 Web 目录和文件的属主为 root 用��,Web 目录统一设置权限为 755,Web 文件权限统一设置为 644(cgi 文件若需执行可设置为 755),只有上传目录需要可读写的权限设置为 777。
# chown -R root:root /data/www/
# chmod 755 /data/www/
# chmod -R 777 /data/www/upload
另外,为了防止黑客上传可执行脚本到 777 目录下,必须设置该目录为不能执行或访问脚本,比如:
# vim /usr/local/apache/conf/httpd.conf
<Directory "/usr/local/apache/htdocs/yourpath">
Options None
AllowOverride None
Order deny,allow
Deny from all
<FilesMatch "\.(jpg|jpeg|gif|png)$">
Order deny,allow
Allow from all
</FilesMatch>
</Directory>
5、对管理目录设置访问 IP 名单限制,比如:
# vim /usr/local/apache/conf/httpd.conf
<Directory "/usr/local/apache/htdocs/admin">
Order deny,allow
Deny from all
Allow from pair 11.12.23.0/24
</Directory>
6、去掉 UserDir 功能(默认已关闭)。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/137985.htm