Linux-利用iptables限制多個IP訪問你的伺服器
前言
在Linux核心上,netfilter是負責資料包過濾、網路地址轉換(NAT)和基於協議型別的連線跟蹤等功能的一個子系統,這個子系統包含一些資訊包過濾表組成,這些表包含核心用來控制資訊包過濾處理的規則集。iptables是一個管理netfilter的工具。
多個連續IP操作
1、拆分成多條命令執行
iptables -A INPUT 192.168.122.2 -j ACCEPT iptables -A INPUT 192.168.122.3 -j ACCEPT iptables -A INPUT 192.168.122.4 -j ACCEPT iptables -A INPUT 192.168.122.5 -j ACCEPT ....
這種方式需要寫很多條命令,而且會導致iptables的表很長不好管理,而且量多了也會很小很小地影響效能(可以忽略不計)。
2、對一個IP段的IP進行訪問控制,可以根據IP/MASK的形式進行控制
iptables -A INPUT 192.168.122.0/24 -j ACCEPT
這種方式需要針對IP範圍,計算出指定的原始碼,不靈活。(雖然很多使用為了方便都是使用這種方法,但是過多地授權會存在安全隱患)
3、iptables有很多個模組,其中iprange就是用來專門處理連續IP段的訪問控制的
iptables -A INPUT -m iprange --src-range 192.168.122.2-192.168.122.34 -j ACCEPT #匹配源IP
iptables -A INPUT -m iprange --dest-range 8.8.8.2-8.8.8.22 -j DROP #匹配目標IP
這種方式比較靈活,不需要去計算掩碼是多少,直接給出範圍就可以了。
總結
目前官方好像沒有支援不連續的IP,也有人添加了模組來支援不連續IP。
個人覺得如果要管理好iptables列表,還是要先進行整理一下,再進行限制,需要用到連續的IP就用上面的方式,不連續的還是老老實實寫多條命令;而且機器多了還要安裝模組,有可能影響系統的穩定性。