1.搭建 Apache

Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性(尽管不断有新的漏洞被发现,但由于其开放源代码的特点,漏洞总能被很快修补。因此总的来说,其安全性还是相当高的。)。被广泛使用,是最流行的 Web 服务器软件之一。它快速、可靠性并且可通过简单的 API 扩充,将 Perl / Python 等解释器编译到服务器中。
在 Linux 中安装 Apache 的方法,可以进行在线安装,通过命令 yum -y install httpd* 来进行安装
中间件 Apache
安装完成后,根目录在/etc/httpd
Apache 目录结构

服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log

httpd 服务程序主配置文件中最为常见的参数如下

ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
ServerName 网站服务器域名
DocumentRoot 网站数据目录
Listen 监听的 IP 地址与端口号
DirectoryIndex 默认的牵引页页面
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为300秒
Include 需要加载的其他文件

2.Apache 发布工程

Apache 的工程发布有两种方式,第一种方式是将工程放入/var/www/html 中,或放入 $APACHE_HOME\Apache24\htdocs 中。第二种是配置 httpd.conf,将conf/extra/httpd-vhosts.conf 前的 “#” 号去掉,然后在 extra 目录下的 httpd-vhosts.conf 文件中进行配置,示列如下:
中间件 Apache
我们使用第一种方法发布工程,进入/var/www/html 目录,将工程 copy 到目录下。由于本列中并没有工程可用,所以,在/var/www/html 目录下创建新目录,目录名为:demo。并入 demo 编辑并创建新文件 test.html。内容如下:
中间件 Apache
完成后通过 systemctl start httpd 来运行 Apache,在宿主机中通过浏览器输入 IP
访问刚才编写的工程页面

中间件 Apache

3.Apache 安全配置

3.1错误详情页 banner 隐藏

渗透的过程中,收集服务器的信息是至关重要的,这对于他在后期漏洞的利用上有很大的帮助。在访问站点时,访问一个不存在的页面,如果站点没做 404 重定向的话,就会泄露一些敏感信息。详情如下图
中间件 Apache
修护方法:

  • 修改配置文件:/etc/apache2/apache2.conf 或者/etc/httpd/conf/httpd.conf 隐藏中间件信息。修改或者添加以下配置:

ServerTokens Prod
ServerSignature Off

  • 修改配置文件:/etc/php5/apache2/php.ini 第 367 行隐藏 PHP 信息,将 expose_php = On 修改为 Off

376 expose_php = Off

保存配置后重启服务,再次访问不存在的页面,此时已经没有 banner 信息了
中间件 Apache

3.重定向 404 页面

默认的 404 页面是非常不友好的。当一个用户访问到一些不存在的页面或者错误的链接时,如果我们没有制作一个页面去引导用户访问该站点的其他页面时,会损失大量用户。自定义 404 页面会告诉百度、谷歌、bing 等搜索引擎的爬虫,这条记录本站已经删除,请搜索放弃收录,利于 seo 优化
修复方法:

  • 在工程根目录新建一个 .htaccess 文件,内容如下

中间件 Apache

  • 在同目录下新建 404.html,文件名与上一步指定的文件名相同,内容如下
    中间件 Apache
    不要将 404 错误直接转向到网站首页,这将导致首页不被收录;
    /404.html 前面不要带主域名,否则返回的状态码是 302 或 200 状态码;
    自定义的 404 页面必须是大于 512B,如果小于这个大小,浏览器就不会执行;

3.3 默认目录

当 Web 服务器配置不当的时候,如果当前目录不存在默认文件(比如 index.html),Apache 会列出当前目录下所有文件,造成敏感信息泄露。如下图所示
中间件 Apache
修复方法:

  • 修改配置文件/etc/apache2/apache2.conf 或者/etc/httpd/conf/httpd.conf
    中间件 Apache

3.4 文件权限问题

现在大部分站点都存在文件上传,比如说头像上传、附件上传等等。如果在代码层对上传的文件限制的不够严格,很容易被上传 Webshell。一旦被上传 Webshell 对服务器造成十分大的威胁
如果我们对存放上传文件的目录限制脚本执行的权限的话,上传的脚本文件就无法执行,在一定程度上能够减轻黑客攻击造成的危害,并且还不影响正常的业务,上传的图片不需要执行权限,也能正常打开
中间件 Apache

3.5 服务运行权限

查看 Apache 的进程:lsof -i:80
中间件 Apache
第一行是 Apache 的主程序,是以 root 运行的。因为 Apache 的 Web 开放的端口是 80 或者 443,小于 1024 的端口需要有 root 权限,因此主进程必须是 root。从第二行开始为 Apache 的子进程。用户为 apache,权限较低。如果用户为 apache 用户,此时就算黑客拿到一个 webshell,权限也是比较低的。
但由于安装配置不当,造成此处为高权限用户,需要修改为低权限用户,那么需要进入/erc/httpd/conf中编辑 htttpd.conf,将 user 和 group 修改成更低权限

3.6 Apache 日志

Apache 会生成两个主要的日志文件,一个是 Web 访问日志 access.log,一个是记录服务器运行时出错的日志 error.log
通过配置文件/etc/apache2/apache2.conf 或者/etc/httpd/conf/http.conf 中定义了日志格式

通过/var/log/httpd/error.log 查看日志

相关文章:

  • 2021-09-18
  • 2022-12-23
  • 2021-05-15
  • 2022-02-16
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-23
  • 2021-11-05
  • 2021-11-04
  • 2022-12-23
  • 2021-10-10
  • 2021-12-16
相关资源
相似解决方案