首頁 資料庫 mysql教程 MySQL服务器内部安全数据目录访问

MySQL服务器内部安全数据目录访问

Jun 07, 2016 pm 04:05 PM
mysql 內部 安全 數據 伺服器 目錄 訪問

作为MySQL管理员的您,在维护MySQL安装的安全性和完整性方面能够做些什么。在本文中,我们将更详细地讨论以下与安全性相关的问题: 为什么说安全性是重要的,应该警惕哪些攻击? 从服务器主机中的用户那里您将面临什么风险(内部安全性),能做什么? 从在网

作为MySQL管理员的您,在维护MySQL安装的安全性和完整性方面能够做些什么。在本文中,我们将更详细地讨论以下与安全性相关的问题:

为什么说安全性是重要的,应该警惕哪些攻击?

从服务器主机中的用户那里您将面临什么风险(内部安全性),能做什么?

从在网络上连接到服务器的客户机那里您将面临什么风险(外部安全性),能做什么?

MySQL管理员有责任保护数据库内容的安全,使得记录只能由经过严格认证的那些用户访问。这包括内部安全性和外部安全性。

内部安全性关心文件系统级的问题,如保护MySQL数据目录免遭拥有运行服务器的机器账号的用户的攻击。但是,如果数据目录内容的文件许可权过分随意,有人可以将对应这些表的文件进行简单的替换的话,内部安全性就不能很好地确保适当建立对网络上客户机访问的授权表的控制。

外部安全性关心客户机从外部连接的问题,如防止MySQL服务器免遭通过网络进来的通过服务器的连接请求对数据库内容访问的攻击。要建立MySQL授权表使得它们不允许对服务器所管理的数据库的访问(除非提供了有效的名字和口令)。

本文提供了应该了解的有关问题的指导,并说明如何防止内部和外部级别中未认证的访问。

MySQL服务器提供了一个通过mysql数据库中的授权表来实现的灵活的权限系统。可以设置这些表的内容来允许或拒绝数据库对客户机的访问。这提供了关于未认证的网络访问数据的安全性。但是,如果服务器主机上的其他用户具有对该数据目录内容的直接访问权,则将不能对访问数据的网络建立良好的安全性。除非知道您是曾在运行MySQL服务器的机器上注册的惟一的一个人,否则需要关心在该机器上的其他用户获得对数据目录访问的可能性。

以下是您想要保护的内容:

数据库文件。显然想要维护由服务器维护的数据库的保密性。数据库的所有者通常要考虑数据库内容的专有性。即使他们不考虑,也最多是使数据库的内容公共化,而不会使那些内容因数据库目录安全性低而被泄露。

日志文件。常规和更新日志必须安全,因为它们包含了查询文本。这有相当的利害关系,因为具有日志文件访问的任何人都可以监控发生在数据库中的事务处理。

与日志文件有关的更为特殊的安全性问题是,像GRANT 和SET PASSWORD 这样的查询被记录在日志中了。常规和更新日志文件包含敏感的查询文本,其中包括了口令(MySQL使用口令加密,但这只适用于在口令设置之后的连接建立。设置口令的过程包含在GRANT、INSERT 或SET PASSWORD 这样的查询中,但这些查询以纯文本的形式被记录。)如果一个攻击者具有对日志的读访问权,那他只需在日志中对GRANT 或PASSWORD 这样的词运行grep 就能找到敏感信息。

显然,您不想让服务器主机上的其他用户拥有对数据目录文件的写访问权,因为那样的话,他们就可以在状态文件或数据库表上肆意践踏。但读访问也很危险。如果表文件可读取,那么窃取文件并使MySQL自己以纯文本的形式显示表的内容是微不足道的事。可按下列步骤进行:

1) 在服务器主机上安装您的MySQL服务器,但使用与正式服务器不同的端口、套接字和数据文件。

2) 运行mysql_install_db 初始化您的数据目录。这将允许您作为MySQL的root 用户访问服务器,因此您将具有完全控制服务器访问机制的权利。它还建立了一个test 数据库。

3) 将您想窃取的表的相应文件拷贝到服务器数据目录下的test 子目录中。

4) 启动作案服务器。您可以随意访问这些表。SHOW TABLES FROM test 将显示您拥有一个被窃取表的备份, SELECT * 将显示任何这些表的全部内容。

5) 如果更坏一点,打开服务器的匿名用户账号的许可权,使任何人都能从任何地方连接到该服务器来访问您的test 数据库。现在,您已经向全世界公布了这些被偷窃的表。

考虑一下刚才的情况,然后颠倒过来想。您希望有人对您这样做吗?当然不要。

通过在数据目录中执行ls -l 可以确定数据目录中是否包含非安全的文件或目录。应查看具有以开启的“组”或“其他”许可权的文件或目录。以下是一个非安全数据目录的部分列表,是该数据目录中的一部分数据库目录:

MySQL服务器内部安全数据目录访问

正如您所看到的,有些数据库目录有正确的许可权,而有些则不是这样。本例中的情况是由于时间引起的。较老的服务器创建了限制较少的许可权,且较老的服务器与较新的服务器相比,在设置许可权方面不严格(请注意,有更多限制的目录, menager 和t m p,都有更为新的日期)。MySQL当前的版本确保这些文件只对服务器运行的用户可读。

让我们来安排这些许可权,使得只有服务器的用户才能访问它们。主要的保护手段来自由UNIX 文件系统本身提供的工具,这些工具可设置文件和目录的所有权及方式。操作步骤如下:

1) 定位到数据目录中:% cd DATADIR

2 ) 设置该数据目录下所有文件的所有权为运行该服务器的账号所拥有(必须以root 身份执行这一步)。在本书中,笔者对此账号的用户名和组名使用mysqladm 和mysqlg r p。可以用下列命令之一修改所有权:

<ccid_code># chown -R mysqladmin.mysqlgrp
    # find . -follow -type d -print | xargs chown mysqladmin.mysqlgrp</ccid_code>
登入後複製

3 ) 修改数据目录和数据库目录的方式,使得它们仅对于mysqladm 是可读的。这样防止了其他用户访问数据目录的内容。可以利用下列命令之一来进行,这些命令或者以root 或者以mysqladm 运行(后者更好,可以使作为root 运行的命令数量最小化):

<ccid_code>% chmod -R go-rwx
    % find . -follow -type d -print | xargs chmod go -rwx</ccid_code>
登入後複製

4 ) 对mysqladm 用户设置数据目录内容的所有权和方式。现在,您应该确保总是以mysqladm 运行,因为它现在是唯一拥有该数据目录访问权的用户。

在上述步骤之后,将拥有以下许可权:

MySQL服务器内部安全数据目录访问

(责任编辑:铭铭 mingming_ky@126.com TEL:(010-68476636)


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

MySQL與其他編程語言:一種比較 MySQL與其他編程語言:一種比較 Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

解決數據庫連接問題:使用minii/db庫的實際案例 解決數據庫連接問題:使用minii/db庫的實際案例 Apr 18, 2025 am 07:09 AM

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

laravel框架安裝方法 laravel框架安裝方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

解決MySQL模式問題:TheliaMySQLModesChecker模塊的使用體驗 解決MySQL模式問題:TheliaMySQLModesChecker模塊的使用體驗 Apr 18, 2025 am 08:42 AM

在使用Thelia開發電商網站時,我遇到了一個棘手的問題:MySQL模式設置不當,導致某些功能無法正常運行。經過一番探索,我找到了一個名為TheliaMySQLModesChecker的模塊,它能夠自動修復Thelia所需的MySQL模式,徹底解決了我的困擾。

MySQL:結構化數據和關係數據庫 MySQL:結構化數據和關係數據庫 Apr 18, 2025 am 12:22 AM

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL:初學者的基本技能 MySQL:初學者的基本技能 Apr 18, 2025 am 12:24 AM

MySQL適合初學者學習數據庫技能。 1.安裝MySQL服務器和客戶端工具。 2.理解基本SQL查詢,如SELECT。 3.掌握數據操作:創建表、插入、更新、刪除數據。 4.學習高級技巧:子查詢和窗口函數。 5.調試和優化:檢查語法、使用索引、避免SELECT*,並使用LIMIT。

See all articles