本文转自:Ubuntu ufw防火墙配置命令

前言

最近才想起来关注自己的操作系统的安全,所以特地找了一个稍微清楚的文章来学习一下。

1.安装

sudo apt-get install ufw

2.启用

sudo ufw enable
sudo ufw default deny

运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

3.开启/禁用

sudo ufw allow|deny [service]

打开或关闭某个端口,例如:

sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此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 delete allow smtp 删除上面建立的某条规则

4.查看防火墙状态

sudo ufw status

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

sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny

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

开启/关闭防火墙 (默认设置是’disable’)

sudo  ufw enable|disable

转换日志状态

sudo  ufw logging on|off

设置默认策略 (比如 “mostly open” vs “mostly closed”)

sudo  ufw default allow|deny

许可或者屏蔽端口 (可以在“status” 中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务

名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:

sudo  ufw allow|deny [service]

显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。

sudo  ufw status

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

5、开启/禁用相应端口或服务(举例说明)

sudo ufw allow 80 允许外部访问本机80端口
sudo ufw delete allow 80 禁止外部访问本机80 端口
sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 要拒绝所有的流量从TCP的10.0.0.0/8 到端口22的地址192.168.0.1

可以允许所有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

6、更详细的说明
[]是代表可选内容。可能需要root权限,如无法运行,请使用 sudo ufw……的命令结构。“”中的内容不能照抄,要按需要更改。

ufw [--dry-run] enable|disable|reload
命令[–试运行]激活|关闭|重新载入

ufw [--dry-run] default allow|deny|reject [incoming|outgoing]
命令[–试运行]默认 允许|阻止|拒绝 [访问本机的规则|向外访问的规则]

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

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级别及更上级会记录许多内容,有可能短时间内撑爆你的硬盘。特别是用在服务器一类的机器上。

on与off只是起开关作用,不代表级别。

ufw防火墙配置命令相关推荐

  1. Ubuntu UFW 防火墙配置

    Ubuntu 附带的 UFW(Uncomplicated Firewall)防火墙配置工具,用于管理 iptables 防火墙规则,用于监视和过滤传入和传出网络流量的工具,通过定义一组安全规则来确定是 ...

  2. Cisco PIX防火墙配置命令大全

    Cisco PIX防火墙配置命令大全 来源: 作者:XUEYAN 出处:巧巧读书 2007-04-26 进入讨论组 关 键 词:子网掩码   协议   路由器   服务器   访问控制    一.PI ...

  3. 华三防火墙配置端口地址转换_H3C防火墙配置命令

    H3C 防火墙配置命令 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × ...

  4. 华为防火墙查看日志命令_华为路由器防火墙配置命令总结(上)

    华为路由器防火墙配置命令总结(上) 作者:IT168 2006-06-12 11:35 评论 分享 一.access-list 用于创建访问规则. (1)创建标准访问列表 access-list [ ...

  5. 华为防火墙配置命令-trust-dmz-untrust

    R1配置命令 <Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]undo inf enable In ...

  6. linux网络及防火墙配置命令

    http://blog.chinaunix.net/uid-22840716-id-3134121.html /etc/sysconfig/network 包括主机基本网络信息,用于系统启动 /etc ...

  7. Linux防火墙配置命令

    目录 Linux系统防火墙配置命令 一.防火墙开启.关闭.禁用 二.配置防火墙端口 注意事项: Linux系统防火墙配置命令 在Linux系统中进行Java项目部署时需要经常对防火墙进行配置,有一些基 ...

  8. WindowsServer2008防火墙配置命令

    使用组策略来管理高级Windows安全防火墙 在一个使用活动目录(AD)的企业网络中,为了实现对大量计算机的集中管理,可以使用组策略来应用高级安全windows防火墙的配置.组策略提供了高级安全Win ...

  9. 华为防火墙配置命令大全!救急!

    防火墙(Firewall)也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)防火墙是位于内部网和外部网之间的 ...

  10. Cisco 路由器防火墙配置命令及实例

    一.access-list 用于创建访问规则. (1)创建标准访问列表 access-list [ normal | special ] listnumber1 { permit | deny } s ...

最新文章

  1. echarts的词云图表类型有哪些_词云图的几种制作方法评测,你pick哪款
  2. 前途到底是网络工程还是程序设计
  3. 图书借阅系统java_基于JAVAWEB的图书借阅系统
  4. project1两周收获总结
  5. 体验MySQL MMM
  6. 阿里云数据中台全新产品DataTrust聚焦企业数据安全保障
  7. 一段简单的JavaScript代码,实现在同一网页输出多个图标的功能
  8. flash影响中文输入
  9. java eav_动态自定义字段属性–Magento的EAV模型 | 学步园
  10. .net core精彩实例分享 -- 文件与I/O
  11. rabbitmq direct 多个消费者_RabbitMQ从零开始
  12. 24小时学通LINUX内核系列
  13. 恐龙涂色游戏 - 恐龙画画世界填色游戏
  14. 2021年危险化学品经营单位主要负责人新版试题及危险化学品经营单位主要负责人考试试题
  15. 微信 Android 视频编码爬过的那些坑
  16. PBR之基于图像的光照IBL (Diffuse)
  17. error LNK1112
  18. 软件对计算机有配置要求吗,软件设计所需配置,你的电脑够格了吗
  19. 电脑开机后报bootsafe.sys丢失,报0x00000098状态码
  20. dreamweaver网页设计作业制作 小米商城官网商城购物网页设计 WEB静态网页作业模板 大学生个人购物商城网页代码 dw个人网页作业

热门文章

  1. oracle exadata x7发布,Oracle Exadata X8 Hardware DataSheet (配置说明)
  2. Java 在命令行编译Java源码
  3. EASBOS获取系统状态控制期间
  4. 曾宪武《物联网通信技术》课后答案(四)
  5. 计算机制作ppt教程,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT
  6. freeswitch php esl,FreeSWITCH增加PHP ESL模块支持
  7. matlab自适应滤波器 LMS算法
  8. 优化设计c语言程序设计,c语言优化设计.doc
  9. JAVA必备——Struts
  10. Java中的方法的重载