MySQL安全加固:使用mysql_secure_installation

在安裝MySQL后,為了確保服務器的安全性,建議使用mysql_secure_installation工具對MySQL進行安全加固。這個工具可以幫助我們完成一些關鍵的安全配置,包括設置強密碼、移除匿名用戶、限制root用戶的遠程登錄以及清理默認的測試數據庫等。以下是一個完整的加固過程記錄,并對每一步進行了詳細解釋。

1. 啟動mysql_secure_installation

打開終端,輸入以下命令啟動mysql_secure_installation工具:

sudo mysql_secure_installation

這個命令會啟動MySQL的安全配置向導,幫助我們逐步完成安全設置。

2. 設置密碼驗證組件

向導的第一步是詢問是否要設置密碼驗證組件:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No: n
  • 解釋:密碼驗證組件可以檢查密碼的強度,確保用戶設置的密碼足夠安全。如果你選擇“是”(按yY),系統會要求你設置一個強密碼。如果你選擇“否”(按其他任意鍵),則不會啟用密碼驗證組件。
  • 建議:如果你希望增強MySQL的安全性,建議選擇“是”。但如果你只是在本地測試環境中使用MySQL,可以選擇“否”以跳過這一步。

在本例中,我選擇了“否”(按n),因為我們只是在測試環境中進行配置。

3. 跳過root用戶密碼設置

接下來,向導會提示:

Skipping password set for root as authentication with auth_socket is used by default.
If you would like to use password authentication instead, this can be done with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-user-password-management   for more information.
  • 解釋:默認情況下,MySQL使用auth_socket插件進行身份驗證,這意味著root用戶可以通過操作系統用戶驗證,而無需密碼。如果你希望改用密碼驗證,可以使用ALTER USER命令手動設置。
  • 建議:如果你希望使用密碼驗證,可以通過以下命令設置root用戶的密碼:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
    

在本例中,我們跳過了這一步,因為默認的auth_socket驗證方式已經足夠安全。

4. 移除匿名用戶

向導會提示是否移除匿名用戶:

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.Remove anonymous users? (Press y|Y for Yes, any other key for No) : n
  • 解釋:匿名用戶允許任何人無需密碼即可登錄MySQL,這在生產環境中是一個巨大的安全隱患。移除匿名用戶可以防止未經授權的訪問。
  • 建議:在生產環境中,強烈建議選擇“是”(按yY)以移除匿名用戶。

在本例中,我選擇了“否”(按n),因為我們只是在測試環境中進行配置。

5. 禁止root用戶遠程登錄

向導會提示是否禁止root用戶遠程登錄:

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
  • 解釋:限制root用戶只能從localhost登錄可以有效防止遠程攻擊者通過網絡猜測root密碼。
  • 建議:在生產環境中,強烈建議選擇“是”(按yY)以禁止root用戶遠程登錄。如果你確實需要遠程管理數據庫,可以為遠程管理創建一個具有有限權限的專門用戶。

在本例中,我選擇了“否”(按n),因為我們只是在本地測試環境中進行配置。

6. 移除test數據庫

向導會提示是否移除test數據庫:

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
  • 解釋test數據庫在MySQL安裝時默認創建,且通常具有較寬松的訪問權限,允許任何人訪問。在生產環境中,這種設置可能會帶來安全風險,因此建議移除。
  • 建議:在生產環境中,強烈建議選擇“是”(按yY)以移除test數據庫。

在本例中,我選擇了“是”(按y),并成功移除了test數據庫及其訪問權限。

7. 重新加載權限表

最后,向導會提示是否重新加載權限表:

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
  • 解釋:重新加載權限表可以確保剛才所做的所有更改(如移除匿名用戶、移除test數據庫等)立即生效。
  • 建議:強烈建議選擇“是”(按yY),以確保所有更改立即生效。

在本例中,我選擇了“是”(按y),并成功重新加載了權限表。

8. 完成

完成上述步驟后,向導會顯示以下信息:

Success.All done!

這表示MySQL的安全加固過程已經完成。

總結

通過使用mysql_secure_installation工具,我們可以輕松地完成MySQL的安全加固。雖然在測試環境中可以選擇跳過某些步驟,但在生產環境中,強烈建議啟用密碼驗證組件、移除匿名用戶、禁止root用戶遠程登錄以及移除test數據庫。這些措施可以顯著提高MySQL服務器的安全性。

希望這篇文章對你有所幫助!如果你有任何問題或建議,請隨時留言。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912867.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計模式之中介者模式 (Mediator Pattern) -聊天室-控制室

中介者模式用于減少多個對象之間的直接通信,而是通過一個中介對象來協調它們之間的交互。下面我用一個聊天室的例子來演示這個模式。 舉個栗子:聊天室系統 在這個系統中,用戶不直接相互發送消息,而是通過聊天室(中介者…

SpringSecurity01

目錄 一、權限控制 二、相關框架 1、shiro 2、springsecurity 三、springsecurity使用流程 1、搭建環境實現默認用戶名和密碼登錄 2、使用數據庫表中定義好的用戶名和密碼訪問實現等值密碼匹配 1)sql文件 2)搭建jdbc或者mybatis或者mybatis-plus環境 3&am…

解決git clone報錯:fatal unable to access xxx. Could not resolve host github.com

作者:唐叔在學習 專欄:問題百寶箱 文章目錄 問題描述問題診斷網絡連通性測試 解決方案1. 獲取GitHub最新IP地址2. 修改系統hosts文件 驗證解決方案常見問題解答總結 問題描述 當使用git clone命令克隆GitHub倉庫時,可能會遇到如下錯誤&#…

魔術方法__call__

__call__ 是一個特殊方法(也稱為魔術方法),用于使一個類的實例能夠像函數一樣被調用。當定義了這個方法后,實例對象可以后接括號(即 ())來觸發調用,這會讓實例表現得像函數一樣。 ?使實例可調…

PHP中的異常處理與錯誤日志記錄

在PHP編程實踐中,異常處理是一項至關重要的技能,它能夠幫助開發者識別和響應程序執行過程中發生的非預期事件。與此同時,錯誤日志記錄是確保應用程序可靠性和穩定性的關鍵組成部分。本文將詳細介紹如何在PHP中實現這兩個方面的技術。 首先&a…

JS去除空格(數組內字符串)

1.JS中去除空格 去除這個數組中每個對象內部參數(也就是屬性值)的空格,可以通過遍歷數組,再遍歷每個對象的屬性,使用 trim() 方法來去除字符串首尾的空格。以下是具體實現代碼: let data [{ designHours:…

【Spring篇01】:Bean的線程安全問題總結

文章目錄 1. 核心問題:Spring 框架中的 Bean 是線程安全的嗎?2. 最佳實踐與解決方案禁止方案:濫用prototype作用域推薦方案(按優先級排序) 3. 生產環境中的典型案例Case 1:訂單服務統計Case 2:用…

本地項目上傳git

將您本地的項目代碼上傳到一個私有的、別人看不見的 GitHub 倉庫,是進行云端協作(如使用 Google Colab)、版本控制和代碼備份的最佳實踐。這是一個非常重要的技能。 整個過程可以分為三個部分: 準備工作:在您的電腦上…

【.NET Framework 窗體應用程序項目結構介紹】

在使用 Visual Studio (VS) 開發 .NET Framework 窗體應用程序(Windows Forms App) 時,項目結構通常包含以下核心文件夾和文件。以下是詳細介紹: 1. 項目根目錄下的主要文件 (1) .csproj 文件 作用:C# 項目文件&…

【SpringAI】4.多模態提問

SpringAI多模態提問 概述 SpringAI支持多模態輸入,允許AI模型同時處理文本和圖像內容。這對于需要視覺理解的AI應用場景非常有用,如圖像描述、視覺問答、圖像分析等。 核心概念 1. Media類 SpringAI使用Media類來表示多模態內容,支持圖…

自動化提示工程:未來AI優化的關鍵突破

自動化提示工程:未來AI優化的關鍵突破 自動化提示工程能夠自動化或半自動化地生成或優化提示詞,以探索大規模的提示詞組合,并通過 自動優化技術提升提示詞生成的穩定性? 依據自動化提示工程實現形式在邏輯推理和效能導向 兩個維度的取舍上,將其分為基于思維鏈的自動化提示工…

多模態大語言模型arxiv論文略讀(148)

A Comprehensive Survey and Guide to Multimodal Large Language Models in Vision-Language Tasks ?? 論文標題:A Comprehensive Survey and Guide to Multimodal Large Language Models in Vision-Language Tasks ?? 論文作者:Chia Xin Liang, P…

關于.net core開發的實體所有注解詳解

以下是對 .NET Core 開發中實體類(用于數據模型)和 Web API 控制器/方法(用于定義接口)常用注解屬性(Attributes)的詳細說明與示例,涵蓋數據驗證、API 行為控制、序列化、Swagger/OpenAPI 文檔生…

【安全工具】SQLMap 使用詳解:從基礎到高級技巧

目錄 簡介 一、安裝與基礎配置 1. 安裝方法 2. 基本語法 二、基礎掃描技術 1. 簡單檢測 2. 指定參數掃描 3. 批量掃描 三、信息收集 1. 獲取數據庫信息 2. 獲取當前數據庫 3. 獲取數據庫用戶 4. 獲取數據庫版本 四、數據提取技術 1. 列出所有表 2. 提取表數據 …

Redis大Key拆分實戰指南:從問題定位到落地優化

引言 最近在項目里遇到一個棘手問題:生產環境的Redis突然變“卡”了!查詢延遲從幾毫秒飆升到幾百毫秒,監控面板顯示某個節點CPU使用率飆到90%。排查半天才發現,原來是某個用戶訂單的Hash Key太大了——單Key存了100多萬個訂單字段…

RabbitMQ簡單消息發送

RabbitMQ簡單消息發送 簡單代碼實現RabbitMQ消息發送 需要的依賴 <!--rabbitmq--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>x.x.x</version>&l…

【閱讀筆記】基于雙邊濾波改進的空域濾波算法

一、雙邊濾波空域濾波算法 雙邊濾波是一種典型的非線性濾波算法。基于高斯濾波&#xff0c;雙邊濾波利用強度的變化來保存邊緣信息&#xff0c;解決了邊緣模糊在視覺觀感上認為重要信息丟失的問題。雙邊濾波的濾波效果主要取決于兩個參數&#xff1a;兩個像素的空間鄰近性和灰…

華為交換機堆疊與集群技術深度解析附帶腳本

一、引言 在企業園區網、數據中心等網絡場景中&#xff0c;為了提升網絡的可靠性、擴展性和管理效率&#xff0c;華為交換機提供了堆疊&#xff08;Stack&#xff09;和集群&#xff08;CSS&#xff0c;Cluster Switch System &#xff09;技術。這兩種技術能夠將多臺物理交換…

Python網絡爬蟲(十三)- 數據解析模塊 BeautifulSoup

1、BS4簡介 BeautifulSoup(簡稱 BS4) 是一個用于解析 HTML 和 XML 文檔的 Python 第三方庫。它能夠從網頁或其他 HTML/XML 格式的文本中提取數據,并將其轉換為結構化的對象,方便開發者快速定位、提取和操作所需信息。它的核心功能是通過解析器將無序的標記語言轉換為樹形結…

如何使用 Pytorch Lightning 啟用早停機制

【PL 基礎】如何啟用早停機制 摘要1. on_train_batch_start()2. EarlyStopping Callback 摘要 本文介紹了兩種在 PyTorch Lightning 中實現早停機制的方法。第一種是通過重寫on_train_batch_start()方法手動控制訓練流程&#xff1b;第二種是使用內置的EarlyStopping回調&#…