Ubuntu Server系列各项服务的安装和维护 Apache安全
2011-04-10 14:53
555 查看
网络知识博大精深,必须好好继续深入学习。
1、必须随时注意APACHE的安全补丁
命令:
Sudo apt-get update && sudo apt-get upgrade
Sudo apt-get dist-upgrade
2、
隐藏敏感信息
使用ServerTokens指令,来告诉APACHE我们需要那些HTTP头,该指令作用于整个服务器,并非专针对某虚拟主机。
ServerTokens Prod Server:Apache
ServerTokens Major Server:Apache/2
ServerTokens Minor Server:Apache/2.0
ServerTokens Min Server:Apache/2.0.41
ServerTokens OS Server:Apache/2.0.41(Windows)
ServerTokens Full Server:Apache/2.0.41(Windows)PHP/5.2/MyMod
3、 不要以root身份运行apache
查看apache使用者的命令:
Ps auxf | grep apache
检查APACHE配置文件,查看APACHE所在用户组,是否为www-data
命令:
同时检查www-data用户组是否存在于系统中
命令:
Cat /etc/group | grep www
Cat /etc/passwd|grep www
加入不存在则手工添加用户组
命令:
Sudo groupadd www-data
Sudo useradd –g www-data www-data
最后需要重启APACHE服务器
4、 密码认证
可以分为:基本认证(使用明文密码)、摘要式认证(使用MD5加密密码)
基本认证
(1)首先必须让APACHE能读取.htaccess文件,修改配置文件
<Directory /var/www/blog.mytest.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig //注意:AuthConfig是启动关键
Order allow,deny
allow from all
</Directory>
(2) 重新加载APACHE
(3)使用htpasswd命令来创建认证文件
命令:
Sudo htpasswd –bc private.password usrname password
这段指令创建了一个文件private.passwords,并向该文件写入了一个认证信息,用户名:username,密码:password
(4)、 在private目录下创建一个.htaccess文件,在这个文件中将认证指定为刚才创建的private.passwords
目录:
Sudo mkdir /var/www/blog.mytest.com/private
Cd /var/www/blog.mytest.com/private
Sudo nano .htaccess
(5)、 在.htaccess中添加下列内容
AuthName "Password Needed"
AuthType Basic
AuthUserFile /var/www/blog.mytest.com/auth/private.passwords
Require valid-user
(6)测试
摘要式认证
(1)、 启用该模块
命令:
Sudo a2enmod auth_digest
Sudo /etc/init.d/apache2 restart
(2)、 创建报保护的目录,并创建.htaccess文件
在.htaccess中写入如下信息
AuthTpye Digest
AuthName "Please Give Your Password"
AuthDigestDomain /var/www/blog.mytest.com/private1
AuthUserFile /var/www/blog.mytest.com/authdigest.passwords
require valid-user
(3)、 使用htdigest命令来创建认证文件
命令:
Cd /var/www/blog.mytest.com/private1
Sudo htdigets –c digest.passwords “Please Give Your Password” username
5、检查文件权限
.htpasswd 640
.htaccess 644
PHP 600
重要文件 400
APCHE配置文件中
Option FollowSymLinks //禁止APACHE访问web root网页根目录以外的文件
AllowOverride None //禁止APACHE读取.htaccess文件
6 关闭不使用的模块
命令:
Sudo a2dismod
7、DdoS攻击
APACHE自带了mod-evasive模块,可以很大程度上放置DdoS攻击。
1、 mod_evasive工作原理
1.1 查看“临时黑名单”中是否有该客户机的IP
1.2 将该客户机的IP和请求的URI一起,HASH为一个KEY,然后去找HASH表,查看在过去1秒内,这台客户机是否多次请求同一页面
1.3 将客户机的IP地址HASH为一个KEY,然后去找HASH表,查看这台客户机在过去的一秒内是否请求了超过50个链接。
如果符合以上任意一条,则返回403错误。
2、 mod_evasive安装
命令:
Sudo apt-get install libapache2-mod-evasive
3、 mod-evasive的配置
创建一个配置文件,并输入配置信息
命令:
Sudo nano /etc /apache2/conf.d/evasive
<IfModule mod_evasive20.c>
DOSHashTableSize 3097 //定义了HASH表的大小
DOSPageCount 2 //定义了客户机访问同一页面的时间间隔
DOSSiteCount 50 //允许客户机对全站同时进行访问的并发数
DOSPageInterval 1 //定义网页访问计数的默认间隔时间
DOSSiteInterval 1 //定义访问计数的默认间隔时间
DOSBlockingPeriod 10 //定义阻止客户机访问的时间长短
#Other
DOSEmailNotify flylxb@163.com //有黑名单生成时的通知邮件
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" //
DOSLogDir "/var/lock/mod_evasive" //目录日志
#White List
DOSWhitelist 127.0.0.1
DOSWhitelist 127.0.0.*
DOSWhitelist 192.168.*.*
</IfModule>
4、 攻击测试
APACHE自带测试程序
命令:
Cd /usr/share/doc/libapache2-mod-evasive/examples
Perl test.pl
1、必须随时注意APACHE的安全补丁
命令:
Sudo apt-get update && sudo apt-get upgrade
Sudo apt-get dist-upgrade
2、
隐藏敏感信息
使用ServerTokens指令,来告诉APACHE我们需要那些HTTP头,该指令作用于整个服务器,并非专针对某虚拟主机。
ServerTokens Prod Server:Apache
ServerTokens Major Server:Apache/2
ServerTokens Minor Server:Apache/2.0
ServerTokens Min Server:Apache/2.0.41
ServerTokens OS Server:Apache/2.0.41(Windows)
ServerTokens Full Server:Apache/2.0.41(Windows)PHP/5.2/MyMod
3、 不要以root身份运行apache
查看apache使用者的命令:
Ps auxf | grep apache
检查APACHE配置文件,查看APACHE所在用户组,是否为www-data
命令:
同时检查www-data用户组是否存在于系统中
命令:
Cat /etc/group | grep www
Cat /etc/passwd|grep www
加入不存在则手工添加用户组
命令:
Sudo groupadd www-data
Sudo useradd –g www-data www-data
最后需要重启APACHE服务器
4、 密码认证
可以分为:基本认证(使用明文密码)、摘要式认证(使用MD5加密密码)
基本认证
(1)首先必须让APACHE能读取.htaccess文件,修改配置文件
<Directory /var/www/blog.mytest.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig //注意:AuthConfig是启动关键
Order allow,deny
allow from all
</Directory>
(2) 重新加载APACHE
(3)使用htpasswd命令来创建认证文件
命令:
Sudo htpasswd –bc private.password usrname password
这段指令创建了一个文件private.passwords,并向该文件写入了一个认证信息,用户名:username,密码:password
(4)、 在private目录下创建一个.htaccess文件,在这个文件中将认证指定为刚才创建的private.passwords
目录:
Sudo mkdir /var/www/blog.mytest.com/private
Cd /var/www/blog.mytest.com/private
Sudo nano .htaccess
(5)、 在.htaccess中添加下列内容
AuthName "Password Needed"
AuthType Basic
AuthUserFile /var/www/blog.mytest.com/auth/private.passwords
Require valid-user
(6)测试
摘要式认证
(1)、 启用该模块
命令:
Sudo a2enmod auth_digest
Sudo /etc/init.d/apache2 restart
(2)、 创建报保护的目录,并创建.htaccess文件
在.htaccess中写入如下信息
AuthTpye Digest
AuthName "Please Give Your Password"
AuthDigestDomain /var/www/blog.mytest.com/private1
AuthUserFile /var/www/blog.mytest.com/authdigest.passwords
require valid-user
(3)、 使用htdigest命令来创建认证文件
命令:
Cd /var/www/blog.mytest.com/private1
Sudo htdigets –c digest.passwords “Please Give Your Password” username
5、检查文件权限
.htpasswd 640
.htaccess 644
PHP 600
重要文件 400
APCHE配置文件中
Option FollowSymLinks //禁止APACHE访问web root网页根目录以外的文件
AllowOverride None //禁止APACHE读取.htaccess文件
6 关闭不使用的模块
命令:
Sudo a2dismod
7、DdoS攻击
APACHE自带了mod-evasive模块,可以很大程度上放置DdoS攻击。
1、 mod_evasive工作原理
1.1 查看“临时黑名单”中是否有该客户机的IP
1.2 将该客户机的IP和请求的URI一起,HASH为一个KEY,然后去找HASH表,查看在过去1秒内,这台客户机是否多次请求同一页面
1.3 将客户机的IP地址HASH为一个KEY,然后去找HASH表,查看这台客户机在过去的一秒内是否请求了超过50个链接。
如果符合以上任意一条,则返回403错误。
2、 mod_evasive安装
命令:
Sudo apt-get install libapache2-mod-evasive
3、 mod-evasive的配置
创建一个配置文件,并输入配置信息
命令:
Sudo nano /etc /apache2/conf.d/evasive
<IfModule mod_evasive20.c>
DOSHashTableSize 3097 //定义了HASH表的大小
DOSPageCount 2 //定义了客户机访问同一页面的时间间隔
DOSSiteCount 50 //允许客户机对全站同时进行访问的并发数
DOSPageInterval 1 //定义网页访问计数的默认间隔时间
DOSSiteInterval 1 //定义访问计数的默认间隔时间
DOSBlockingPeriod 10 //定义阻止客户机访问的时间长短
#Other
DOSEmailNotify flylxb@163.com //有黑名单生成时的通知邮件
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" //
DOSLogDir "/var/lock/mod_evasive" //目录日志
#White List
DOSWhitelist 127.0.0.1
DOSWhitelist 127.0.0.*
DOSWhitelist 192.168.*.*
</IfModule>
4、 攻击测试
APACHE自带测试程序
命令:
Cd /usr/share/doc/libapache2-mod-evasive/examples
Perl test.pl
相关文章推荐
- Ubuntu Server系列各项服务的安装和维护 Apache压力测试
- Ubuntu Server系列各项服务的安装和维护 Apache部分
- Ubuntu Server系列各项服务的安装和维护 MySQL的安装
- Ubuntu Server系列各项服务的安装和维护 PHP的配置
- Ubuntu Server系列各项服务的安装和维护 Apache性能优化
- Ubuntu Server 14.04 安装+安全Web服务器(linux+apache+mysql+php)搭建流程(更新)
- 在ubuntu server 环境安装 vnc4server 服务和xfce 图形环境
- Ubuntu安装Apache,PHP,MySQL,PHPMyAdmin,SSH服务
- [置顶] Ubuntu 14.04 安装svn server和Apache
- wampserver变橙色,apache 服务无法启动!问题解决小记(安装失败亦可参考)
- Ubuntu Server安装Apache HBase
- ubuntu server 16.04的安装 以及配置网络还有ssh服务
- Ubuntu server下面的openssh server服务安装试玩
- Ubuntu 安装SSH Server 服务端口号22
- RHCE 系列(八):在 Apache 上使用网络安全服务(NSS)实现 HTTPS
- Ubuntu Server 下 Apache的安装和设置
- Apache HTTP Server 2.4 绿色版 安装成系统服务
- Ubuntu Server安装Apache Hadoop
- 如何在ubuntu server 10.04 安装jboss4.2.3GA服务?
- Ubuntu下安装配置Apache http server