教你如何配置一套强大的防火墙——iptabels配置详解(一) -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    今天我来带领大家给自己的服务器搭建一套强大的防火墙!废话不多说,我们开始吧~

啥是iptables?

    ipbtales是集成再Linux内核中的一套防火墙软件,

教你如何配置一套强大的防火墙——iptabels配置详解(一)

。它能够对外界发过来的在进入我们的系统之前,进行一系列的筛选,我们可以自己定义筛选规则,决定哪些数据包可以进入我们的电脑,哪些数据包不允许进入。从而能够使我们的服务器更加安全地运行在公网的环境中。

    下面大家一起跟我动手,在实践中掌握知识。

动手前的准备工作

    首先你需要找两台主机,一台当作客户机,一台当作服务器。让这两台主机处于同一个局域网中。

    然后咱们在服务器上装一个httpd服务器,在httpd服务器中咱们放一个index.html作为我们的一个网页。

    PS:httpd服务器的搭建请移步至http://jingyan.baidu.com/article/64d05a025cdf69de55f73be5.html

    ok,服务器和客户机搭建完成了,我的服务器的IP是192.168.100.1,客户机的IP是192.168.100.2。

    准备工作到此就完成啦!接下来我们先一起做一个简单的ipbtales配置。

做一个iptables的HelloWorld

    首先,我们在客户机上用一个Linux压力测试的命令对服务器发送大量的请求:

<code class="hljs mel">//对服务器并发3000个请求,并每次增加3000个请求[root@Svr107 bin]# ab -n 3000 -c 3000 http://192.168.100.1///返回结果如下:This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking www.twioo.com (be patient)Completed 300 requestsCompleted 600 requestsCompleted 900 requestsCompleted 1200 requestsCompleted 1500 requestsCompleted 1800 requestsCompleted 2100 requestsCompleted 2400 requestsCompleted 2700 requestsCompleted 3000 requestsFinished 3000 requests</code>

    PS:ab命令的详细介绍请移步至http://blog.chinaunix.net/uid-20382003-id-3032167.html

    接下来我们进入服务器,看看当前服务器的负载情况

    通过netstat命令可以查看到当前所有请求我们服务器的ip:

<code class="hljs mel"><code class="hljs cs">//查看当前服务器的负载情况[root@iZ28st035lsZ init.d]# netstat//返回结果Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address               Foreign Address             State      tcp        0      0 115.28.217.42:http          218.2.216.4:54823           SYN_RECV    tcp        0      0 115.28.217.42:http          218.2.216.4:54818           SYN_RECV    tcp        0      0 115.28.217.42:http          218.2.216.4:54817           SYN_RECV    …………………………………………………………//其实下面还有好多ip,这里就省略了</code></code>

    通过netstat命令,我们看到,服务器被一个客户机大量的请求,

电脑资料

教你如何配置一套强大的防火墙——iptabels配置详解(一)》(https://www.unjs.com)。

    当然,对于一台服务器来说,这种被一台主机大量的请求的情况是非常危险的,服务器的内存、带宽很快会被一台主机占据,从而导致其他主机无法再请求这台服务器,这也是 攻击的一般手段。那么,我们该如何预防呢?

    办法如下:当我们发现有一个ip请求服务器的次数异常大时,我们可以限制这个ip的请求数,加入最大请求数设置为10,那么当这个ip同时发送10个请求的时候,防火墙就会把它拒绝。

<code class="hljs mel"><code class="hljs cs"><code class="hljs lasso">//这条命令的意思是:在iptables中增加一条规则,限制攻击者ip的最大访问次数,如果超过这个次数,就会被拒绝访问//-I表示这条规则插在iptables所有规则的最前面,因此它有最高的优先级;//-p tcp表示数据包访问服务器时所使用的应用层协议是tcp//--dport 80表示对访问服务器80端口的数据包进行拒绝iptables -I INPUT -p tcp --dport 80 -s xxx.XX.XX.XX(攻击者ip) -m connlimit-above 10 -j REJECT</code></code></code>

    好了,当我们设置好iptabled规则之后,再次让客户机向服务器同时并发1000000个请求,此时看到Connection refused,请求被服务器拒绝了。

    如果再将客户机的并发请求改成5,此时能够请求服务器,不报错了

<code class="hljs mel"><code class="hljs cs"><code class="hljs lasso"><code class="hljs ruby">[root@Svr107 bin]# ab -n 3000 -c 5</code></code></code></code>

    好了,一个HelloWorld就完成了,接下来我们一起系统性的学习一下ipbtales的配置。

最新文章