Linux之防火墻管理篇[Ubuntu:ufw]
前言
由於近期,騰訊雲服務器就要到期了,學生優惠即將失效了,所以準備將數據庫和項目遷移到vultr上。然而,在使用nivicat連接mysql數據庫的過程中,卻屢次出現:Can‘t connect to MYSQL server on ‘XX.XX.XX.XX‘【10060 “Unknown error”】。
查閱網友的博客後,對方分析可能三個原因:
1 網絡 [排除]
2 權限。mysql數據庫登陸用戶的權限不足。[經過下述步驟測試,排除]
# 進入MYSQL數據庫 [email protected]# sudo mysql -u root -p [email protected]# # 新建用戶 mysql> CREATE user [email protected]‘%‘;# 任意主機 mysql> SET PASSWORD FOR [email protected]‘%‘=PASSWORD(‘test‘); 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:全過程]
Linux之防火墻管理篇[Ubuntu:ufw]