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
- ----------------
来源: http://www.bubuko.com/infodetail-3360870.html