zoukankan      html  css  js  c++  java
  • Linux之防火墙管理篇[Ubuntu:ufw]

    前言

      由于近期,腾讯云服务器就要到期了,学生优惠即将失效了,所以准备将数据库和项目迁移到vultr上。然而,在使用nivicat连接mysql数据库的过程中,却屡次出现:Can't connect to MYSQL server on 'XX.XX.XX.XX'【10060 “Unknown error”】。

      查阅网友的博客后,对方分析可能三个原因:

      1 网络 [排除]

      2 权限mysql数据库登陆用户的权限不足。[经过下述步骤测试,排除]

    # 进入MYSQL数据库
    XX@yy# sudo mysql -u root -p
    XX@yy# 
    
    # 新建用户
    mysql> CREATE user jack@'%';# 任意主机
    mysql> SET PASSWORD FOR jack@'%'=PASSWORD('test');
    mysql> grant all privileges on *.* to jack;
    mysql> FLUSH PRIVILEGES;# 更新mysql数据库系统的用户权限列表
    
    # shell端登陆mysql by jack
    OK
    
    # navicat端登陆mysql by jack
    继续报上述错误

       3 防火墙 

      看来,只剩下这种可能了,我试了试,成了!
      我先通过vultr云服务商的FireWall来配置防火墙的进入站端口,结果,80端口生效了,但3306却依旧不行,目前原因未知。

       那还有其他办法来配置linux服务器的防火墙吗?答案有,便是linux自带的ufw防火墙工具。

    UFW介绍与安装

      Uncomplicated Firewall,它是一款「用户友好」的shell工具,可用于管理 iptables 防火墙规则,其主要目的就是让管理 iptables防火墙规则 更加轻松容易

      【系统默认携带UFW +UFW 默认禁用】Ubuntu 18.04 LTS 系统中已默认附带了 UFW 工具,并且默认都是禁用状态(status:inactive)。

      【UFW默认:禁止所有端口入站,开启所有端口出站】默认情况下,UFW 将阻止所有传入连接并允许所有传出连接。即 除非用户专门打开特定端口,否则任何尝试访问本服务器的人都无法连接,但服务器上运行的应用程序和服务却能够对外访问。

      检查是否已安装ufw工具

    # 方式一
    man ufw
    
    # 方式二(推荐)
    sudo ufw status verbose  #查看UFW已配置的状态详细信息
    sudo ufw status numbered#查看UFW已配置的状态详细信息,并对每一项配置编号显示
    # verbose: adj.详细的,冗长的

      如果未安装,可通过下述命令一键安装

    apt-get install ufw
    

    UFW使用

      1.列出所有应用程序配置策略

    sudo ufw app list
    

       2.查找有关配置文件和包含规则的更多信息

    sudo ufw app info 'Nginx Full'
    

      

      3.允许SSH连接

       备注:在服务器上正式启用 UFW 防火墙之前,需要事先添加允许 SSH 连接的传入规则;否则,即使UFW开启SSH连接命令,也无效。

    sudo ufw allow ssh
    
    sudo ufw allow http

      4.允许指定端口连接

    sudo ufw allow 3306/tcp
    sudo ufw allow 80/tcp
    sudo ufw allow 8080/tcp
    sudo ufw allow 22/tcp

      5.允许指定端口范围内连接

    sudo ufw allow 7100:7200/tcp
    sudo ufw allow 7100:7200/udp
    
    # 注:除允许单个端口连接之外,UFW 还允许直接配置端口范围。在使用 UFW 的端口范围时,必需指定 tcp 或 udp 协议。

      6.允许/拒绝指定特定IP地址入站/连接  

    sudo ufw allow from XX.YY.ZZ.MM
    sudo ufw deny from XX.YY.ZZ.MM

      7.删除UFW策略

    # 方式一
    # 查看想删除UFW策略的配置项对应编号
    sudo ufw status numbered
    

      

    # 指定删除编号为XX的防火墙策略
    sudo ufw delete 4
    #方式二
    sudo ufw delete allow 8069

      8.启用UFW配置

    sudo ufw enable
    

      9.禁用UFW配置

    sudo ufw disable

      10.重置UFW配置

      备注:重置 UFW配置项时,系统会禁用 UFW 并删除所有活动规则。

    sudo ufw rest

    参考文献

      [1] 如何在Ubuntu 18.04 LTS上使用UFW设置防火墙 

      [2] 数据库之数据库管理篇[mysql]

      [3] 远程连接docker中的mysql容器 报错10060 unknown error解决办法详解。

      [4] Linux之搭建远程数据库[Ubuntu:全过程] 

  • 相关阅读:
    发布NBearV3最终测试版v3.2.5
    NBearV3教程——Web篇
    JUnit中的设计模式:命令模式
    HTTP协议 通信过程介绍
    JUnit中的设计模式:适配器模式
    《Head First设计模式》 读书笔记15 其余的模式(一) 桥接 生成器 责任链
    SQL基础:数据库规范化与三范式
    《Head First设计模式》 读书笔记13 复合模式 MVC模式
    Android Tab标签的使用基础
    Android设备上的传感器模拟工具:SensorSimulator
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/10662884.html
Copyright © 2011-2022 走看看