UFW(Uncomplicated Firewall)是一个iptables的前端应用程序,尤其适合作为单台服务器或主机的防火墙。它已成为Ubuntu Linux系统默认的防火墙配置工具。对于系统管理员来讲,UFW工具真是简单易用。它是一种创建基于IPv4或IPv6防火墙的快捷方法。
一、拦截特定IP地址
语法:
sudo ufw deny from {ip-address-here} to any
为拦截或拒绝来自192.168.1.5的所有数据包,可以输入:
sudo ufw deny from 192.168.1.5 to any
显示包含已设规则的防火墙状态
为验证新添加的规则,输入:
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、端口以及协议
语法是:
sudo ufw deny proto {tcp|udp} from {ip-address-here} to any port {port-number-here}
例如,阻断黑客IP地址202.54.1.1访问tcp 22端口(FTP协议),可以输入:
sudo ufw deny proto tcp from 202.54.1.1 to any port 22 sudo ufw status numbered
UFW拦截子网
语法是类似的:
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的规则,输入:
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)规则的匹配基于规则出现的顺序,一旦匹配某个规则,检查便会停止。因此,如果某个规则允许访问TCP端口22(如使用udo ufw allow 22),后面另一个规则指示拦截某个IP地址(如使用 ufw deny proto tcp from 202.54.1.1 to any port 22)。最终,允许访问TCP端口22的规则会被使用,而后一个拦截黑客IP地址 202.54.1.1 却没有被使用。这都是由于规则的顺序造成的。为避免这类问题,你需要编辑 /etc/ufw/before.rules文件,在“# End required lines”之后"Block an IP Address"添加规则。
sudo vi /etc/ufw/before.rules
查找如下所示的行:
# End required lines
添加规则来拦截黑客或垃圾信息传播者:
# 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
保存并关闭文件。***,让防火墙重新加载配置信息:
sudo ufw reload