我们都知道,Linux 系统当中有一款十分牛逼的防火墙叫做 iptables,它能做的远远超过了防火墙的范畴……不过,一般来讲,我们还是习惯于只把它当做防火墙来用。
不过,如果你只是想对某个端口进行策略,那似乎也并不需要去面对 iptables 那冗长的配置命令。现在,我就来给你介绍另外一款更加简单的防火墙:
Uncomplicated Firewall
一看名字就十分的明确“不复杂防火墙”没错,它就是 ufw,在 Ubuntu 操作系统当中已经内置,使用它可以简单快速的操作防火墙的功能,比如开关端口,访问 IP,限制连接等等等等。它与一系列 Linux 下防火墙都差不多,也是使用了 iptables 作为后台,所以,你同样可以在 iptables 上做更多的自定义,两者可以一起使用……当然了,我不推荐你这么做。iptables 的规则要优先于 ufw。
之所以推荐 ufw,是因为这货在 Ubuntu 里边内置,所以刚刚建好 vps 你就可以先用它来快速部署啦!
基础开关命令
1 2 3 4 5 6 7 8 9 |
ufw enable // 启用防火墙 ufw disable // 禁用防火墙 ufw reload //重新加载防火墙 ufw status // 显示防火墙状态 ufw status verbose // 查看防火墙详细状态 |
1 |
ufw default deny //设置默认 input 流量为拒绝 |
注意,如果你是通过 ssh 连接到服务器,那么你应该先添加规则,然后再开启防火墙,否则后果自负。
这里说一下,ufw 启用防火墙则会自动配置开机启动,禁用则会取消开机启动。
基本控制命令
一般我们可以使用 allow 和 deny 选项来允许或者禁止连接,后接端口号或者协议名称都行,用斜杠“/”分割,然后可以显式追加 TCP 还是 UDP,不追加则默认两者都算。另外,我们一般更倾向于配置 input 条目,如果你要控制output 条目,则可以在 allow 或者 deny 与端口号之间显式的强调 in 或者 out,当然默认肯定是 in。
1 2 |
ufw allow|deny [in|out] PORT [/tcp|udp] // 允许或者阻止 进入或者流出 端口 协议 |
下面是几颗栗子:
1 2 3 4 5 6 |
ufw allow 22 //允许任何人通过端口22连入本机(包括 UDP 和 TCP) ufw deny 53/tcp //阻止任何人通过53端口用TCP 连入本机 ufw allow smtp //用协议名字方式来添加条目 |
高级控制命令
1 2 3 4 5 6 7 8 |
ufw show raw //以 iptables 格式输出当前的规则 ufw status [verbose|numbered] //显示详细的状态,如果要删除条目,你可能需要用到 numbered ufw delete NUM //删除某个条目,号码参考上一条命令。 ufw delete allow 53/udp //也可以在之前的命令当中直接添加 delete 参数来删除条目 |
与 allow、deny 选项对应的,其实还有 limit 和 reject,前者用于限制30秒内连接次数,超过6次则自动 deny 掉 IP;后者和 deny 功能相同,但不会返回“你被拒绝”的消息。
如果你有多个网卡,那么在强调 in 和 out 后追加 on 选项,可以针对某一个网卡做策略,举个栗子:
1 |
ufw allow in on eth0 to any port 80 proto tcp |
添加更复杂的控制语句
通过编辑文件:
1 2 3 4 5 |
/etc/ufw/before.rules //在 ufw 的所有条目之前生效 /etc/ufw/after.rules //在 ufw 的所有条目之后生效 |
来添加更加复杂的、ufw 命令无法支持的 iptables 控制语句,比如说开启转发或者 nat 地址伪装等等,它的命令格式和 iptables 命令格式完全相同——因为这两个文件的加载方式就是 iptables-restore
当然,修改完这两个文件之后,你需要对 ufw 重启才能使它们生效。
延伸阅读
好了,基本上常用的介绍就这么多,如果你还想使用更高级的功能,请移步:
另:如果你使用桌面版,这货其实还有图形端,叫做 Gufw。😜
本文由 落格博客 原创撰写:落格博客 » Ubuntu 下更简单的防火墙 Uncomplicated Firewall
转载请保留出处和原文链接:https://www.logcg.com/archives/988.html
Comments