CentOS安装Apache-2.4.10+安全配置
注:以下所有操作均在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.10+安全配置的更多相关文章
- linux上安装apache以及httpd.conf基本配置
1.yum安装apache #yum install httpd -y 2.随系统自启动 #chkconfig httpd on 3.开启apache #service httpd start PS: ...
- centos 安装apache 和 php5.6
centos 安装 php5.6,安装前需要先安装数据库和apache 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel ...
- 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 ...
- 手动安装Apache+PHP+MYSQL及环境配置
先准备好软件: Apache官方下载地址:apache_2.0.55-win32-x86-no_ssl.msi,更多版本在这里: php官方下载地址:php-5.0.5-Win32.zip,更多镜像下 ...
- centos安装apache
查询是否已安装apache: rpm -qa httpd 安装apache: yum install httpd -y 查询: chkconfig httpd on 启动: service http ...
- CentOS 安装apache
yum 安装apache yum –y install httpd 设置开机启动 chkconfig --levels 235 httpd on 启动 /etc/init.d/httpd start ...
- CentOS安装redmine 2后的简单配置
CentOS5.4安装redmine详细步骤 http://blog.csdn.net/leekwen/article/details/8516832 <<<<输出日志的配置& ...
- 阿里云 centos 安装apache和php
mysql使用阿里云的rds httpd服务 1. 安装apr和apr-util 2. 安装 httpd apache.org,apr.apache.org 安装命令: ./configure --p ...
- centos安装svn并创建版本库配置用户分组权限
1.设置aliyun安装源// 本步骤非必须, 使用aliyun安装源后, 执行yum update速度明显提升 wget -O /etc/yum.repos.d/CentOS-Base.repo h ...
- Centos安装Python各版本解释器并配置pip
Centos7.3安装Python3.7 Python3.7貌似又多了新的依赖,所以按照安装之前的套路安装在配置pip阶段就会出问题,比如: ModuleNotFoundError: No modul ...
随机推荐
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- ASP.NET Core的配置(5):配置的同步[ 实例篇]
ConfigurationBuilder在生成以Configuration对象的时候会利用注册其中的ConfigurationProvider加载原始的配置数据,那么一旦配置源中的数据发生变化,应用程 ...
- Notes:SVG(4)基于stroke-dasharray和stroke-dashoffset圆形进度条
stroke-dasharray:定义描边的虚线长度,如果提供奇数个,则会自动复制该值成偶数 stroke-dashoffset:定义虚线描边的偏移量(在路径开始的前面,看不到) 实现如下所示 svg ...
- Chrome浏览器必装的扩展工具
名称 作用 下载地址 Postman 模拟各种http请求 点击下载 JSON Viewer 访问json结果自动视图化 点击下载 Axure RP Extension for Chrome 查看Ax ...
- Linux驱动开发—— of_property_read_u8
在使用設備樹的時候, 有時會遇到下面的問題. 在設備樹中配置的屬性如下: fusb301,init-mode = <0x20>; 但是在驅動中讀出的卻是: rc = of_property ...
- Oracle基础维护01-常用管理命令总结
概览: 1.Oracle 内存管理 2.Oracle 数据库启动关闭 3.Oracle 参数文件 4.Oracle 控制文件 5.Oracle redo日志文件 6.Oracle undo表空间管理 ...
- 数据结构笔记--二叉查找树概述以及java代码实现
一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...
- 挣值管理 EVM
项目的挣值管理(Earned Value Management,EVM),是用与进度计划.成本预算和实际成本相联系的三个独立的变量,进行项目绩效测量的一种方法. 有三个比较重要的参数,用这三个参数能够 ...
- 想着模仿京东微信首页呢,banner滚动搞定了,写到了一半了
接着上篇 微信小程序-阅读小程序demo写:http://www.cnblogs.com/muyixiaoguang/p/5917986.html 想着模仿京东首页呢,结果也没赶得及写完,轮播图让我搞 ...
- TeamCity : Build 基本配置
前文中我们在 TeamCity 中创建了一个项目 HelloApp,并在这个项目中创建了一个名为 HelloAppDailyBuild 的Build 用来编译 demo 程序.本文我们将详细介绍 Bu ...