此文章为原创连载文章,关注公众号,持续更新,欢迎转载,标明来源作者即可。
0x01 前言
安全服务工程师大家应该都知道,对于他的岗位职责你可能会说不就是渗透测试啊、应急响应嘛.....实际上正式一点的企业对于安服的要求是包括了漏洞扫描、安全基线检查、渗透测试、安全加固、日志分析、恶意代码检查、应急响应、安全加固等差不多十个方面的内容的。内容多吗?我也觉得多!
对于基线加固说,不管是对于安服还是安全运营人员来说都是被要求的!接着上回的分享,一起来看看呗!
0x02 Apache与Tomcat的区别
1、apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展。
2、apache和tomcat都可以做为独立的web服务器来运行。但是apache不能解释java程序(jsp,serverlet)
3、Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)
4、两者都是一种容器,只不过发布的东西不同。apache是html容器,功能像IIS一样,tomcat是jsp/servlet容器,用于发布JSP及JAVA的,类似的有IBM的webshere、EBA的Weblogic,sun的JRun等
5、apache和tomcat是独立的,在同一台服务器上可以集成。
(Apache安装啥的就没必要说了叭~)
0x03 日志审核登录
安全基线项说明:设备应配置日志功能,对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。
检测操作步骤:
编辑/etc/httpd/conf/httpd.conf配置文件,设置日志记录文件、记录内容、记录格式。
代码语言:javascript复制LogLevelnotice
ErrorLoglogs/error_log
LogFormat"%h %l %u %t "%r" %>s %b "%{Accept}i""%{Referer}i" "%{User-Agent}i"" combined
CustomLoglogs/access_log combined
备注:
ErrorLog指令设置错误日志文件名和位置。错误日志是最重要的日志文件,Apachehttpd将在这个文件中存放诊断信息和处理请求中出现的错误。若要将错误日志送到Syslog,则设置:ErrorLogsyslog。
CustomLog指令设置访问日志的文件名和位置。访问日志中会记录服务器所处理的所有请求。
LogFormat设置日志格式。LogLevel用于调整记录在错误日志中的信息的详细程度,建议设置为notice。
0x04 禁止访问外部文件
安全基线项说明:禁止Apache访问Web目录之外的任何文件。
检测操作步骤
1、参考配置操作
编辑httpd.conf配置文件
代码语言:javascript复制<Directory/>
OrderDeny,Allow
Denyfrom all
</Directory>
2、补充操作说明
设置可访问目录
代码语言:javascript复制<Directory/web>
OrderAllow,Deny
Allowfrom all
</Directory>
其中/web为网站根目录。
0x05 错误页面处理
安全基线项说明:Apache错误页面重定向
检测操作步骤
(1)修改httpd.conf配置文件:
代码语言:javascript复制ErrorDocument400 /custom400.html
ErrorDocument401 /custom401.html
ErrorDocument403 /custom403.html
ErrorDocument404 /custom404.html
ErrorDocument405 /custom405.html
ErrorDocument500 /custom500.html
Customxxx.html为要设置的错误页面。
(2)重新启动Apache服务
0x06 目录列表访问限制
(1)编辑httpd.conf配置文件
代码语言:javascript复制<Directory"/web">
OptionsFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfrom all
</Directory>
将OptionsIndexes FollowSymLinks中的Indexes去掉,就可以禁止Apache显示该目录结构。Indexes的作用就是当该目录下没有index.html文件时,就显示目录结构。
(2)设置Apache的默认页面,编辑%apache%confhttpd.conf配置文件
代码语言:javascript复制<IfModuledir_module>
DirectoryIndex index.html
</IfModule>
其中index.html即为默认页面,可根据情况改为其它文件。
(3)重新启动Apache服务
0x07 拒绝服务防范
安全基线项说明:拒绝服务防范。
检测操作步骤
(1)编辑httpd.conf配置文件,
Timeout10 KeepAlive On
KeepAliveTimeout15
AcceptFilterhttp data
AcceptFilterhttps data
(2)重新启动Apache服务
0x08 删除无用文件
安全基线项说明:删除缺省安装的无用文件。
检测操作步骤:
删除缺省HTML文件:
代码语言:javascript复制#rm -rf /usr/local/apache2/htdocs/*
删除缺省的CGI脚本:
代码语言:javascript复制#rm –rf /usr/local/apache2/cgi-bin/*
删除Apache说明文件:
代码语言:javascript复制#rm –rf /usr/local/apache2/manual
删除源代码文件:
代码语言:javascript复制#rm -rf /path/to/httpd-2.2.4*
根据安装步骤不同和版本不同,某些目录或文件可能不存在或位置不同。
0x09 隐藏敏感信息(版本号)
安全基线项说明:隐藏Apache的版本号及其它敏感信息。
检测操作步骤:
修改httpd.conf配置文件:
ServerSignatureOff
ServerTokensProd
0x10 更改Apache服务器默认端口
配置操作
代码语言:javascript复制/etc/httpd/conf/httpd.conf
Listen8000
0x11 后记
Apache的相关东西和系统类的相比内容要少很多,主要就是配置文件、日志的分析以及一些关键信息的隐藏。有疑惑的地方,再百度一下分分钟后,你就明白啦~