如何在Ubuntu Linux服务器上使用ufw阻止IP地址

时间:2020-01-09 14:16:51  来源:igfitidea点击:

如何使用UFW在Ubuntu Linux 12.04/14.04/16.04/18.04/20.04 LTS服务器上管理防火墙。
如何阻止特定的IP地址访问我的服务器。
如何使用ufw阻止IP地址?

UFW(简单防火墙)是iptables的前端,特别适合单服务器或基于主机的防火墙。
它是Ubuntu Linux的默认防火墙配置工具。

UFW是为新系统管理员开发的,并且易于使用。
这是一种创建基于IPv4或IPv6的防火墙以保护服务器的用户友好方法。
让我们看看如何在Ubuntu服务器上使用ufw阻止IP地址。

ufw阻止特定IP地址

语法为:

sudo ufw deny from {ip-address-here} to any

要阻止或拒绝来自192.168.1.5的所有数据包,请执行:

sudo ufw deny from 192.168.1.5 to any

阻止IP地址ufw

我们可以拒绝拒绝来自任何IP的连接,而不是拒绝规则,如下所示:

sudo ufw reject from 192.54.5.7 to any

当您希望另一端(攻击者)知道端口或IP不可达时,可以使用拒绝。
但是,我们将拒绝用于与您根本不希望别人看到的攻击者(主机)的连接。
换句话说,拒绝将拒绝响应发送到源,而拒绝(DROP)目标则什么也不发送。

显示防火墙状态,包括您的规则

验证新添加的规则,执行:

$ sudo ufw status numbered

或者

$ sudo ufw status

UFW防火墙状态

ufw阻止特定的IP和端口号

语法为:

ufw deny from {ip-address-here} to any port {port-number-here}

要将垃圾邮件发送者的IP地址192.54.1.5阻止或拒绝到端口80,请执行:

sudo ufw deny from 192.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     192.54.1.5

ufw拒绝特定的IP,端口号和协议

语法为:

sudo ufw deny proto {tcp|udp} from {ip-address-here} to any port {port-number-here}

例如,将黑客的IP地址192.54.1.1阻止到tcp端口22,请执行:

$ sudo ufw deny proto tcp from 192.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 192.54.1.0/24 to any port 22

如何删除被阻止的IP地址或再次取消阻止IP地址?

语法为:

$ sudo ufw status numbered
$ sudo ufw delete NUM

要删除规则编号4,请执行:

$ sudo ufw delete 4

输出示例:

Deleting:
deny from 192.54.1.5 to any port 80
Proceed with operation (y|n)? y
Rule deleted

提示:UFW不会阻止IP地址

UFW(iptables)规则按出现顺序应用,并且在匹配时检查立即结束。
因此,例如,如果某个规则允许访问tcp端口22(例如,使用" sudo ufw allow 22"),然后又指定了另一个规则来阻止IP地址(例如,使用" ufw deny proto tcp from 192.54.1.1 to any"端口22),则应用访问端口22的规则,而后一个阻止黑客IP地址192.54.1.1的规则则不适用。 一切都与订单有关。 为了避免这样的问题,解决方法:您需要编辑/etc/ufw/before.rules`文件,并添加一个部分以"在需要的行结束后阻止IP地址"部分。

$ 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 192.54.1.0/24 -j DROP

保存并关闭文件。
最后,重新加载防火墙:

$ sudo ufw reload

如下面注释部分所述,我们可以跳过整个过程,并使用以下简单语法:

$ sudo ufw insert 1 deny from {BADIPAddress-HERE}
$ sudo ufw insert 1 deny from 178.137.80.191 comment 'block spammer'
$ sudo ufw insert 1 deny from 192.54.1.0/24 comment 'Block DoS attack subnet'