广州睿东网络科技有限公司是国内最专业的香港空间,云主机,香港VPS,香港服务器租用提供商,专注为国内站长提供高速且稳定的香港空间,云主机,香港VPS,香港服务器租用,欢迎您的选购!
当前位置:首页 -> seo模板 -> ecshop模板

服务安全:古董级Apache,加固实现’百毒不侵’。

云服务器 34℃ 1901评论


孤独的HAT

只写干货,不蹭热点,静心修炼,只写原创!

 

这次不写奇淫技巧了,写一些常用的服务安全配置,渗透也是一样,只有知道基础的东西才能晓得从哪里去入手,类似于知己知彼的感觉。现在很多电商网站和金融网站利用前后端分离处理网页,后期会写一篇针对apache的入侵文章吧,现在积累的知识还不够,最近把各个常用的服务从头来一遍,遍历网络上相关资料,学习进行整理,写文章,所以消耗很多时间,最近心情不是很好,耽搁了不少。

必备知识


linux基础命令

常规的服务配置

源码包安装

本文环境


系统CentOS6.5 x86_64

Apache:httpd-2.2.34.tar.gz

Apache源码包


wget http://apache.website-solution.net/httpd/httpd-2.2.34.tar.gz

tar zxvf httpd-2.2.34.tar.gz

然后开始编译,让apache以worker模式进行工作,默认用prefork模式,效率不高。

依赖安装


yum install zlib zlib-devel gcc-c++ -y
Installed:
gcc-c++.x86_64 0:4.4.7-18.el6 zlib-devel.x86_64 0:1.2.3-29.el6 Dependency Installed: cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-18.el6 gcc.x86_64 0:4.4.7-18.el6 libstdc++-devel.x86_64 0:4.4.7-18.el6 mpfr.x86_64 0:2.4.1-6.el6 ppl.x86_64 0:0.10.2-11.el6 Dependency Updated: libgcc.x86_64 0:4.4.7-18.el6 libgomp.x86_64 0:4.4.7-18.el6 libstdc++.x86_64 0:4.4.7-18.el6

编译


./configure –prefix=/usr/local/httpd-2.2.34
–enable-deflate
–enable-expires
–enable-headers
–enable-modules=most
–enable-so
–with-mpm=worker
–enable-rewrite
make && make install

安装,正常情况下不报错,如果报错可能是你的编译环境没有安装好,更具报错信息自行查找,或者在本文下留言一起解决。

建立链接


ln -s /usr/local/httpd-2.2.34/ /usr/local/httpd

重要首项设置


mkdir /var/html/{test1,test2,test3} -p                                       创建三个文件夹
echo “welcome to my website” > /var/html/test1/index.html   写入一个首页
echo “welcome to my website2” > /var/html/test2/index.html 写入一个首页
useradd -s /sbin/nologin -M httpd                                            创建一个不登陆的用户
cd /usr/local/httpd/conf/ && mv httpd.conf httpd.conf.bak
egrep -v “^$|#” /usr/local/httpd/conf/httpd.conf.bak > httpd.conf    简化文件配置

httpd.conf配置文件详解


ServerRoot “/usr/local/httpd-2.2.34”              # 定义apache的安装目录
Listen 80                                                       # apache默认监听的web端口,没有指定ip的情况下,默认是监听在0.0.0.0
Listen 81                                                       # 在后面配置基于端口的虚拟主机时需要先在此定义好监听端口
Listen 82
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User httpd                                                     # apache的服务用户,再次强调,不要傻到用root身份来运行apache服务
Group httpd                                                   # apache的服务用户组
</IfModule>
</IfModule>
ServerAdmin klion@sec.org                         # 管理员邮箱地址
ServerName 127.0.0.1:80                             # 解决FQDN的问题
<Directory />                                             
Options FollowSymLinks
AllowOverride None
Order deny,allow                                          # 禁止用户直接访问系统根目录
Deny from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php            # 设置主页索引文件
</IfModule>
<FilesMatch “^.ht”>                                  
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog “logs/error_log”                             # apache自身的错误日志存放位置
LogLevel warn                                             # 定义apache日志的报告级别,默认是警告
<IfModule log_config_module>                  
LogFormat “%h %l %u %t ”%r” %>s %b ”%{Referer}i” ”%{User-Agent}i” ”%{X-Forwarded-For}i”” combined
LogFormat “%h %l %u %t ”%r” %>s %b” common
<IfModule logio_module>
LogFormat “%h %l %u %t ”%r” %>s %b ”%{Referer}i” ”%{User-Agent}i” %I %O” combinedio
</IfModule>
CustomLog “logs/access_log” common
</IfModule>
DefaultType text/plain
<IfModule headers_module>
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>                                
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Include conf/extra/httpd-mpm.conf                       # 包含apache扩展配置文件
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-default.conf
<Directory “/var/html/bwapp”>
Options -Indexes -Includes -ExecCGI –FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory “/var/html/dvws”>
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory “/var/html/drupal7”>
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
LoadModule php5_module modules/libphp5.so                    # 该模块在你编译安装完php以后会自动生成并自动加入该配置文件
TraceEnable off                                                                     # 禁用trace方法,防止xss

配置:域名访问的虚拟主机


vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin nana@damaozi.top                                    # 网站管理员邮箱
DocumentRoot “/var/html/test1”                                  # 站点根目录
ServerName damaozi.top                                              # 主域名
ServerAlias www.damaozi.top                                        # 别名,不用可以删掉
ErrorLog “logs/damaozi.top-error_log”                         # 错误日志
CustomLog “logs/damaozi.top-access_log” combined     # 选择日志格式,combined会记录的更详细,方便日后审查
</VirtualHost>

配置:端口访问的虚拟主机


在httpd.conf中指定好监听的端口,然后在httpd-vhosts.conf中写好自己所需的定义方式。

vi /usr/local/httpd/conf/httpd.conf
Listen 81
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost *:81
<VirtualHost *:81>
ServerAdmin nana@damaozi.top 
DocumentRoot “/var/html/test2”
ServerName damaozi.top
ServerAlias www.damaozi.top
ErrorLog “logs/damaozi.top -error_log”
CustomLog “logs/damaozi.top -access_log” combined
</VirtualHost>

配置:IP访问的虚拟主机


本机需要有多个IP才可进行绑定,端口需要与httpd.conf对应起来才可。

vi /usr/local/httpd/conf/httpd.conf
Listen 80
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.10.123:80
<VirtualHost 192.168.10.123:80>
ServerAdmin nana@damaozi.top 
DocumentRoot “/var/html/test3”
ServerName 192.168.10.123
ServerAlias www.damaozi.top
ErrorLog “logs/damaozi.top -error_log”
CustomLog “logs/damaozi.top -access_log” combined
</VirtualHost>

FQDN完整域名


vi /usr/local/httpd/conf/httpd.conf

ServerName 127.0.0.1:80

隐藏版本号


直接进入到源码中删除apache版本的详细信息我们改为IIS8,系统对应为windows server 2012。或者安装完后进入httpd-default.conf修改也可以。

vi include/ap_release.h

修改配置文件:

 #define AP_SERVER_BASEVENDOR “IIS Software Foundation”
 #define AP_SERVER_BASEPROJECT “IIS HTTP Server”
 #define AP_SERVER_BASEPRODUCT “Microsoft-IIS/8.0”
 #define AP_SERVER_MAJORVERSION_NUMBER 8
 #define AP_SERVER_MINORVERSION_NUMBER 0
 #define AP_SERVER_PATCHLEVEL_NUMBER 0
 #define AP_SERVER_DEVBUILD_BOOLEAN 0

注意系统平台和版本号统一

vim  os/unix/os.h
#ifndef PLATFORM

#define PLATFORM “Win 32”

cronlog日志轮询


tar xf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure && make && make install

指定日志格式

vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.10.123:80
<VirtualHost 192.168.10.123:80>
ServerAdmin nana@damaozi.top 
DocumentRoot “/var/html/test3”
ServerName 192.168.10.123
ServerAlias www.damaozi.top
ErrorLog “logs/damaozi.top -error_log”
CustomLog “logs/damaozi.top -access_log” combined
CustomLog “|/usr/local/sbin/cronolog /usr/local/httpd/logs/bwapp-access_%Y%m%d.log” combined
</VirtualHost>

网站目录权限


只在网页上传点可以写,其他的不能写,只可以只读,就像头像上传点,附件上传点给可写就行。

/var/html/test3/
chown -R root.root /var/html/test3/  
find /var/html/test3/ -type f | xargs chmod 644
find /var/html/test3/ -type d | xargs chmod 755
mkdir /var/html/test3/{upload,admin_login} -p
chown -R httpd.httpd /var/html/test3/upload             上传点所属主httpd用户

禁止脚本执行


vi /usr/local/httpd/conf/httpd.conf
<Directory “/var/html/test3/upload”>
<FilesMatch “.(?i:php|php3|php4|php5)$”> i是不区分大小写,防止多种方式上传
Order allow,deny
Deny from all
</FilesMatch>
</Directory>

禁止其他IP访问后台页面


vi /usr/local/httpd/conf/httpd.conf
<Directory “/var/html/test3/admin_login”>            后台地址页面
Order deny,allow
allow from 192.168.3.0/24
deny from all
</Directory>

解析漏洞


vi /usr/local/httpd/conf/httpd.conf
<Directory /var/html/test3/“>                         对应网站根目录
<Files ~ “.(php.|php3.|php4.|php5.)”>
Order Allow,Deny
Deny from all
</Files>
</Directory>

这些配置可以防御一些菜鸟脚本,绰绰有余,根据官方修补自己的漏洞,对于apache的配置,百度也很多,这里只写出一些,也涵盖了大部分,依据大牛指点,真理而得,实践出真知,很多时候,配置服务时不应该只配置好就行,很多安全需要去做,一般小公司都不会注重这些,对于更严重的攻击,最好用更安全的架构和商业化解决方案,利用不同的业务场景编写不同的脚本修补,达到最佳安全。古董级服务也需要十面埋伏一样的安全配置。

前期文章回顾:信息链条:社会工程学渗透查询必备网址大全

END

只写干货,不蹭热点,静心修炼,只写原创。

长按关注我们



投诉
喜欢 (1901)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: