Ubuntu Server系列各项服务的安装和维护 Apache安全

网络知识博大精深,必须好好继续深刻学习。
web


一、必须随时注意APACHE的安全补丁apache

命令:安全

Sudo apt-get update && sudo apt-get upgrade服务器

Sudo apt-get dist-upgrade网络



二、 隐藏敏感信息

使用ServerTokens指令,来告诉APACHE咱们须要那些HTTP头,该指令做用于整个服务器,并不是专针对某虚拟主机。并发

ServerTokens Prod        Server:Apacheide

ServerTokens Major      Server:Apache/2学习

ServerTokens Minor      Server:Apache/2.0测试

ServerTokens Min        Server:Apache/2.0.41ui

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服务器

 

四、 密码认证

能够分为:基本认证(使用明文密码)、摘要式认证(使用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



五、检查文件权限

.htpasswd              640

.htaccess         644

PHP               600

重要文件      400

APCHE配置文件中

Option FollowSymLinks              //禁止APACHE访问web root网页根目录之外的文件

AllowOverride None            //禁止APACHE读取.htaccess文件


6 关闭不使用的模块

命令:

Sudo a2dismod



七、DdoS攻击

APACHE自带了mod-evasive模块,能够很大程度上放置DdoS攻击。

一、 mod_evasive工做原理

1.1   查看“临时黑名单”中是否有该客户机的IP

1.2   将该客户机的IP和请求的URI一块儿,HASH为一个KEY,而后去找HASH表,查看在过去1秒内,这台客户机是否屡次请求同一页面

1.3   将客户机的IP地址HASH为一个KEY,而后去找HASH表,查看这台客户机在过去的一秒内是否请求了超过50个连接。

若是符合以上任意一条,则返回403错误。

二、 mod_evasive安装

命令:

Sudo apt-get install libapache2-mod-evasive


三、 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>

四、 攻击测试

APACHE自带测试程序

命令:

Cd /usr/share/doc/libapache2-mod-evasive/examples

Perl test.pl

相关文章
相关标签/搜索