UFW是一个简化版的iptables,基于iptables,配置比iptables简单
默认UFW是关闭状态,即Ubuntu默认打开所有端口,比较危险。
检测状态
ufw status
设置默认状态,默认禁止所有连接(所有入站连接)
ufw default deny
启用某个端口
ufw allow 22
删除某个规则
ufw delete allow 22
只打开使用tcp/ip协议的22端口:
ufw allow 22/tcp
打开来自192.168.0.1的tcp请求的80端口:
sudo ufw allow proto tcp 192.168.0.1 port 80 to 192.168.0.2 port 80
更详细的使用说明见:
http://wiki.ubuntu.org.cn/Ufw使用指南
其实调用的还是iptables,因为使用后生成了很多iptables的规则。
# 清空所有防火墙规则 iptables --flush iptables --delete-chain # 接受所有到达 22 端口的 TCP 请求 # 假如你改了 SSH 的端口,记得修改这里的端口号。 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 接受所有到达 8888 端口的 TCP 请求 # 记得将 8888 改为你为 Shadowsocks server 设定的端口 iptables -A INPUT -p tcp --dport 8888 -j ACCEPT # 接受所有由 VPS 发出的请求收到的回应 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许 ping iptables -A INPUT -p icmp -j ACCEPT # 不接受其余一切网络请求 iptables -A INPUT -j DROP 然后我发现 /etc/init.d 文件夹下不存在 iptables 服务文件,看来是要自行添加了,真麻烦。在 Google 了一下之后,没有找到别人提供的服务文件,却找到了利用开机网络前的配置 hook 运行自定义脚本来实现的方法,听说是因为 Debian 已经不再建议使用 /etc/init.d/iptables 服务了。 那么便添加 hook 吧,创建脚本 /etc/network/if-pre-up.d/iptables 并为其添加可执行属性,文件内容如下: #!/usr/bin/env bash # 从 iptables.conf 中读取防火墙配置 /sbin/iptables-restore < /etc/iptables.conf 接着,执行 bash iptables.sh 运行防火墙,然后执行 iptables-save > /etc/iptables.conf 生成配置文件。 最后,别忘了限制配置文件的读写权限,chmod 600 /etc/iptables.conf 足矣。搞定。
转载于:https://www.cnblogs.com/guangshan/p/4836662.html
相关资源:ufw-docker-automated:使用UFW管理Docker容器防火墙!-源码