基于linux平台的WEB安全技术研究 - 图文(6)

2019-04-01 16:28

netfilter 组件也称为 内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成, 这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为 用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。 除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要从 netfilter.org 下载该工具并安装使用它。

下图是信息包过滤的过程。

图3.2.1信息过滤过程

3.2.3 iptables规则构思 1. 初始化工作

在shell提示符 # 下打入 iptables -F iptables -X iptables -t nat -F iptables -t nat -X 以上每一个命令都有它确切的含义。一般设置iptables过滤表之前,首先要清除所有以前设置的规则,这就是对防火墙过滤表的初始化。

2.设置规则 (1)拒绝一切连接

第23页 共48 页

iptables -P INPUT DROP 这一条命令将会构建一个非常“安全”的防火墙,因为它将所有从网络进入机器的数据丢弃(drop)了。这是给防火墙设置默认规则。当进入计算机的数据,不匹配任何一个条件时,那么就由默认规则来处理这个数据----drop掉,不给发送方任何应答。 (2)防止ping

如果黑客用namp工具对你的电脑进行端口扫描,正常的拒绝ping返回信息会提示黑客,你的计算机处于防火墙的保护之中。为了不让黑客获取更多服务器信息,我们可以设置如下规则:

iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable 这样的设置之后,黑客虽然能扫描出服务器所开放的端口,但是他却很难知道,服务器处在防火墙的保护之中。如果服务器只运行了ftp并且仅仅对局域网内部访问,黑客就很难知道服务器是否运行了ftp。 (3)开放服务器端口

这一句也就是将服务器上的80端口对外开放了,这样internet上的其他人就能通过80端口访问你的Web服务器了。

iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT (4)用iptables来防止web服务器被CC攻击

? 控制单个IP的最大并发连接数

iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j REJECT #允许单个IP的最大连接数为 30 ? 控制单个IP在一定的时间(比如60秒)内允许新建立的连接数

第24页 共48 页

iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –update –seconds 60 –hitcount 30 -j REJECT iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –set -j ACCEPT #单个IP在60秒内只允许最多新建30个连接 3.2.4编写脚本

通过编写一个shell脚本达到方便服务器防火墙管理工作。 首先需要建立一个脚本文件 $ sudo vi iptables.sh 然后添加以下内容: #!/bin/bash # define const here Open_ports=\自己机器对外开放的端口 Allow_ports=\的数据可以进入自己机器的端口 #init iptables -F iptables -X iptables -t nat -F iptables -t nat -X # define ruler so that some data can come in. for Port in \iptables -A INPUT -i ppp0 -p tcp --sport $Port -j ACCEPT iptables -A INPUT -i ppp0 -p udp --sport $Port -j ACCEPT done for Port in \第25页 共48 页

iptables -A INPUT -i ppp0 -p tcp --dport $Port -j ACCEPT iptables -A INPUT -i ppp0 -p udp --dport $Port -j ACCEPT done # This is the last ruler , it can make you firewall better iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable # CC to prevent attacks iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j REJECT iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –update –seconds 60 –hitcount 30 -j REJECT iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –set -j ACCEPT 这个脚本有五个部分:

第一部分是定义一些端口:访问服务器的“Open_ports”端口的数据,允许进入;来源是\端口的数据,也能够进入。

第二部分是iptables的初始化。 第三部分是对定义的端口具体的操作。

如果以后服务器需求发生了一些变化,比如,需要给服务器加上了一个ftp服务器,那么只要在第一部分\的定义中,将ftp对应的20与21端口加上去就行了。

第四部分是用来给那些尝试扫描服务器的黑客的一个欺骗性的回答。

第五部分则是用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。

然后赋予权限给脚本: $ sudo chomd 700 iptables.sh $ sudo ./ iptables.sh 第26页 共48 页

3.3 Apache服务器安全模型

3.3.1 Apache服务器简介

Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,Perl/Python等解释器可被编译到服务器中。

Apache支持许多特性,大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持Perl,Python, Tcl, 和 PHP。流行的认证模块包括 mod_access, mod_auth 和 mod_digest。其他的例子有 SSL 和 TLS 支持 (mod_ssl), proxy 模块,很有用的URL重写(由 mod_rewrite 实现),定制日志文件 (mod_log_config),以及过滤支持(mod_include 和 mod_ext_filter)。Apache日志可以通过网页浏览器使用免费的脚本AWStats或Visitors来进行分析。

3.3.2 Apache服务器的安全配置 1.安装Apache

要想让Apache的性能最好,那么第一步要做到的是:选择合适的MPM。 Apache有3个MPM,它们分别是:event、prefork和worker。worker是Apache2版本中新开发的MPM,速度比prefork快很多。而且,由于使用多线程进行访问处理,所以能够处理相对海量的请求,而系统资源的占用也要小于基于进程的服务器。worker是Apache 2的主要使用方式。worker有两个比较重要的配置参数,那就是:ThreadsPerChild和MaxClients。 ThreadsPerChild用来控制每个子进程允许建立的线程数,ThreadsPerChild用来控制允许建立的总线程数。我们使用如下命令安装:

$ sudo apt-get install apache2

2.Apache的配置文件

第27页 共48 页


基于linux平台的WEB安全技术研究 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电解质溶液知识点

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: