注:以下所有操作均在CentOS 6.5 x86_64位系统下完成。

#准备工作#

在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见《CentOS安装Nginx-1.6.2+安全配置》

另外还需要先安装以下几个组件:

1、安装Sqllite:

# wget http://www.sqlite.org/2014/sqlite-autoconf-3080704.tar.gz
# tar zxf sqlite-autoconf-.tar.gz
# cd sqlite-autoconf-
# ./configure --prefix=/usr/local/sqlite-3.8.7.4
# make && make install

2、安装apr:

# wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
# tar zxf apr-1.5..tar.gz
# cd apr-1.5.
# ./configure --prefix=/usr/local/apr-1.5.
# make && make install

3、安装apr-util:

# wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
# tar zxf apr-util-1.5..tar.gz
# cd apr-util-1.5.
# ./configure --prefix=/usr/local/apr-util-1.5. --with-apr=/usr/local/apr-1.5.
# make && make install

#Apache的安装#

开始下载Apache并进行编译安装:

# cd /usr/local/src
# wget http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz
# cd httpd-2.4.
# ./configure --prefix=/usr/local/apache-2.4. --with-apr=/usr/local/apr-1.5. --with-apr-util=/usr/local/apr-util-1.5. --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.25/conf/httpd.conf /usr/local/apache-2.4./conf/httpd.conf.default
# ln -s /usr/local/apache-2.4./ /usr/local/apache

接着修改http.conf配置文件:

# vim /usr/local/apache-2.4.25/conf/httpd.conf

Listen 

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 0.0 0.5 ? Sl : : /usr/local/apache-2.4./bin/httpd -k start
www 0.0 0.5 ? Sl : : /usr/local/apache-2.4./bin/httpd -k start
www 0.0 0.7 ? Sl : : /usr/local/apache-2.4./bin/httpd -k start
www 0.0 0.5 ? Sl : : /usr/local/apache-2.4./bin/httpd -k start
root 0.0 0.7 ? Ss : /usr/local/apache-2.4./bin/httpd -k start
root 0.0 0.1 pts/ S+ : : 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.25/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 /data/www/
# chmod -R /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功能(默认已关闭)。

CentOS安装Apache-2.4.25+安全配置的更多相关文章

  1. centos 安装apache 和 php5.6

    centos 安装 php5.6,安装前需要先安装数据库和apache 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel ...

  2. CentOS安装NodeJS v0.10.25 + Express

    安装必需组件 yum -y install gcc make gcc-c++ openssl-devel wget cd ~wget http://nodejs.org/dist/v0.10.25/n ...

  3. linux上安装apache以及httpd.conf基本配置

    1.yum安装apache #yum install httpd -y 2.随系统自启动 #chkconfig httpd on 3.开启apache #service httpd start PS: ...

  4. 手动安装Apache+PHP+MYSQL及环境配置

    先准备好软件: Apache官方下载地址:apache_2.0.55-win32-x86-no_ssl.msi,更多版本在这里: php官方下载地址:php-5.0.5-Win32.zip,更多镜像下 ...

  5. centos安装apache

    查询是否已安装apache:  rpm -qa httpd 安装apache: yum install httpd -y 查询: chkconfig httpd on 启动: service http ...

  6. CentOS 安装apache 及所需的 apr,apr-util,pcre

    安装apache前确定已安装 apr,apr-util,pcre 一.安装apr [root@xt test]# tar -zxf apr-1.4.5.tar.gz [root@xt test]# c ...

  7. CentOS 安装apache

    yum 安装apache yum –y install httpd 设置开机启动 chkconfig --levels 235 httpd on 启动 /etc/init.d/httpd start ...

  8. CentOS安装redmine 2后的简单配置

    CentOS5.4安装redmine详细步骤 http://blog.csdn.net/leekwen/article/details/8516832 <<<<输出日志的配置& ...

  9. 阿里云 centos 安装apache和php

    mysql使用阿里云的rds httpd服务 1. 安装apr和apr-util 2. 安装 httpd apache.org,apr.apache.org 安装命令: ./configure --p ...

  10. [部署]CentOS安装apache

    环境 虚拟机:VMWare10.0.1 build-1379776 操作系统:CentOS7 64位 步骤 1.使用yum安装 yum install httpd httpd-devel 2.启动 a ...

随机推荐

  1. MySQL监控脚本

    zabbix监控mysql时自定key用到的脚本 #!/usr/bin/env python #-*- coding: UTF-8 -*- from __future__ import print_f ...

  2. Atitit.分区对索引的影响 分区索引和全局索引 attilax总结

    Atitit.分区对索引的影响 分区索引和全局索引 attilax总结 1. 分区的好处1 2. 分区键:2 3. 分区的建议:2 4. 分区索引和全局索引:2 5. 全局索引就是在全表上创建索引, ...

  3. C++语言基础(24)-四种类型转换运算符(static_cast、dynamic_cast、const_cast和reinterpret_cast)

    一.static_cast static_cast 只能用于良性转换,这样的转换风险较低,一般不会发生什么意外,如: #include <iostream> #include <cs ...

  4. tomcat打印GC日志

    在catinlin.sh的最上面加上 JAVA_OPTS=" -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/lnmp/tomcat8 ...

  5. [JNA系列]Java调用Delphi编写的Dll之Delphi与JAVA基本数据类型对比

    Delphi与JAVA基本数据类型对比 类型 Delphi关键字 JAVA关键字 字节 备注 范围 整型 Shortint byte 1 有符号8位 -128..127 Byte 1 无符号8位 0 ...

  6. winform 打印条码

    一个winform打印功能的示例 操作步骤:1.新建winform项目及创建窗体2.拖取 打印 相关控件 PageSetupDialog . PrintDialog . PrintDocument . ...

  7. bootstrap table 服务器端分页--ashx+ajax

    1.准备静态页面 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-T ...

  8. Ubuntu 12.04 server 如何安装 OpenERP 7(转)

    不经意的一次看到OpenERP这个开源ERP,就被其丰富的功能,简洁的画面,熟悉的语言所吸引.迫不及待的多方查询资料,自己架设一个测试环境来进行了解.以下为测试安装时候的步骤说明,以备查询,并供有需要 ...

  9. Unity3D 5中增加WebGL 播放插件

    http://www.csdn.net/article/2014-03-18/2818822-Unity-5-game-engine 其实我是搞3d的,这篇文章里所有的术语看了都有很强的亲切感. Un ...

  10. 目录视图摘要视图订阅 基于Extjs开发不允许为空的文本框提示及相应的验证错误提示(转)

    原文地址:http://blog.csdn.net/kunoy/article/details/8007585 本文主要解决问题: 1.区分哪些文本框不允许为空,很多网站都采用在文本框后加*号,ext ...