ubuntu下ufw防火墙管理工具

sudoubuntu9.0以后默认支持ufw。在命令行运行 ufw 命令就可以看到提示的一系列可进行的操作。

1、安装ufw

sudo apt-get install ufw

2、启用ufw

sudo ufw enable

显示如下,

ubuntu下ufw防火墙管理工具

禁用所有外部访问命令,

sudo ufw default deny

3、常用命令

开启 / 禁用

命令: sudo ufw allow|deny [service]

打开或关闭某个端口

# 允许所有的外部 IP 访问本机的 25/tcp (smtp) 端口
sudo ufw allow smtp 
# 允许所有的外部 IP 访问本机的 22/tcp (ssh) 端口
sudo ufw allow 22/tcp 
# 允许外部访问 53 端口 (tcp/udp)
sudo ufw allow 53 
# 允许此 IP 访问所有的本机端口
sudo ufw allow from 192.168.1.100 
# ?
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
# 禁止外部访问 smtp 服务
sudo ufw deny smtp 
# 删除上面建立的某条规则
sudo ufw delete allow smtp

查看防火墙状态

命令: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

​ Linux 2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以 实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。

​ 但是iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是 iptables。ufw 即uncomplicated firewall的简称,一些复杂的设定还是要去iptables。

ufw相关的文件和文件夹

ufw相关的文件和文件夹有:
/etc /ufw/:里面是一些ufw的环境设定文件,如 before.rules、after.rules、sysctl.conf、ufw.conf,及 for ip6 的 before6.rule 及 after6.rules。这些文件一般按照默认的设置进行就ok。

​ 若开启ufw之后,/etc/ufw/sysctl.conf会覆盖默认的/etc/sysctl.conf文件,若你原来的/etc/sysctl.conf做了修 改,启动ufw后,若/etc/ufw/sysctl.conf中有新赋值,则会覆盖/etc/sysctl.conf的,否则还以/etc /sysctl.conf为准。当然你可以通过修改/etc/default/ufw中的“IPT_SYSCTL=”条目来设置使用哪个 sysctrl.conf.

​ /var/lib/ufw/user.rules 这个文件中是我们设置的一些防火墙规则,打开大概就能看明白,有时我们可以直接修改这个文件,不用使用命令来设定。修改后记得ufw reload重启ufw使得新规则生效。

ufw命令行的一些示例

ufw enable/disable:打开/关闭ufwufw status:查看已经定义的ufw规则ufw default allow/deny:外来访问默认允许/拒绝ufw allow/deny 20:允许/拒绝 访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。ufw allow/deny servicename:ufw从/etc/services中找到对应service的端口,进行过滤。ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口。ufw delete allow/deny 20:删除以前定义的"允许/拒绝访问20端口"的规则

参考

【1】https://www.cnblogs.com/OnlyDreams/p/7210914.html

【2】https://www.jianshu.com/p/83017a0398c2

【3】https://blog.csdn.net/m0_37864814/article/details/82961996

【4】https://help.ubuntu.com/community/IptablesHowTo 有关iptables

【5】https://www.cnblogs.com/EasonJim/p/7595213.html

上一篇:hosts.allow、hosts.deny配置不生效的解决方法


下一篇:[日常] Apache Order Deny,Allow的用法