zoukankan      html  css  js  c++  java
  • CentOS安装Apache2.4.25+安全配置

    注:以下所有操作均在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-3080704.tar.gz
    # cd sqlite-autoconf-3080704
    # ./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.2.tar.gz
    # cd apr-1.5.2
    # ./configure --prefix=/usr/local/apr-1.5.2
    # 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.4.tar.gz
    # cd apr-util-1.5.4
    # ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
    # 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.25
    # ./configure --prefix=/usr/local/apache-2.4.25 --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4 --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.25/conf/httpd.conf.default
    # ln -s /usr/local/apache-2.4.25/ /usr/local/apache

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

    # vim /usr/local/apache-2.4.25/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.25/bin/httpd -k start
    www      10088  0.0  0.5 221664  2964 ?        Sl   15:41   0:00 /usr/local/apache-2.4.25/bin/httpd -k start
    www      10089  0.0  0.7 287200  3528 ?        Sl   15:41   0:00 /usr/local/apache-2.4.25/bin/httpd -k start
    www      10171  0.0  0.5 221664  2968 ?        Sl   15:41   0:00 /usr/local/apache-2.4.25/bin/httpd -k start
    root     12966  0.0  0.7  98588  3872 ?        Ss    2014   0:15 /usr/local/apache-2.4.25/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.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 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功能(默认已关闭)。

  • 相关阅读:
    Python中CreateCompatibleDC和CreateBitmap造成的内存泄漏
    POJ 2420 模拟退火
    LR(1)分析表-语法树-四元式
    C语言文法
    计蒜客 18018 热爱工作的蒜蒜 最短路+dp
    HDU 5988 最小费用流
    POJ 1808 平方剩余
    POJ 2115 单变元模线性方程
    计蒜客 17414 Exponial 指数降幂公式
    计蒜客 17412 Card Hand Sorting 最长公共子序列
  • 原文地址:https://www.cnblogs.com/brishenzhou/p/6140519.html
Copyright © 2011-2022 走看看