MENU

Apache安全优化

August 4, 2021 • Read: 520 • 默认分类

一、禁用APACHE测试页

1.找到welcome.conf

vim /etc/httpd/conf.d/welcome.conf

2.将文件中的每一行都注释掉

1981b54f39d3aee8e5a927d62b974c1b.png

或者修改文件的名字

3.重启apache服务

systemctl restart httpd

二、禁用APACHE目录访问

1.找到http.conf

vim /etc/httpd/conf/httpd.conf

2.删除Indexes

Options Indexes FollowSymLinks 删除 Indexes

44d1d430b05b7849a1b4711858e3276e.png

3.重启apache服务

systemctl restart httpd

实现效果:

123123.png

3123123213.png

三、隐藏版本信息

安全部门扫描apache漏洞,需要升级apache版本或隐藏版本号。
软件的漏洞信息和特定版本是相关的,因此,软件的版本号对攻击者来说是很有价值。

在默认情况下,Apache Httpd 系统会把Apache版本模块都显示出来(http返回头信息)。如果列举目录的话,会显示域名信息,服务器版本号,操作系统类型等。

1.找到http.conf

vim /etc/httpd/conf/httpd.conf

2. 在文本末添加如下两行内容

ServerTokens Prod
ServerSignature off

:wq保存并退出

3.重启Apache,访问网址抓包

systemctl restart httpd

实现效果:

1231231243.png

423423423.png

修改为server 头中的任何内容

改变HTTP web服务器的名字在于任何地方显示头部(header)信息的时候。
大多数时候,黑客会利用你的已知的web软件信息去攻击你的站点或者web应用,因此更改web服务的名字将变得困难对运行在你的系统之上的服务类型。这个点就是更改“Apache”为其它的名称。

这个可以通过安装Apache的mod_security模块来实现:

-------- On Debian/Ubuntu -------- 
$ sudo apt install libapache2-mod-security2
$ sudo a2enmod security2

-------- On CentOS/RHEL and Fedora --------
$ yum install mod_security
$ dnf install mod_security

然后打开Apache的配置文件:

$ sudo vi /etc/apache2/apache2.conf    #Debian/Ubuntu 
# vi /etc/httpd/conf/httpd.conf           #RHEL/CentOS/Fedora

现在修改或添加下面的命令行到配置文件最底部(""中你可以更改成任何你想要显示在客户端的名字)

ServerTokens Full
SecServerSignature ""

最后重启Apache服务:

$ sudo systemctl restart apache2   #Debian/Ubuntu 
# systemctl restart httpd          #RHEL/CentOS/Fedora

现在验证,再一次访问这个页面或者使用curl命令,或者通过浏览器来查看web服务的名字,可以看到已经由Apache更改。

$ curl -I -L http://domain-or-ipaddress

微信图片编辑_20210813102435.jpg

源码安装方式修改

修改版本号 vim include/ap_release.h #修改源码中的版本信息为自己公司的相关信息,隐藏真实版本信息

改:
42 #define AP_SERVER_BASEVENDOR "Apache Software Foundation"
43 #define AP_SERVER_BASEPROJECT "Apache HTTP Server"
44 #define AP_SERVER_BASEPRODUCT "Apache"
45
46 #define AP_SERVER_MAJORVERSION_NUMBER 2
47 #define AP_SERVER_MINORVERSION_NUMBER 4
48 #define AP_SERVER_PATCHLEVEL_NUMBER   27
49 #define AP_SERVER_DEVBUILD_BOOLEAN    0

为:

#define AP_SERVER_BASEVENDOR "xxx"      #服务的供应商名称
#define AP_SERVER_BASEPROJECT " ws"     #服务的项目名称
#define AP_SERVER_BASEPRODUCT " xxx_ws" #服务的产品名
#define AP_SERVER_MAJORVERSION_NUMBER 9 #主要版本号
#define AP_SERVER_MINORVERSION_NUMBER 9 #小版本号
#define AP_SERVER_PATCHLEVEL_NUMBER  9  #补丁级别
#define AP_SERVER_DEVBUILD_BOOLEAN    9

注:上述列出的行,大家可以修改成自己想要的,然后编译安装之后,再对httpd-default.conf文件进行修改,对方就彻底不知道你的版本号了。

编辑os/unix/os.h文件,修改如下:

 35 #define PLATFORM "win64"

隐藏apache版本信息

vi /application/apache/conf/extra/httpd-default.conf 修改以下内容:
    ServerSignature off
    ServerTokens prod
vi /application/apache/conf/httpd.conf  去掉下面的#注释
    Include conf/extra/httpd-default.conf
检查语法:/apache/bin/apachectl -t
平滑重启:/apache/bin/apachectl graceful    
查看效果:curl -I localhost

ServerTokens
此指令具有以下可能的值

ServerTokens   Full (或者不指定)
发送给客户端的信息: Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens   Prod[uctOnly] 
发送给客户端的信息: Server: Apache
ServerTokens   Major 
发送给客户端的信息: Server: Apache/2
ServerTokens   Minor 
发送给客户端的信息: Server: Apache/2.4
ServerTokens   Min[imal]
发送给客户端的信息:Server: Apache/2.4.2
ServerTokens   OS 
发送给客户端的信息: Server: Apache/2.4.2 (Unix)

四、robots.txt

1.robots.txt是什么?

 robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。
  当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。

2.robots.txt的作用

  • 引导搜索引擎蜘蛛抓取指定栏目或内容;
  • 网站改版或者URL重写优化时候屏蔽对搜索引擎不友好的链接;
  • 屏蔽死链接、404错误页面;
  • 屏蔽无内容、无价值页面;
  • 屏蔽重复页面,如评论页、搜索结果页;
  • 屏蔽任何不想被收录的页面;
  • 引导蜘蛛抓取网站地图;

3.Robots的语法(三个语法和两个通配符)

三个语法如下:
User-agent:(定义搜索引擎)
示例:

User-agent: *(定义所有搜索引擎)
User-agent: Googlebot (定义谷歌,只允许谷歌蜘蛛爬取)
User-agent: Baiduspider (定义百度,只允许百度蜘蛛爬取)

不同的搜索引擎的搜索机器人有不同的名称,谷歌:Googlebot、百度:Baiduspider、MSN:MSNbot、Yahoo:Slurp

Disallow:(用来定义禁止蜘蛛爬取的页面或目录)
示例:

Disallow: /(禁止蜘蛛爬取网站的所有目录 "/" 表示根目录下)
Disallow: /admin (禁止蜘蛛爬取admin目录)
Disallow: /abc.html (禁止蜘蛛爬去abc.html页面)
Disallow: /help.html (禁止蜘蛛爬去help.html页面)

Allow:(用来定义允许蜘蛛爬取的页面或子目录)
示例:

Allow: /admin/test/(允许蜘蛛爬取admin下的test目录)
Allow: /admin/abc.html(允许蜘蛛爬去admin目录中的abc.html页面)

两个通配符如下:
匹配符 “$”

$ 通配符:匹配URL结尾的字符

匹配符 “*”

* 通配符:匹配0个或多个任意字符

4.robots.txt 综合示例

(1)禁止搜索引擎抓取特定目录

在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。

User-agent: *   Disallow: /admin/
Disallow: /tmp/
Disallow: /abc/

(2)禁止admin目录,但允许抓取admin目录下的seo子目录

User-agent: *   Allow: /admin/seo/
Disallow: /admin/

(3)禁止抓取/abc/目录下的所有以".htm”为后缀的URL(包含子目录)

User-agent: *   Disallow: /abc/*.htm$

(4)禁止抓取网站中所有的动态页面

User-agent: *   Disallow: /?

屏蔽所有带“?”的文件,这样就屏蔽所有的动态路径。

(5)禁止百度蜘蛛抓取网站所有的图片:

User-agent: Baiduspider
Disallow: /.jpg$
Disallow: /.jpeg$
Disallow: /.gif$
Disallow: /.png$
Disallow: /*.bmp$

(6)要在阻止网站页面被抓取的同时仍然在这些页面上显示 AdSense 广告

User-agent: *   Disallow: /folder1/
User-agent: Mediapartners-Google
Allow: /folder1/

请禁止除 Mediapartners-Google 以外的所有漫游器。 这样可使页面不出现在搜索结果中,同时又能让 Mediapartners-Google 漫游器分析页面,从而确定要展示的广告。 Mediapartners-Google 漫游器并不与其他 Google User-agent 共享网页。

5.注意事项

1、robots.txt 文件必须放在网站的根目录,不可以放在子目录
2、robots.txt 文件名命名必须小写,记得在robot面加“s”
3、User-agent、Allow、Disallow的 “:” 后面有一个字符的空格
4、路径后面加斜杠“/” 和不加斜杠的是有区别的
5、Disallow与Allow行的顺序是有意义的

6.关于Robots Meta

Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots Meta标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots Meta标签也是放在页面中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。
Robots Meta 标签中没有大小写之分,name="Robots" 表示所有的搜索引擎,可以针对某个具体搜索引擎(如google)写为 name="Googlebot", content部分有四个指令选项:index、noindex、follow、nofollow,指令间以 “,” 分隔。

Index 指令告诉搜索机器人抓取该页面;
NoIndex命令:告诉搜索引擎不允许抓取这个页面
Follow 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;
NoFollow命令:告诉搜索引擎不允许从此页找到链接、拒绝其继续访问。
Robots Meta 标签的缺省值是Index和Follow;

 根据以上的命令,我们就有了一下的四种组合:

<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">

7.关于 rel="nofollow"

将"nofollow"放在超链接中,告诉搜索引擎不要抓取特定的链接。
如某博客上有垃圾评论:灌水

- - - The END - - -
  • 文章作者:谭先生
  • 版权所有:文章转载时,注明出处即可!
  • 本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!
  • Last Modified: August 13, 2021
    Archives QR Code Tip
    QR Code for this page
    Tipping QR Code
    阅读:520