
ubuntu防火墙ufw使用教程
ubuntu防火墙ufw使用教程
查看ubuntu版本
cat /etc/issue
# 或者
lsb_release -a
防火墙
linux 2.4内核以后提供了一个非常优秀的防火墙工具:
netfilter/iptables
他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。
netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是 iptables。
ufw 即 uncomplicated firewall 的简称,一些复杂的设定还是要去iptables。
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使得新规则生效。
1.安装
sudo apt-get install ufw
防火墙版本:
ufw version
2.启用
sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
开启/关闭防火墙 (默认设置是’disable’)
sudo ufw enable|disable
转换日志状态
sudo ufw logging on|off
设置默认策略 (比如 “mostly open” vs “mostly closed”)
sudo ufw default allow|deny
3.开启/禁用
许可或者屏蔽端口 (可以在“status” 中查看到服务列表)。 可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
sudo ufw allow|deny [service]
4.查看防火墙状态
sudo ufw status
UFW 使用范例:
允许 53 端口
sudo ufw allow 53
禁用 53 端口
sudo deny allow 53
允许 80 端口
sudo ufw allow 80/tcp
禁用 80 端口
sudo ufw deny 80/tcp
删除 smtp 端口的许可
sudo ufw delete allow smtp
允许某特定 IP
sudo ufw allow from 192.168.254.254
删除上面的规则
sudo ufw delete allow from 192.168.254.254
通过规则编号删除UFW规则更容易,尤其是如果您是UFW的新手。 要首先通过规则编号删除规则,您需要按数字列出规则,您可以使用以下命令执行此操作:
sudo ufw status numbered
状态: 激活
至 动作 来自
- -- --
[ 1] Nginx Full ALLOW IN Anywhere
[ 2] 22/tcp ALLOW IN Anywhere
[ 3] 5522/tcp ALLOW IN Anywhere
[ 4] 80/tcp ALLOW IN Anywhere
[ 5] Nginx HTTP ALLOW IN Anywhere
[ 6] 443/tcp ALLOW IN Anywhere
[ 7] Nginx HTTPS ALLOW IN Anywhere
[ 8] 8080/tcp ALLOW IN Anywhere
[ 9] Nginx Full (v6) ALLOW IN Anywhere (v6)
[10] 22/tcp (v6) ALLOW IN Anywhere (v6)
[11] 5522/tcp (v6) ALLOW IN Anywhere (v6)
[12] 80/tcp (v6) ALLOW IN Anywhere (v6)
[13] Nginx HTTP (v6) ALLOW IN Anywhere (v6)
[14] 443/tcp (v6) ALLOW IN Anywhere (v6)
[15] Nginx HTTPS (v6) ALLOW IN Anywhere (v6)
[16] 8080/tcp (v6) ALLOW IN Anywhere (v6)
要删除规则编号3,允许连接到端口8080的规则,可以使用以下命令:
sudo ufw delete 2
重置UFW
重置UFW将禁用UFW,并删除所有活动规则。 如果您想恢复所有更改并重新开始,这很有帮助。只需输入以下命令:
ufw reset