Total Pageviews

Thursday, 22 September 2016

Ubuntu下的更简单的防火墙程序-Uncomplicated Firewall

我们都知道,Linux 系统当中有一款十分牛逼的防火墙叫做 iptables,它能做的远远超过了防火墙的范畴……不过,一般来讲,我们还是习惯于只把它当做防火墙来用。
不过,如果你只是想对某个端口进行策略,那似乎也并不需要去面对 iptables 那冗长的配置命令。现在,我就来给你介绍另外一款更加简单的防火墙:

Uncomplicated Firewall

一看名字就十分的明确“不复杂防火墙”没错,它就是 ufw,在 Ubuntu 操作系统当中已经内置,使用它可以简单快速的操作防火墙的功能,比如开关端口,访问 IP,限制连接等等等等。它与一系列 Linux 下防火墙都差不多,也是使用了 iptables 作为后台,所以,你同样可以在 iptables 上做更多的自定义,两者可以一起使用……当然了,我不推荐你这么做。iptables 的规则要优先于 ufw
之所以推荐 ufw,是因为这货在 Ubuntu 里边内置,所以刚刚建好 vps 你就可以先用它来快速部署啦!

基础开关命令

注意,如果你是通过 ssh 连接到服务器,那么你应该先添加规则,然后再开启防火墙,否则后果自负。
这里说一下,ufw 启用防火墙则会自动配置开机启动,禁用则会取消开机启动。

基本控制命令

一般我们可以使用 allow 和 deny 选项来允许或者禁止连接,后接端口号或者协议名称都行,用斜杠“/”分割,然后可以显式追加 TCP 还是 UDP,不追加则默认两者都算。另外,我们一般更倾向于配置 input 条目,如果你要控制output 条目,则可以在 allow 或者 deny 与端口号之间显式的强调 in 或者 out,当然默认肯定是 in。
下面是几颗栗子:

高级控制命令

与 allow、deny 选项对应的,其实还有 limit 和 reject,前者用于限制30秒内连接次数,超过6次则自动 deny 掉 IP;后者和 deny 功能相同,但不会返回“你被拒绝”的消息。
如果你有多个网卡,那么在强调 in 和 out 后追加 on 选项,可以针对某一个网卡做策略,举个栗子:

添加更复杂的控制语句

通过编辑文件:
来添加更加复杂的、ufw 命令无法支持的 iptables 控制语句,比如说开启转发或者 nat 地址伪装等等,它的命令格式和 iptables 命令格式完全相同——因为这两个文件的加载方式就是 iptables-restore
当然,修改完这两个文件之后,你需要对 ufw 重启才能使它们生效。

延伸阅读

好了,基本上常用的介绍就这么多,如果你还想使用更高级的功能,请移步:
另:如果你使用桌面版,这货其实还有图形端,叫做 Gufw.