前言

熟悉Linux系统的朋友,都应该知道系统防火墙的威力,我们一般在网络的世界里,只会开放某些端口进行对外服务。但是开放也意味着会受到攻击,如何降低风险,这里将分享一点知识给大家,希望大家喜欢。




iptables禁止telnet规则 iptables禁止ip段_源地址

让我们加把锁



实际需求

为了更形象讲解好处,我以我的两个实际需求例子来说明限制IP的好处。

  • 需求1:由于我所在的办公室有固定的出口IP,这样的话,就方便我限制IP登录某些公网IP。
  • 需求2:我要开放A服务器给某些内网其他服务器IP才能访问。

那么怎么做呢?这里以CentOS6为例,注意我这里默认的防火墙是INPUT是拒绝的。

iptables 防火墙指定源地址

1.我们打开系统防火墙规则配置文件,直接加规则

vim /etc/sysconfig/iptables

或者直接用iptables命令直接操作

2.在新的规则加上通过参数--source/--src/-s来指定源地址(这里的/表示或者的意思)

-A INPUT -s 10.4.17.0/24  -j ACCEPT

通过--source/--src/-s来指定源地址(这里的/表示或者的意思)

3.可以使用以下几种方法来指定目的地址:

a. 使用完整的域名,如"www.baidu.com";

b. 使用ip地址,如"192.168.1.1";

c. 用x.x.x.x/x.x.x.x指定一个网络地址,如"192.168.1.0/255.255.255.0";

d. 用x.x.x.x/x指定一个网络地址,如"192.168.1.0/24"这里的24表明了子网掩码的有效位数,这是 UNIX环境中通常使用的表示方法;

e. 缺省的子网掩码数是32,也就是说指定192.168.1.1等效于192.168.1.1/32。

IP后加个掩码的位数/8(16,24,32)

  • A类IP地址的默认子网掩码为255.0.0.0(由于255相当于二进制的8位1,所以也缩写成“/8”,表示网络号占了8位);
  • B类的为255.255.0.0(/16);
  • C类的为255.255.255.0(/24)。
  • /30就是255.255.255.252。
  • /32就是255.255.255.255。

例子

  • 封单个IP的命令是:
# iptables -I INPUT -s 211.1.0.0 -j DROP
  • 封IP段的命令是:(如封掉211.1.0.0 到 211.10.0.0 IP段)
# iptables -I INPUT -s 211.1.0.0/16 -j DROP# iptables -I INPUT -s 211.2.0.0/16 -j DROP# iptables -I INPUT -s 211.3.0.0/16 -j DROP这里省略下面的内容
  • 封整个段的命令是:(如封掉 211.0.0.0 - 211.255.255.255)
# iptables -I INPUT -s 211.0.0.0/8 -j DROP
  • 封几个段的命令是:(如封掉 061.037.080.000->061.037.081.255)
# iptables -I INPUT -s 61.37.80.0/24 -j DROP# iptables -I INPUT -s 61.37.81.0/24 -j DROP

总结

在防火墙默认INPUT进来的数据是拒绝了,加上下面开放的规则,就可以实现对指定IP/IP网段,才允许访问主机的所有端口。

# vim /etc/sysconfig/iptables#省略防火墙其他规则,加上这条规则-A INPUT -s 10.0.0.0/8  -j ACCEPT

重启防火墙

# service iptables restart