ufw简易使用教程
什么是ufw
全称Uncomplicated Firewall
,是一个iptables
的接口,可以简单理解为ufw是一个用于管理iptables
的工具,由于其命令简洁便于使用、同时支持IPv4、IPv6而受到我本人的欢迎。
为什么要用ufw
来对比一下
#iptables开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#ufw开放22端口
ufw allow 22/tcp
ufw enable
你说为什么要用ufw
当然是简单啊!
安装ufw
Ubuntu/Debian
sudo apt-get update
sudo apt-get install ufw
CentOS/RHEL
sudo yum install ufw
设置默认规则
注意:从本章节开始所有命令都是在root权限下执行的,请提前切换到root用户!我实在懒得把sudo打出来了
虽然一般来说刚刚安装好的ufw本来就不包含规则,但最好还是先拒绝所有传入的连接再按照自己的需求配置比较好。(此处配置完后千万不要直接执行ufw enable
对这两条命令进行应用)
ufw default allow outgoing #默认允许所有数据出站
ufw default deny incoming #默认禁止所有数据入站
ufw default
命令意为:默认xxxallow
和deny
详见下图:
基础命令
查看当前规则
你可以使用以下命令查看已生效的规则
ufw status
ufw status numbered #这条会让列出的规则前面加上数字编号
允许或禁止某端口/某服务传入和传出流量
以允许22端口为例
ufw allow 22
ufw deny 22
真的超级简单。
仅仅允许某端口的TCP/UDP的流量
在端口号后加上/tcp
或/udp
即可
ufw allow 22/tcp
ufw allow 22/udp
通过应用名来允许或禁止某项服务的流量(默认的端口)
ufw allow ssh
ufw deny ssh
上面两条命令等同于
ufw allow 22/tcp
ufw deny 22/tcp
你也可以通过这个方法来禁用
使配置生效
为了使我们输入的配置生效,请使用以下命令
ufw enable
关闭防火墙
ufw disable
删除生效的规则
你可以通过以下格式删除规则
ufw delete allow ssh
ufw delete allow 22
或者根据ufw status numbered
给出的列表前的数字编号删除
ufw delete 1 #删除编号为1的规则
高级用法
允许某IP或IP地址段访问某端口
允许某IP或IP地址段访问本机所有端口
ufw allow from 192.168.1.1 #允许某IP访问
ufw allow frome 192.168.1.0/24 #允许某IP段访问
某IP或IP地址段访问本机某特定端口
ufw allow from 192.168.1.1 any port 22 #允许某IP访问
ufw allow from 192.168.1.0/24 any port 22 #允许某IP段访问
禁ping,仅允许特定IP使用ping
检查是否已经关闭了icmp服务
cat /etc/ufw/sysctl.conf | grep net/ipv4/icmp_echo_ignore_all=
如果输出结果为net/ipv4/icmp_echo_ignore_all=1
则需要到文件里把它改为net/ipv4/icmp_echo_ignore_all=0
添加规则
在/etc/ufw/before.rules
中添加规则
-A ufw-before-input -p icmp --icmp-type echo-request -s 此处填写IPv4地址或地址段 -m state --state ESTABLISHED -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type echo-request -s 此处填写IPv6地址或地址段 -m state --state ESTABLISHED -j ACCEPT
重新加载配置
ufw reload
参考文章
本博客所有包含标签(tag) # 随笔 的文章禁止转载!本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!