UFW是一个简化版的iptables,基于iptables,配置比iptables简单

  默认UFW是关闭状态,即Ubuntu默认打开所有端口,比较危险。

  检测状态

  ufw status

  设置默认状态,默认禁止所有连接(所有入站连接)

  ufw default deny

  启用某个端口

  ufw allow 22

  删除某个规则

  ufw delete allow 22

  只打开使用tcp/ip协议的22端口:

  ufw allow 22/tcp

  打开来自192.168.0.1的tcp请求的80端口:

  sudo ufw allow proto tcp 192.168.0.1 port 80 to 192.168.0.2 port 80

  更详细的使用说明见:

  http://wiki.ubuntu.org.cn/Ufw%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

  其实调用的还是iptables,因为使用后生成了很多iptables的规则。

# 清空所有防火墙规则
iptables --flush
iptables --delete-chain
 
# 接受所有到达 22 端口的 TCP 请求
# 假如你改了 SSH 的端口,记得修改这里的端口号。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
# 接受所有到达 8888 端口的 TCP 请求
# 记得将 8888 改为你为 Shadowsocks server 设定的端口
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
 
# 接受所有由 VPS 发出的请求收到的回应
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许 ping
iptables -A INPUT -p icmp -j ACCEPT
 
# 不接受其余一切网络请求
iptables -A INPUT -j DROP
然后我发现 /etc/init.d 文件夹下不存在 iptables 服务文件,看来是要自行添加了,真麻烦。在 Google 了一下之后,没有找到别人提供的服务文件,却找到了利用开机网络前的配置 hook 运行自定义脚本来实现的方法,听说是因为 Debian 已经不再建议使用 /etc/init.d/iptables 服务了。
 
那么便添加 hook 吧,创建脚本 /etc/network/if-pre-up.d/iptables 并为其添加可执行属性,文件内容如下:
 
#!/usr/bin/env bash
 
# 从 iptables.conf 中读取防火墙配置
/sbin/iptables-restore < /etc/iptables.conf
接着,执行 bash iptables.sh 运行防火墙,然后执行 iptables-save > /etc/iptables.conf 生成配置文件。
 
最后,别忘了限制配置文件的读写权限,chmod 600 /etc/iptables.conf 足矣。搞定。

Ubuntu下使用UFW,以及CentOS7的默认防火墙firewalld的更多相关文章

  1. ubuntu下安装配置minicom(解决默认的端口/dev/tty8,改不过来的问题)

    Minicom是linux下串口通信的软件,下面讲下ubuntu Minicom的安装和配置. 安装: sudo apt-get install minicom 或在新立得软件包管理器中搜索“mini ...

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

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

  3. CentOS7 默认防火墙firewalld

    firewalld基础 firewalld是CentOS7源生支持的防火墙,firewalld最大的好处有两个:支持动态更新,不用重启服务:第二个就是加入了防火墙的“zone”概念. firewall ...

  4. CentOS7关闭默认防火墙启用iptables防火墙

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤. 1.关闭firewall: systemctl stop firewalld.service #停止f ...

  5. Ubuntu下将Sublime Text设置为默认编辑器

    转自将Sublime Text 2设置为默认编辑器 修改defaults.list 编辑/etc/gnome/default.list文件,将其中的所有gedit.desktop替换为sublime_ ...

  6. centos7默认防火墙firewalld

    1.开关 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disable firewalld ...

  7. Centos7 systemctl和防火墙firewalld命令(参考https://www.cnblogs.com/marso/archive/2018/01/06/8214927.html)

    一.防火墙的开启.关闭.禁用命令 (1)设置开机启用防火墙:systemctl enable firewalld.service (2)设置开机禁用防火墙:systemctl disable fire ...

  8. 【原创】docker在Ubuntu下1小时快速学习

    前言 由于工作原因,很多情况下需要快速学习新的知识,针对docker如果从头到尾看相关书籍学习会非常慢,所以整理了下docker的常用操作,只要跟着本文学习操作,一小时就能掌握docker大部最常用分 ...

  9. Ubuntu下使用git提交代码至GitHub

    一.Ubuntu下安装Git Ubuntu12.04 LTS默认是已经安装Git的,可以使用 git --version 测试是否安装. 如果没有安装,使用命令: sudo apt-get insta ...

随机推荐

  1. Python 小知识点(7)--类的创建方式

    1. 创建类的第1方式(常用) class Foo(object): def func(self): print("Hello Foo") 2.创建类的第2方式 def func( ...

  2. leetcode462

    public class Solution { public int MinMoves2(int[] nums) { var list = nums.OrderBy(x => x).ToList ...

  3. log4j:WARN No appenders could be found for logger 解决办法

    转自:https://blog.csdn.net/chw0629/article/details/80567936 使用log4j时不起作用,每次执行完出现以下提示: log4j:WARN No ap ...

  4. 获取用户的相关请求信息, 以及包括请求头 request.environ

    #在index文件中 1. print(type(request)) #看出所属库 2. from django.core.handlers.wsgi import WSGIRequest #查看WS ...

  5. Quartz.NET文档 入门教程

    概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了 ...

  6. Git 版本导致 clone 故障

    问题描述: git clone 报错如下: Initialized empty Git repository in /root/project_php/.git/ error: The request ...

  7. Zabbix Proxy 分布式监控

    简介: Zabbix 是一个分布式监控系统,它可以以一个中心点.多个分节点的模式运行,使用 proxy 能降低 Zabbix Server 的压力,当然也带来了成本~ 适用范围:跨机房.跨地域的网络监 ...

  8. CBCentralManagerDelegate Protocol 委托协议相关分析

    总体概述 CBCentralManagerDelegate 协议中定义了一系列方法列表,这些方法是委托对象必须要实现的方法(也有可选择的),当中央管理器的相应变化就会调用委托对象中实现的相应方法. M ...

  9. Android自定义view与activity的传值

    昨晚在写团队项目的时候,遇到一个问题,直到今天早上才解决...即在自定义view"转盘"结束转动后获取结果的处理中,我是想吧值传到activity中的一个textview中的,但我 ...

  10. 201671010140. 2016-2017-2 《Java程序设计》java学习第九周

    第七章:<异常,断言和日志>知识点小结       本周,进行了对Java中的异常处理的了解学习,以下是部分所得. 一.未检查异常与已检查异常的区别: 未检查异常处理方法:1.捕获2.继续 ...