自打2.4版本以后的Linux内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、NAT等功能。
一般来说, 我们会使用名气比较的大iptables等程序对这个防火墙的规则进行管理。iptables可以灵活的定义防火墙规则, 功能非常强大。但是由此产生的副作用便是配置过于复杂。一向以简单易用著称Ubuntu在它的发行版中,附带了一个相对iptables简单很多的防火墙配置工具:ufw。
ufw默认是没有启用的。也就是说, ubuntu中的端口默认都是开放的。使用如下命令启动ufw:
$sudo ufw default deny $sudo ufw enable
通过第一命令,我们设置默认的规则为allow, 这样除非指明打开的端口, 否则所有端口默认都是关闭的。第二个命令则启动了ufw。如果下次重新启动机器, ufw也会自动启动。
对于大部分防火墙操作来说, 其实无非就是的打开关闭端口。如果要打开SSH服务器的22端口, 我们可以这样:
$sudo ufw allow 22
由于在/etc/services中, 22端口对应的服务名是ssh。所以下面的命令是一样的:
$sudo ufw allow ssh
现在可以通过下面命令来查看防火墙的状态了:
$sudo ufw status Firewall loaded To Action From – —— —- 22:tcp ALLOW Anywhere 22:udp ALLOW Anywhere
我们可以看到, 22端口的tcp和udp协议都打开了。
删除已经添加过的规则:
$sudo ufw delete allow 22
只打开使用tcp/ip协议的22端口:
$sudo ufw allow 22/tcp
打开来自192.168.0.1的tcp请求的80端口:
$sudo ufw allow proto tcp from 192.168.0.1 to any port 22
要关闭防火墙:
$sudu ufw disable
UFW 使用范例:
允许 53 端口 $ sudo ufw allow 53 禁用 53 端口 $ sudo ufw delete allow 53 允许 80 端口 $ sudo ufw allow 80/tcp 禁用 80 端口 $ sudo ufw delete allow 80/tcp 允许 smtp 端口 $ sudo ufw allow smtp 删除 smtp 端口的许可 $ sudo ufw delete allow smtp 允许某特定 IP $ sudo ufw allow from 192.168.254.254 删除上面的规则 $ sudo ufw delete allow from 192.168.254.254
时间: 2024-12-24 22:44:52