使用UFW防火墻攔截特定IP地址
UFW(Uncomplicated Firewall)是一個iptables的前端應用程序,尤其適合作為單臺服務器或主機的防火墻。它已成為Ubuntu Linux系統(tǒng)默認的防火墻配置工具。對于系統(tǒng)管理員來講,UFW工具真是簡單易用。它是一種創(chuàng)建基于IPv4或IPv6防火墻的快捷方法。
一、攔截特定IP地址
語法:
sudo ufw deny from {ip-address-here} to any
為攔截或拒絕來自192.168.1.5的所有數(shù)據(jù)包,可以輸入:
sudo ufw deny from 192.168.1.5 to any
顯示包含已設規(guī)則的防火墻狀態(tài)
為驗證新添加的規(guī)則,輸入:
sudo ufw status numbered
或
sudo ufw status
二、攔截特定IP及端口
語法是:
ufw deny from {ip-address-here} to any port {port-number-here}
為阻斷或拒絕IP地址202.54.1.5訪問80端口的請求
sudo ufw deny from 202.54.1.5 to any port 80
再次使用如下命令進行驗證:
sudo ufw status numbered
輸出示例:
Status: active To Action From -- ------ ---- [ 1] 192.168.1.10 80/tcp ALLOW Anywhere [ 2] 192.168.1.10 22/tcp ALLOW Anywhere [ 3] Anywhere DENY 192.168.1.5 [ 4] 80 DENY IN 202.54.1.5
三、攔截特定IP、端口以及協(xié)議
語法是:
sudo ufw deny proto {tcp|udp} from {ip-address-here} to any port {port-number-here}
例如,阻斷黑客IP地址202.54.1.1訪問tcp 22端口(FTP協(xié)議),可以輸入:
sudo ufw deny proto tcp from 202.54.1.1 to any port 22 sudo ufw status numbered
UFW攔截子網(wǎng)
語法是類似的:
sudo ufw deny proto tcp from sub/net to any port 22 sudo ufw deny proto tcp from 202.54.1.0/24 to any port 22
四、如何刪除被攔截的IP地址或再次放行特定P地址
語法是:
sudo ufw status numbered sudo ufw delete NUM
刪除編號為4的規(guī)則,輸入:
sudo ufw delete 4
輸出示例:
Deleting: deny from 202.54.1.5 to any port 80 Proceed with operation (y|n)? yRule deleted
五、技巧:UFW放行某個IP
UFW(iptables)規(guī)則的匹配基于規(guī)則出現(xiàn)的順序,一旦匹配某個規(guī)則,檢查便會停止。因此,如果某個規(guī)則允許訪問TCP端口22(如使用udo ufw allow 22),后面另一個規(guī)則指示攔截某個IP地址(如使用 ufw deny proto tcp from 202.54.1.1 to any port 22)。最終,允許訪問TCP端口22的規(guī)則會被使用,而后一個攔截黑客IP地址 202.54.1.1 卻沒有被使用。這都是由于規(guī)則的順序造成的。為避免這類問題,你需要編輯 /etc/ufw/before.rules文件,在“# End required lines”之后"Block an IP Address"添加規(guī)則。
sudo vi /etc/ufw/before.rules
查找如下所示的行:
# End required lines
添加規(guī)則來攔截黑客或垃圾信息傳播者:
# Block spammers
-A ufw-before-input -s 178.137.80.191 -j DROP
# Block ip/net (subnet)
-A ufw-before-input -s 202.54.1.0/24 -j DROP
保存并關(guān)閉文件。***,讓防火墻重新加載配置信息:
sudo ufw reload