熟悉linux系統的朋友,都應該知道系統防火墻的威力,我們一般在網絡的世界里,只會開放某些端口進行對外服務。但是開放也意味著會受到攻擊,如何降低風險,這里將分享一點知識給大家,希望大家喜歡。

讓我們加把鎖
實際需求
為了更形象講解好處,我以我的兩個實際需求例子來說明限制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