《Ubuntu 16.04.5下的UFW防火墙 常用命令 使用方法 经验》
文档大纲
一)Ubuntu 16.04.5上使用UFW防火墙
1)启用ufw
2)确认IPV6已启用保护
3)检查UFW状态和规则 的三种方法
4)规则的设置
4.1)设置默认策略
4.2)常用设置----允许SSH连接
5)特殊/特定/特别的用法
5.1)插入某中规则
5.2)Limit用法
5.3)特定端口范围。
5.4)特定IP地址
5.5)子网规则
5.6)连接到特定的网络接口
5.7)应用程序集成管理
6)拒绝连接
7) 删除规则
7.1)查询/显示规则的集中方法
7.2)按规则的编号删除
7.3)按实际规则删除
7.4)按端口号删除
8)加载规则、禁用规则、启用规则、或重置UFW
9)日志
二)常见语法及中文含义;参数
1)常见语法及中文含义
2)参数
三)参考文章
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
Ubuntu 16.04.5上使用UFW防火墙
1)启用ufw
# sudo apt-get install ufw # 不用执行,Ubuntu 16.04.5默认安装未启用。
# sudo ufw enable # 启用
2)确认IPV6已启用保护
确保ufw下,IPv6启用防火墙
# sudo vim /etc/default/ufw # 确认line7
...
IPV6=yes
...
3)检查UFW状态和规则 的三种方法
# sudo ufw status # 显示规则
# sudo ufw status numbered # 显示规则 - 带编号
# sudo ufw status verbose # 显示规则 - 比status多了日志、默认规则等信息
4)规则的设置
4.1)设置默认策略
# sudo ufw default deny incoming # 默认“禁止”外部向内部的访问连接
# sudo ufw default allow outgoing # 默认“开启”内部向外部的访问连接
4.2)常用设置----允许SSH连接
# sudo ufw allow ssh
或 # sudo ufw allow 22
# sudo ufw allow http
或 # sudo ufw allow 80
# sudo ufw allow https
或 # sudo ufw allow 443
# sudo ufw allow ftp
或 # sudo ufw allow 21/tcp
# sudo ufw allow proto tcp from any to any port 80,443,8080:8090 # 连续例举端口号(端口号间必须使用逗号或分号,不能使用空格)
注意:“输入端口号”字符数最多不能超过15过(8080:8090算两个字符)。比如允许80,443,8080~8090这几个端口接受tcp传入连接。
5)特殊/特定/特别的用法
5.1)插入某中规则
# sudo ufw insert 2 allow|deny|reject http # 在第2条规则前,插入某规则
5.2)Limit用法
# sudo ufw limit ssh # 限制ssh的异常连接
# sudo ufw insert 2 limit ssh # 在第2条规则前,插入限制ssh的\连接
对连接数率进行限制,以防范暴力登录攻击。如果同一个IP地址在30秒之内进行了6次及6次以上的连接,ufw将阻止(deny)该连接。
5.3)特定端口范围。注意:UFW指定端口范围时,必须指定规则应应用于的协议( tcp或udp )。
# sudo ufw allow 6000:6007/tcp # 一些应用程序使用多个端口,而不是单个端口。注意:UFW指定端口范围时,必须指定规则应应用于的协议( tcp或udp )。
# sudo ufw allow 6000:6007/udp # 一些应用程序使用多个端口,而不是单个端口。注意:UFW指定端口范围时,必须指定规则应应用于的协议( tcp或udp )。
5.4)特定IP地址
# sudo ufw allow from 15.61.17.81 # 白名单:指定IP的连接
# sudo ufw allow from 15.15.15.51 to any port 22 # 白名单:指定IP连接到指定的22端口
5.5)子网规则(使用CIDR表示法来指定网络掩码。)
# sudo ufw allow from 15.15.15.0/24 # 允许IP地址范围从15.15.15.1到15.15.15.254的连接
# sudo ufw allow from 15.15.15.0/24 to any port 22 # 允许IP地址范围从15.15.15.1到15.15.15.254连接到22端口
# 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
5.6)连接到特定的网络接口
# ip addr # 查看网卡名称
# sudo ufw allow in on eth0 to any port 80 # 网卡eth0可访问80端口
# sudo ufw allow in on eth1 to any port 3306 # 网卡eth1可访问3306端口
5.7)应用程序集成管理 注:本人未测试过6.5,建议虚拟机测试下。
# sudo ufw app list # ufw从 /etc/ufw/applications.d. 中读取应用程序清单。
# sudo ufw app all # 查看所以程序名所对应的策略内容
# sudo ufw app into <程序名字> # 查看程序名所对应的策略内容
# sudo ufw allow <程序名字>
# sudo ufw allow CUPS
# sudo ufw allow from 192.168.0.0/16 to any app <程序名字>
注意,端口号已经被程序名所对应的策略所包括,不要再重新列举端口号。
# sudo ufw app update <程序名字> # 当编辑或者增加了程序清单,更新防火墙
# sudo ufw app update all # all,更新整个清单
# sudo ufw app update --add-new <程序名字> # 更新清单,同时增加规则
注意:update --add-new参数的行为由此命令配置:ufw app default skip|allow|deny 默认是skip,也就是没有设定。
6)拒绝连接
# sudo ufw deny http # 拒绝访问http的连接
# sudo ufw deny from 15.61.17.81 # 拒绝来自IP(15.61.17.81)的所有连接
7) 删除规则
7.1)查询/显示规则的集中方法
# sudo ufw status # 显示规则
# sudo ufw status numbered # 显示规则 - 带编号
# sudo ufw status verbose # 显示规则 - 比status多了日志、默认规则等信息
7.2)按规则的编号删除
# sudo ufw delete 2 # 删除第2条规则。注意,执行后原第3条自动变为第2条。注意,如果启用了IPv6,则也要删除相应的IPv6规则。
7.3)按实际规则删除
# sudo ufw delete allow http
7.4)按端口号删除
# sudo ufw delete allow 80
8)加载规则、禁用规则、启用规则、或重置UFW
# sudo ufw reload # 重新加载ufw规则
# sudo ufw disable # 禁用ufw
# sudo ufw enable # 启用ufw
# sudo ufw reset # 慎用:清楚/重置规则
9)日志
# suwo ufw logging on|off|low|medium|high|full
注:ufw支持许多日志级别。默认是低级(low),
on 开启日志
off 关闭日志
low 记录与默认策略冲突的封装数据包(记录速度被限制)。记录与规则符合的数据包(没有要求关闭记录的)
medium 记录与默认策略冲突的数据包(包括被规则允许的)、无效数据包、所有新连接。记录速度被限制。
high 同medium,只是没有记录速度限制。附加记录所有数据包(有记录速度限制)。
full 与high等同,只是取消记录限制。
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
二)常见语法及中文含义;参数
[]是代表可选内容。可能需要root权限,如无法运行,请使用 sudo ufw……的命令结构。“”中的内容不能照抄,要按需要更改。
1)常见语法及中文含意
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
命令 [--试运行] 程序 清单|信息|默认|更新
2)参数
--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.
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
三)参考文章
https://www.howtoing.com/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04/
https://www.oschina.net/question/12_28619