首页 > 建站/维护 > linux iptables防火墙如何禁止指定IP访问
2015
08-01

linux iptables防火墙如何禁止指定IP访问


一般来说网站都是流量越多就越开心,不过也不是所有流量都这么受欢迎的。比如说攻击你的流量,再比如说采集器的流量,这些流量对你的网站没半点好处,除了拖累你的服务器,还白白占用你大量的带宽,更是影响正常访客的访问,这时候,我们就要对这些流量进行限制了。下面来自一位博主的经验,看看他是如何利用linux iptables防火墙禁止指定IP访问的。

linux iptables防火墙如何禁止指定IP访问

林忠周博客在2015年7月12日正式上线了,但是上线直到到现在,百度才索引了3个页面。可以说是非常之慢慢慢慢慢…了!结合之前做网站的一些经历以及自己的SEO经验,没有理由这么慢的,也为这个事情请教了很多大神帮忙查看,得出一个结果——百度收录比以前慢了。

但是在折腾这个事情的过程中,分析了下网站日志,发现了大量Baiduspider的404,当时我就惊奇!我这个站是新站,没有换过模板,也没有生成过这些页面。但是为啥有这么多404被抓取?

linux iptables防火墙如何禁止指定IP访问

仔细查看发现404的都是来自180.97.35.*这个IP段,后面用nslookup查了一下,这个并不是百度蜘蛛的IP

linux iptables防火墙如何禁止指定IP访问

后面通过查阅相关资料,发现网站被采集了。林忠周博客用的是VPS,配置不是土豪级别的,就算是土豪级别也没必要受这个无规则的采集。所以就索性禁止这个IP段访问,下面分享下操作的过程

linux iptables防火墙如何禁止指定IP访问

方法:过滤一些IP访问本服务器

要封停一个IP,使用下面这条命令:

代码如下:

iptables -I INPUT -s ***.***.***.*** -j DROP

要解封一个IP,使用下面这条命令:
代码如下:
iptables -D INPUT -s ***.***.***.*** -j DROP
参数-I是表示Insert(添加),-D表示Delete(删除)。后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。
此外,还可以使用下面的命令来查看当前的IP规则表:
代码如下:
iptables -list
比如现在要将180.97.35.36这个IP封杀,就输入:
代码如下:
iptables -I INPUT -s 180.97.35.36 -j DROP
要解封则将-I换成-D即可,前提是iptables已经有这条记录。如果要想清空封掉的IP地址,可以输入:
代码如下:
iptables -flush
要添加IP段到封停列表中使用下面的命令:
代码如下:
iptables -I INPUT -s 180.97.35.0/24 -j DROP
其实也就是将单个IP封停的IP部分换成了Linux的IP段表达式。关于IP段表达式网上有很多详细解说的,我这里也参阅了一下

iptables只是三种ip段,
封64.0.0.0—64.255.255.255 ip段的方法是在源ip里输入,64.0.0.0/8;
封64.64.0.0—64.64.255.255 ip段的方法是在源ip里输入,64.64.0.0/16;
封64.64.64.0—64.64.64.255 ip段的方法是在源ip里输入,64.64.64.0/24;

添加完成之后,用service iptables status可以查看到iptables服务的当前状态。

但是即使服务运行了,防火墙也不一定起作用,你还得看防火墙规则的设置 iptables -L
在此说一下关于启动和关闭防火墙的命令:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

本文由林忠周博客(微信/QQ号:873972816)投稿!