UbuntuHelp:UFW :http://wiki.ubuntu.org.cn/UbuntuHelp:UFW
Ufw使用指南:http://wiki.ubuntu.org.cn/Ufw使用指南
ubuntu ufw防火墙:http://wap.dongnanshan.com/fn.php?s=ubuntu ufw防火墙
UFW要领:通用防火墙规则和命令:https://www.howtoing.com/ufw-essentials-common-firewall-rules-and-commands/
Linux 防火墙:https://blog.csdn.net/freeking101/article/details/70239637

在 Ubuntu 中用 UFW 配置防火墙

1. 说明

自 2.4 版本以后的 Linux 内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、NAT 等功能。

一般来说, 我们会使用名气比较的大 iptables 等程序对这个防火墙的规则进行管理。iptables 可以灵活的定义防火墙规则, 功能非常强大。但是由此产生的副作用便是配置过于复杂。一向以简单易用著称 Ubuntu 在它的发行版中,附带了一个相对iptables 简单很多的防火墙配置工具:ufw 。

ufw 防火墙uncomplicated firewall(不复杂的防火墙)iptables 的接口,旨在简化配置防火墙的过程。 繁琐部分的设置还是需要去到 iptables。虽然 iptables 是一个坚实和灵活的工具,但是初学者可能很难学会如何使用它来正确配置防火墙。如果您希望开始保护网络安全,并且不确定使用哪种工具,UFW 可能是您的最佳选择。

Ubuntu下使用 UFW 配置防火墙是为了简化 iptables 的操作。UFW 是 Ubuntu系统上配置 iptables 防火墙的工具,即 ufw 是一个 iptables 的前端应用程序。UFW 提供一个非常友好的命令用于创建基于 IPV4,IPV6 的防火墙规则。但是,UFW 是没有界面的,就是用命令的那一种,所以,操作起来就不是那么的方便,有人帮它写了个界面,名字就叫做 “Gufw”。
        由于 Ubuntu 下的 iptables 操作起来比较复杂,依赖关系比较多,所以使用 UFW 时可以简化很多操作。当然 Debian 同样适用。无论是桌面版还是服务器版, UFW 的命令行用法是一样的。

2. 安装

Ubuntu 的防火墙默认已安装,如果没有安装,执行以下命令安装
sudo apt-get install ufw查看防火墙状态
sudo ufw status
sudo ufw status numbered  # 按编号显示防火墙版本
sudo ufw version

3. ufw 命令参数说明

ufw 帮助:sudo ufw --help  。更详细说明:man ufw  或者 info ufw

$ sudo ufw --help用法: ufw COMMAND
Commands:enable                          enables the firewalldisable                         disables the firewalldefault ARG                     set default policylogging LEVEL                   set logging to LEVELallow ARGS                      add allow ruledeny ARGS                       add deny rulereject ARGS                     add reject rulelimit ARGS                      add limit ruledelete RULE|NUM                 delete RULEinsert NUM RULE                 insert RULE at NUMroute RULE                      add route RULEroute delete RULE|NUM           delete route RULEroute insert NUM RULE           insert route RULE at NUMreload                          reload firewallreset                           reset firewallstatus                          show firewall statusstatus numbered                 show firewall status as numbered list of RULESstatus verbose                  show verbose firewall statusshow ARG                        show firewall reportversion                         display version informationApplication profile commands:app list                        list application profilesapp info PROFILE                show information on PROFILEapp update PROFILE              update PROFILEapp default ARG                 set default application policy

详细说明( man ufw 或者 info ufw )

[]是代表可选内容。可能需要root权限。
ufw [--dry-run] enable|disable|reload    # 命令[–试运行]激活|关闭|重新载入ufw [--dry-run] default allow|deny|reject [incoming|outgoing]  # 命令[–试运行]默认 允许|阻止|拒绝 [访问本机的规则|向外访问的规则]ufw [--dry-run] logging on|off|LEVEL       # 命令[–试运行]日志 开启|关闭|“级别”
ufw [--dry-run] reset                      # 命令[–试运行]复位
ufw [--dry-run] status [verbose|numbered]  # 命令[–试运行]状态 [详细|被编号的规则]
ufw [--dry-run] show REPORT                # 命令[–试运行]显示 “报告类型”ufw [--dry-run] [delete] [insert NUM] allow|deny|reject|limit  [in|out][log|log-all] PORT[/protocol]
命令[–试运行][删除] [插到“x号规则”之前] 允许|阻止|拒绝|限制 [进|出] [记录新连接|记录所有数据包] “端口” [/“协议”]ufw  [--dry-run]  [delete] [insert NUM] allow|deny|reject|limit [in|out on INTERFACE] [log|log-all] [proto protocol] [from ADDRESS [port PORT]] [to ADDRESS [port PORT]]
命令 [–试运行][删除][插到x号规则之前] 允许|阻止|拒绝|限制 [进|出 基于“什么网络设备”] [协议 “协议”] [来源 “地址” [端口 “端口”]] [目标 “地址” [端口 “端口”]]ufw [--dry-run] delete NUM                      # 命令[–试运行] 删除 “第X号规则”
ufw [--dry-run] app list|info|default|update    # 命令 [–试运行] 程序 清单|信息|默认|更新参数
–version    显示程序版本号
-h , –help  显示帮助信息
–dry-run    不实际运行,只是把涉及的更改显示出来。
enable      激活防火墙,开机时自动启动
disable     关闭防火墙,开机时不启动
reload      重新载入防火墙default allow|deny|reject 方向
方向是指:向内(incoming)|向外(outgoing)。如果更改了默认策略,一些已经存在的规则可能需要手动修改。更多内容看“规则示例”一节。
logging on|off|“级别”  # 切换日志状态。日志记录包使用的是系统日志。“级别”有好几个,默认是低级(low)。详细内容看“日志”一节。
reset [--force]  # 关闭防火墙,并复位至初始安装状态。如果使用–force选项,则忽略确认提示。
status    # 显示防火墙的状态和已经设定的规则。使用status verbose显示更详细的信息。‘anywhere’与‘any’、‘0.0.0.0/0’一个意思。
show “报告类型”  # 显示防火墙运行信息。详细内容看“报告类型”
limit “规则”     # 此命令目前只能用于IPv4。还不支持IPv6.规则示例* 规则可以简写也可以完整表达。简写的规则只能指定端口和(或)协议被允许或阻止。默认是访问本机的规则(incoming)。例如:
ufw allow 53
允许其它机子访问本机53端口,协议包含tcp和udp。* 如果要控制协议,只要加入“/协议”在端口后面就行了。例如:
ufw allow 25/tcp
允许其它机子使用tcp协议访问25端口。* UFW也可以检查 /etc/services文件,明白服务的名字及对应的端口和协议。我们使用服务的名称即可。
ufw allow smtp* UFW同时支持出入口过滤。用户可以使用in或out来指定向内还是向外。如果未指定,默认是in。例如:
ufw allow in http
ufw reject out smtp
ufw deny out to 192.168.1.1
阻止向192.168.1.1发送信息* 用户也可使用完整的规则来指定来源与目的地,还有端口。书写规则基于OpenBSD PF。举例:
ufw deny proto tcp to any port 80
阻止本机用tcp协议在80端口发数据
ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25
This will deny all traffic from the RFC1918 Class A network to tcp port 25 with the address 192.168.0.1.(这条命令目前无法翻译 from 和 to的关系,希望后来者更改)* ufw也可以使用IPv6协议。但要事先在/etc/default/ufw 中设定IPv6为启动状态。举例:
ufw deny proto tcp from 2001:db8::/32 to any port 25
阻止IPv6为2001:db8::/32类型的地址,连接本机25端口* ufw可以连续例举端口号。端口号间必须使用逗号或分号,不能使用空格。“输入端口号”字符数最多不能超过15过(8080:8090算两个字符)。比如允许80,443,8080~8090这几个端口接受tcp传入连接。
ufw allow proto tcp from any to any port 80,443,8080:8090
此例,“输入端口号”字符数为4个。* ufw可以对连接数率进行限制,以防范暴力登录攻击。如果同一个IP地址在30秒之内进行了6次及6次以上的连接,ufw将阻止(deny)该连接。可以查看更多信息。
ufw limit ssh/tcp* 当然有些时候我们想让访问者知道他的访问被拒绝了,而不是保持沉默让他不知道哪出了问题。就使用reject代替deny
ufw reject auth* 默认情况下ufw的所有规则针对所有网络设备(比如网卡1,网卡2,无线网卡1,虚拟网卡1……)。但是我们可以特别指定,某规则在什么网络设备上生效。注意只能使用设备号,不能用别名。比如有线网卡:eth0(你可以使用ifconfig命令查看你现有的网络设备)
ufw allow in on eth0 to any port 80 proto tcp* 要删除规则,只要在命令中加入delete就行了。比如:
ufw deny 80/tcp
要删除条命令建立的规则,使用:
ufw delete deny 80/tcp
当然,也可以使用规则号来进行删除。比如要第3号规则
ufw delete 3
注意,如果你开启IPv6功能。要同时删除IPv4和IPv6的规则(比如:ufw allow 22/tcp),如果用规则号的方式删除可能只删除了一个。* 显示第几号规则,可以使用这样的命令
ufw status numbered(也就是规则号)* 日志功能。如果使用log将记录所有符合规则的新连接,如果使用log-all将记录所有符合规则的数据包。例如,要允许并记录shh(22/tcp)上的新连接:
ufw allow log 22/tcp
更多内容看“日志”一节
特殊例子: 允许RFC1918网络结构访问本机:
ufw allow from 10.0.0.0/8
ufw allow from 172.16.0.0/12
ufw allow from 192.168.0.0/16
最后一条经过测试,范围大约是192.168.0.0~192.168.225.225。当然,涉及很多专业知识,希望有人补充。
远程管理
此章节还未被编辑
应用程序集成管理
* ufw能从 /etc/ufw/applications.d. 中读取应用程序清单。你可以使用命令查看:
ufw app list* 大家可以使用应用程序名字来增加规则。比如
ufw allow <程序名字>
ufw allow CUPS
ufw allow from 192.168.0.0/16 to any app <程序名字>
注意,端口号已经被程序名所对应的策略所包括,不要再重新列举端口号。
* 查看程序名所对应的策略内容,命令:
ufw app into <程序名字>
注意:程序名字是清单上有的才行。程序名字改用用all,可以看全部策略。
* 如果你编辑或者增加了程序清单,你可使用此命令更新防火墙:
ufw app update <程序名字>
程序名字改用用all,则更新整个清单。
* 更新清单同时增加规则可以使用如下命令:
ufw app update –add-new <程序名字>
注意:update –add-new参数的行为由此命令配置:
ufw app default skip|allow|deny
默认是skip,也就是没有设定。
警告:如果程序规则设定为default allow ,将会引起很大的风险。请三思而后行!
日志
ufw支持许多日志级别。默认是低级(low),用户也可以自己指定:
ufw logging on|off|low|medium|high|full* off 就是关闭日志* low 记录与默认策略冲突的封装数据包(记录速度被限制)。记录与规则符合的数据包(没有要求关闭记录的)* medium 记录与默认策略冲突的数据包(包括被规则允许的)、无效数据包、所有新连接。记录速度被限制。* high 同medium,只是没有记录速度限制。附加记录所有数据包(有记录速度限制)。* full 与high等同,只是取消记录限制。
medium 级别及更上级会记录许多内容,有可能短时间内撑爆你的硬盘。特别是用在服务器一类的机器上。

4. 启动、禁用、重置 UFW


sudo ufw enable|disable  # 设置开机 开启/关闭防火墙 (默认设置是 disable )
sudo ufw deny            # 关闭所有外部对本机的访问,但本机访问外部正常。
sudo ufw reset           # 重置防火墙

一般用户,只需如下设置:

sudo apt-get install ufw    # 安装 ufw
sudo ufw enable             # 设置开机启动
sudo ufw default deny       # 设置 ufw 默认为拒绝

以上三条命令已经足够安全了,如果你需要开放某些服务,再使用 sudo ufw allow 开启相应服务即可。

5. 开启/禁用

用法sudo ufw allow|deny [service]

reject 让访问者知道数据被拒绝(回馈拒绝信息)。deny则直接丢弃访问数据,访问者不知道是访问被拒绝还是不存在该主机。

# 设置默认策略(默认策略即为拒绝所有传入连接,允许所有传出链接)
sudo ufw default deny incoming
sudo ufw default allow outgoing# 基于端口的允许/阻止
# 允许 SSH 连接。以下两条命令效果是一样的
sudo ufw allow ssh  # 允许外部到本机的 ssh
sudo ufw allow 22   # 允许外部连接到本机的 22 端口# 基于 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    # 拦截特定 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 22sudo ufw deny proto tcp from 202.54.1.0/24 to any port 22sudo ufw deny from 192.168.1.5 to any    # 拦截或拒绝来自192.168.1.5的所有数据包
sudo ufw allow from 123.45.67.89         # 允许从一个 IP 地址连接:
sudo ufw allow from 123.45.67.89/24      # 允许特定子网的连接:# 允许特定 IP/端口 的组合:
sudo ufw allow from 123.45.67.89 to any port 22 proto tcp
# proto tcp 可以删除或者根据你的需求改成 proto udp,所有例子的 allow 都可以根据需要变成 deny。sudo ufw allow www    或   sudo ufw allow 80/tcp
sudo ufw allow ftp    或   sudo ufw allow 21/tcp
sudo ufw allow 22/tcp             # 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53                 # 允许外部访问53端口(tcp/udp)
sudo ufw allow 80                 # 允许外部访问80端口 等价 sudo ufw allow http
sudo ufw delete allow 80          # 禁止外部访问80 端口
sudo ufw allow from 192.168.1.1   # 允许此IP访问所有的本机端口
sudo ufw allow from 111.111.111.111 to any port 22    # 允许特定IP特定端口的连接
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp                # 禁止外部访问smtp服务
sudo ufw allow smtp              # 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw delete allow smtp        # 删除上面建立的某条规则sudo ufw deny http                    # 拒绝http连接
sudo ufw deny from 111.111.111.111    # 拒绝特定IP连接# 允许特定端口范围连接
sudo ufw allow 1000:2000/tcp
sudo ufw allow 2001:3000/udp# 拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址的22端口
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22# 可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级):
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16
# 这样设置已经很安全,如果有特殊需要,可以使用sudo ufw allow开启相应服务

6. 删除规则

有两种删除防火墙规则的方法,最直接的方法是:
sudo ufw delete allow ssh
如上,我们在 delete 指令后面输入要删除的规则即可。还可以这样:
sudo ufw delete allow 80/tcp
或
sudo ufw delete allow 1000:2000/tcp如果规则又长又复杂,问题就比较棘手了。这里有一个更简单的方法,需要分成两个步骤:
sudo ufw status numbered    # 按规则来编号防火墙规则。命令会将所有防火墙规则以数字列表形式列出来
# 请将 [number] 替换成规则列表对应的数字序号。
sudo ufw delete 1           # 按规则编号删除防火墙规则 sudo ufw delete [number]
sudo ufw delete 4           # 删除编号为4的规则

7. 编辑 UFW 的配置文件

虽然可以通过命令行添加简单的规则,但仍有可能需要添加或删除更高级或特定的规则。

  1. 在通过终端输入的规则之前 UFW 将运行一个文件 before.rules,它允许回环接口、ping 和 DHCP 等服务。要添加或改变这些规则,编辑 /etc/ufw/before.rules 这个文件。 同一目录中的 before6.rules 文件用于 IPv6 。
  2. 还存在一个 after.ruleafter6.rule 文件,用于添加在 UFW 运行你通过命令行输入的规则之后需要添加的任何规则。
  3. 还有一个配置文件位于 /etc/default/ufw。 从此处可以禁用或启用 IPv6,可以设置默认规则,并可以设置 UFW 以管理内置防火墙链。

启用 IPv6 支持

如果你的云服务器启用了 IPv6,则需要配置 UFW 以启用支持,编辑 UFW 配置文件:
sudo nano /etc/default/ufw
在配置文件中将 IPV6 设置为 yes :
IPV6=yes
保存并退出编辑器,重启 UFW:
sudo ufw disable
sudo ufw enable
这样,UFW 就同时支持 IPv4 和 IPv6 两种协议了。

Ubuntu 防火墙 ufw相关推荐

  1. Ubuntu防火墙UFW

    防火墙是用于监控和过滤传入和传出网络流量的工具. 它通过定义一组确定是允许还是阻止特定流量的安全规则来工作. Ubuntu 22.04安装了一个称为UFW的防火墙配置工具.它是用于管理iptables ...

  2. ubuntu防火墙ufw使用教程

    查看ubuntu版本 cat /etc/issue 或者 lsb_release -a 防火墙 由于Linux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable ...

  3. Ubuntu防火墙ufw规则配置

    开启:sudo ufw enable 关闭:sudo ufw disable 状态:sudo ufw status inactive(未运行)/active(运行) 允许某个网段访问: sudo uf ...

  4. Ubuntu 20.04防火墙 UFW做NAT转换,IP伪装,端口重定向,端口映射

    参考文档: <Ubuntu 防火墙IP转发做NAT,内网集群共享网络(简单)> <focal (8) ufw-framework.8.gz手册> 项目需要一台路由器以实现NAT ...

  5. ubantu 添加防火墙策略_企业环境下用脚本设置ubuntu防火墙

    ubuntu防火墙设置 初始状态下直接设置即可, 尽量不要尝试 重装 iptables 以及ufw,很容易导致 防火墙崩掉,最后可能只能重装系统. 配置脚本 firewall.sh #/bin/bas ...

  6. ubuntu防火墙操作

    教你如何开启/关闭ubuntu防火墙 目录 [隐藏] 1 安装方法 2 使用方法 3 推荐设置 4 详细使用说明 安装方法 sudo apt-get install ufw 当然,这是有图形界面的(比 ...

  7. ubuntu防火墙关闭命令-转

    ubuntu防火墙关闭命令 1.关闭ubuntu的防火墙   ufw disable  www.2cto.com   2.卸载了iptables    apt-get remove iptables  ...

  8. ubuntu防火墙问题

    ubuntu防火墙问题 启动防火墙的命令: sudo ufw enable  (ubuntu20.04默认状态下UFW防火墙是禁用的) 防火墙默认配置:sudo ufw default deny 关闭 ...

  9. ubuntu防火墙命令介绍

    ubuntu在开启ufw防火墙前,为了避免与iptables现有规则冲突,建议先清空iptables的所有规则.相关命令如下: iptables -F 更改iptables规则链默认操作命令如下: i ...

最新文章

  1. 25 进程同步之Event
  2. Docker使用阿里云docker镜像加速
  3. SharePoint技术峰会2009视频(6)
  4. sqlplus 自动换行_sqlplus常用操作命令2
  5. PHP-代码审计-身份认证
  6. Marketing Cloud demo环境和API使用方法说明
  7. 魔兽世界账号与服务器的关系,账号整合不用烦 《魔兽世界》角色转移问题一览...
  8. 打印冻结窗格怎么保证每页都有_在打印Excel表时怎么设置才能实现每页都打印标题行...
  9. 委托和事件[delegate and event]_C#
  10. 区块链 平行链 侧链 区别
  11. AX2009企业门户资料
  12. {ubuntu}乱七八糟重命名为1 2 3.....png
  13. mysql数据库的安装和配置文件_Mysql数据库介绍、安装和配置文件
  14. 百度文库免费下载文档方法
  15. 12个免费矢量免抠素材网站
  16. Android录屏解决方案调研
  17. 香槟分校计算机科学排名,伊利诺伊大学厄巴纳香槟分校计算机科学computer science专业排名第29名(2020THE泰晤士高等教育世界大学排名)...
  18. 使用pandas sns绘图
  19. 什么是WMS系统,WMS如何选型
  20. 基于ssm+vue的班级同学录网站管理系统 elementui

热门文章

  1. 去腾讯等BAT面试完的Mysql面试55题总结,含答案大赠送!
  2. 从程序员到阿里技术总监之路
  3. Java面试题:单例设计模式、适配器模式的不同方式
  4. 内存对齐分配策略(含位域模式)
  5. anddroid悬浮窗的手机QQ后台清理不掉的秘密
  6. Oracle运行set autotrace on报错SP2-0618、SP2-0611
  7. MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 转载
  8. 获取Flex SDK加载进度的方法
  9. jQuery 对话框 jQuery.plugin
  10. C++学习——引用和指针