Ubuntu下的防火墙工具ufw使用起来还是比较方便的,需要掌握的命令不多。
默认情况下,ufw是没有启用的。也就是说,Ubuntu的端口默认都是开放的,谁都可以访问,这当然不是我们乐得所见的,我们只希望用户可以访问运行于服务器的指定服务。
- 可以通过以下命令来查看防火墙的状态:
(虚拟机安装的时候选择了中文,所以提示都为中文了,v_v~~)
test@frontend:~$ sudo ufw status
状态:不活动
- 启用防火墙:
test@frontend:~$ sudo ufw enable
此命令可能会中断目前的 ssh 连接。要继续吗 (y|n)? y
在系统启动时启用和激活防火墙
test@frontend:~$ sudo ufw status
状态: 激活
- 关闭所有外部访问
本机访问外部正常
test@frontend:~$ sudo ufw default deny
默认的 incoming 策略更改为 “deny”
(请相应地更新你的防火墙规则)
- 只打开使用tcp/ip协议的22端口:
test@frontend:~$ sudo ufw allow 22/tcp
规则已添加
规则已添加 (v6)
test@frontend:~$ sudo ufw status
状态: 激活
至 动作 来自
- -- --
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
如果端口只希望指定网段IP访问,则可以使用以下命令:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22
- 查看规则的编号
这样,我们在删除某一条规则时,就可以通过规则的编号来删除了。
test@frontend:~$ sudo ufw status numbered
状态: 激活
至 动作 来自
- -- --
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp ALLOW IN 192.168.1.0/24
[ 3] 22/tcp (v6) ALLOW IN Anywhere (v6)
- 根据编号删除规则
test@frontend:~$ sudo ufw delete 1
将要删除:
allow 22/tcp
要继续吗 (y|n)? y
规则已删
掌握了这些命令,基本就可以满足日常的操练了。当然,最终的生产环境防火墙,一般都会借助硬件来实现。