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

之所以推荐 ufw,是因为这货在 Ubuntu 里边内置,所以刚刚建好 vps 你就可以先用它来快速部署啦!

基础开关命令

ufw enable // 启用防火墙

ufw disable // 禁用防火墙

ufw reload //重新加载防火墙

ufw status // 显示防火墙状态

ufw status verbose // 查看防火墙详细状态

ufw default deny //设置默认 input 流量为拒绝

注意,如果你是通过 ssh 连接到服务器,那么你应该先添加规则,然后再开启防火墙,否则后果自负。

这里说一下,ufw 启用防火墙则会自动配置开机启动,禁用则会取消开机启动。

基本控制命令

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

ufw allow|deny [in|out] PORT [/tcp|udp]
// 允许或者阻止 进入或者流出 端口 协议

下面是几颗栗子:

ufw allow
//允许任何人通过端口22连入本机(包括 UDP 和 TCP)
ufw deny /tcp
//阻止任何人通过53端口用TCP 连入本机
ufw allow smtp
//用协议名字方式来添加条目

高级控制命令

ufw show raw
//以 iptables 格式输出当前的规则
ufw status [verbose|numbered]
//显示详细的状态,如果要删除条目,你可能需要用到 numbered
ufw delete NUM
//删除某个条目,号码参考上一条命令。
ufw delete allow /udp
//也可以在之前的命令当中直接添加 delete 参数来删除条目

与 allow、deny 选项对应的,其实还有 limitreject,前者用于限制30秒内连接次数,超过6次则自动 deny 掉 IP;后者和 deny 功能相同,但不会返回“你被拒绝”的消息。

如果你有多个网卡,那么在强调 in 和 out 后追加 on 选项,可以针对某一个网卡做策略,举个栗子:

ufw allow in on eth0 to any port  proto tcp

添加更复杂的控制语句

通过编辑文件:

/etc/ufw/before.rules
//在 ufw 的所有条目之前生效 /etc/ufw/after.rules
//在 ufw 的所有条目之后生效

来添加更加复杂的、ufw 命令无法支持的 iptables 控制语句,比如说开启转发或者 nat 地址伪装等等,它的命令格式和 iptables 命令格式完全相同——因为这两个文件的加载方式就是 iptables-restore

当然,修改完这两个文件之后,你需要对 ufw 重启才能使它们生效。

延伸阅读

好了,基本上常用的介绍就这么多,如果你还想使用更高级的功能,请移步:

Ufw使用指南

Uncomplicated Firewall

另:如果你使用桌面版,这货其实还有图形端,叫做 Gufw。

Ubuntu 下更简单的防火墙 Uncomplicated Firewall的更多相关文章

  1. Ubuntu下使用UFW配置防火墙(简化iptables的操作)

    UFW全称为Uncomplicated Firewall,是Ubuntu系统上配置iptables防火墙的工具.UFW提供一个非常友好的命令用于创建基于IPV4,IPV6的防火墙规则. 但是,UFW是 ...

  2. 转载:ubuntu 下添加简单的开机自启动脚本

    转自:https://www.cnblogs.com/downey-blog/p/10473939.html linux下添加简单的开机自启动脚本 在linux的使用过程中,我们经常会碰到需要将某个自 ...

  3. linux/ubuntu下最简单好用的python opencv安装教程 ( 解决 imshow, SIFT, SURF, CSRT使用问题)

    希望这篇文章能彻底帮你解决python opencv安装和使用中的常见问题. 懒人请直奔这一节, 一条命令安装 opencv 使用python-opencv常用的问题 在linux中使用python版 ...

  4. Ubuntu 下超简单的安装指定版本的nodejs

    第一步 指定版本源 执行 curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - setup_5.x 需要安装的版本号,替换数字就 ...

  5. ubuntu下最好用的防火墙shadaarp ,带主动防御

          shada-arpfirewall-1.0alpha3.i386.rpm 所有基于rpm的x86 Linux(内核版本>=2.6.27) Mar 11 82.9 KB     sha ...

  6. ubuntu上使用ufw配置管理防火墙

    在Linux上使用ufw配置管理防火墙 UFW,即简单防火墙uncomplicated firewall,是一个 Arch Linux.Debian 或 Ubuntu 中管理防火墙规则的前端.UFW ...

  7. Ubuntu下配置Apache以及搭载CGI

    在Windows下自己下载应用过Apache,在Linux下也用到了服务器,就选择了Apache.Apache的安装在Ubuntu下异常简单. 1. 上网下载自动包安装 sudo apt-get in ...

  8. Ubuntu下的防火墙

    Ubuntu下的防火墙Gufw-ufw Gufw是ufw的桌面版本,网上有Gufw的安装和配置方法,但是我认为并不是很好.网上的教程也有点愚弄大众的嫌疑,因为按照他的说法,最后防火墙根本就无法自动启动 ...

  9. spring 第一篇(1-1):让java开发变得更简单(下)

    切面(aspects)应用 DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多 ...

随机推荐

  1. 自学Python1.4-Centos内vim中文乱码问题

    自学Python之路 自学Python1.4-Centos内vim中文乱码问题 1. 登陆的系统---区域语言设置 1.1查看安装中文包: 查看系统是否安装中文语言包 (列出所有可用的公共语言环境的名 ...

  2. tf 数据读取

    tf.train.batch( tensors, batch_size, num_threads=1, capacity=32, enqueue_many=False, shapes=None, dy ...

  3. 【POJ1187】陨石的秘密

    题目大意: 定义一个串:只含有 '( )','[ ]','{ }',3种(6个)字符. 定义 SS 串: 空串是SS表达式. 若A是SS表达式,且A串中不含有中括号和大括号,则(A)是SS表达式. 若 ...

  4. Flash10下复制到剪切板的一种新方法

    web开发中常常要实现“复制到剪切板”功能.这个功能很实用,但是由于安全问题,浏览器的限制越来越严,实现的方法也越来越有限了.Firefox默认下不能直接通过Javascript操作剪切板,必须开启相 ...

  5. Histogram of Oriented Gridients(HOG) 方向梯度直方图

    Histogram of Oriented Gridients,缩写为HOG,是目前计算机视觉.模式识别领域很常用的一种描述图像局部纹理的特征.这个特征名字起的也很直白,就是说先计算图片某一区域中不同 ...

  6. Div里超出部分,省略号显示

    1.一行显示并出现省略号 1)三个属性: overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow: hidde ...

  7. Java_myBatis_全局配置文件

    mybatis主要需要配置的项: 1.properties  配置文件的“环境变量”键值对 2.typeAliases  输入输出数据的类型 3.mappers  映射配置文件 下面看看实例: < ...

  8. JAVA记录-POST与GET方式区别

    1.get是从服务器上获取数据的一种请求,post是向服务器提交数据的一种请求. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到 ...

  9. web4.0基本配置

    const path = require('path');//引入路径包 const HWP = require('html-webpack-plugin');//引入自动产出html包 const ...

  10. es6三个点运算符

    ...扩展运算符:可以将数组或对象里面的值展开 const b = {a:1,b:2} console.log({...b,c:3}); //{a:1,b:2,c:3} 一定程度上可以替代apply方 ...