文档章节

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

梁小泊
 梁小泊
发布于 2011/04/10 14:53
字数 973
阅读 803
收藏 6

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


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

© 著作权归作者所有

梁小泊
粉丝 12
博文 19
码字总数 10187
作品 0
杨浦
技术主管
私信 提问
Linux Ubuntu服务器版操作系统介绍及下载

【赛迪网-IT技术报道】服务器版 -建立在众所周知稳定的 Debian 上, 它的强劲的服务器安装 — 具有浓厚的传统, 性能可靠和可以预见的变化。 集成安全平台 由于您的业务增长, 所以您的网络、...

JavaGG
2009/05/23
2.3K
0
Ubuntu Server系列各项服务的安装和维护 Apache部分

超级强大好用的Ubuntu服务器,不尝试绝对是损失,当然桌面版的Ubuntu使用起来更赞。继续研究ing... 一、搭建APACHE服务器 1、 软件安装 安装命令:sudo apt-get install apache2 这里因为已经...

梁小泊
2011/04/08
503
0
在 ubuntu 搭建需要签名认证的私有 docker registry 仓库

前言 在前面的一篇博客《在 ubuntu 搭建 docker registry 私有仓库》介绍了一种简单的搭建 docker 私有仓库了的方法。但是当时使用的是修改“--insecure-registry”参数的办法,这种办法在局...

hello_cjq
2018/02/23
0
0
几步搭建基于Docker的Tomcat运行环境!

Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装、部署和升级,非...

技术小能手
2018/06/08
0
0
【要闻回顾】OpenContrail 移交 Linux 基金会、TensorFlow 曝安全风险......

导读 本周开源云业内倒是出现一些比较有趣的消息。首先是Deepo项目在GitHub上的爆红。小编简单了解了一下该项目,用“强大”来形容并不为过,其不但能实现快速配置深度学习环境,还支持几乎所...

lq1ns259ej3okyvk4jf
2017/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
6
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部