ufw的使用,是比iptables简单。但只能作简单的事儿,更改简单的netfilter里的iptable里的记录。难点的,可能还是得iptables原生命令。
自打2.4版本以后的Linux内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、NAT等功能。
一般来说, 我们会使用名气比较的大iptables等程序对这个防火墙的规则进行管理。iptables可以灵活的定义防火墙规则, 功能非常强大。但是由此产生的副作用便是配置过于复杂。
一向以简单易用著称Ubuntu在它的发行版中,附带了一个相对iptables简单很多的防火墙配置工具:UFW。
UFW (简单的防火墙) 是广泛使用的 iptables 防火墙 的前端应用 , 是一个主机端的iptables类防火墙配置工具,这是非常适合于基于主机的防火墙。UFW 即提供了一套管理网络过滤器的框架,又提供了控制防火墙的命令行界面接口。它给那些不熟悉防火墙概念的 Linux 新用户提供了友好、易使用的用户界面。
同时,另一方面,它也提供了命令行界面,为系统管理员准备了一套复杂的命令,用来设置复杂的防火墙规则。
UFW 对像 Debian、Ubuntu 和 Linux Mint 这些发布版本来说也是上上之选。
注明:ufw并不是一个防火墙,尽管它叫做Ubuntu firewall,但它本身并没有防火墙的功能,它只是一个管理netfilter防火墙的工具,其核心还是netfilter的iptables
ufw防火墙 即uncomplicated firewall,不复杂的防火墙,繁琐部分的设置还是需要去到iptables
ufw规则文件在/etc/ufw/before.rules ,/etc/ufw/after.rules,/var/lib/ufw/user.rules中,规则使用是按before.rules,再用user.rules,最后是after.rules,先设置规则会提前生效,后面规则不会覆盖上面的规则。
下面是一个简单的操作启用步骤。ubuntu默认已安装了Ufw,所以不讲安装。
一,在启动之前,先运行如下命令,打开端口几个端口(直接启用,可能ssh马上就断了)。
sudo ufw allow 22
ufw allow 80/tcp
二,测试期间,最好作个定时任务,定期关闭防火墙,怕万一搞砸了。一时登陆不上。测试完了之后,再取消这个定时任务即可。
(略)
三,启动ufw防火墙
sudo ufw enable
四,启动默认防御(阻止外部进入联接,放行内部对外联接)
ufw default deny
五,查看ufw防火墙是否在工作,查看使用中的规则
ufw status
六,常用命令:
开放tcp的1234入网端口
ufw allow 1234/tcp
删除tcp的1234入网端口
ufw delete allow 1234/tcp
只允许1.2.3.4的Ip访问1234端口(如果是在shell脚本里,一定要指明ufw的系统完整路径,不然会玩完的)
/usr/sbin/ufw allow proto tcp from 1.2.3.4 to any port 1234
删除ip1.2.3.4对1234端口的访问权限
ufw delete allow proto tcp from 1.2.3.4to any port 1234