04/11/2017

Ubuntu UFW 防火墙设置

防火墙设置:iptables 太烦?试试 Ubuntu 自带的 Uncomplicated Firewall 简易墙 吧。这篇文章讲解了简单的 ufw 配置及命令。本文基于 Ubuntu 16.04 LTS。

0x00 - 安装

Ubuntu 默认是有 ufw 的。如果因为种种原因没有的话:

$ sudo apt-get install ufw

0x01 - 初步配置

$ sudo nano /etc/default/ufw

a. 开启 ipv6 (optional)

IPV6=yes

b. 设置默认规则

$ sudo ufw default deny incoming

$ sudo ufw default allow outgoing

0x02 - 设置 incoming 规则

a. 允许 ssh

$ sudo ufw allow 22/tcp

请自行替换成你的 ssh 端口,要不然锁外面了~

b. 允许 http, https

$ sudo ufw allow 80
$ sudo ufw allow 443

c. 允许端口段

$ sudo ufw allow 1000:2000/tcp

d. 允许 ip

$ sudo ufw allow from 192.168.100.2

e. 设置允许 ip / subnet 访问特定端口

$ sudo ufw allow from 192.168.100.0/24 to any port 3306

f. 设置禁止规则

修改 allowdeny 即可。

0x03 - 开启 UFW

$ sudo ufw enable

0x04 - 查看 UFW 状态

$ sudo ufw status [verbose|numbered]

0x05 - 删除规则

$ sudo ufw delete allow 1000:2000/tcp

$ sudo ufw status numbered

$ sudo ufw delete [number]

[number] 为上一条返回的规则号码

0x06 - 其他

a. 关闭 UFW

$ sudo ufw disable

b. 重设 UFW

$ sudo ufw reset

c. 开启关闭 Logging

$ sudo ufw logging [on|off]

0x07 - Docker 的坑

你开了个 Docker 容器,绑定了 -p 3306:3306 并开启了 ufw 。发现竟然外网可以直接访问!!

原来 Docker 会默认直接加规则到 iptables,所以 UFW 防火墙对 docker 无效。

解决方案请参考:「Docker 学习笔记(三) - Docker 端口映射与防火墙

0x08 - 端口转发

中转服务器:4000 -> 目标服务器:5000

$ sudo ufw disable

$ sudo nano /etc/ufw/before.rules

* filter 之前加入

# SS Forwarding
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-A PREROUTING -p tcp --dport 4000 -j DNAT --to-destination <remote ip>:5000
-A PREROUTING -p udp --dport 4000 -j DNAT --to-destination <remote ip>:5000
-A POSTROUTING -p tcp -d <remote ip> --dport 4000 -j SNAT --to-source <server ip>
-A POSTROUTING -p udp -d <remote ip> --dport 4000 -j SNAT --to-source <server ip>

COMMIT

根据网络情况不同,这里填写的中转服务器(俗称跳板机)<server ip> 可能是公网 IP (例:阿里云 ECS:经典网络)也可能是内网 IP (例:阿里云 ECS:专用网络)。 注意: COMMIT 之后要空行。需要再添加 ufw allow 4000 的规则。

之后开启 UFW:

$ sudo ufw enable

如果不通的话重新更改则需要 sudo reboot 重启,因为 iptables 会有重复的规则不方便测试。 可以通过这个来查看目前 iptables 的 nat 规则:

$ sudo iptables -L -t nat

Source:


Sources & Links:

本文链接:https://blog.whe.me/post/ubuntu-ufw-firewall-configurations.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。