您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么安全應對MySQL攻擊,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
面對MySQL的攻擊,管理員應當盡可能的保證服務器的安全。下面的文章將向您介紹如何在面對MySQL攻擊時保證安全。
當你連接到MySQL服務器時, 你應使用一個密碼。密碼不以明文在上傳輸。客戶端連接序列中的密碼處理在MySQL 4.1.1中已經升級,很安全。如果你仍然使用pre-4.1.1-風格的密碼,加密算法不如新算法強;通過一些工作,可以竊取客戶端和服務器之間的通信 的聰明的攻擊者可以破解密碼。如果客戶端和服務器之間的連接通過不可信任網絡,你應使用SSH隧道來加密通信。
有其它信息以文本傳送,可以被可以看到連接的任何人讀取。如果你擔心這個,你可以使用壓縮協議來使通信更難以解密。要想使連接更加安全,你應使用SSH來獲得加密的MySQL服務器和MySQL客戶端之間的TCP/IP連接。(注釋:你還可以使用MySQL內部OpenSSL支持。)
為了使MySQL系統安全,強烈要求你考慮下列建議:
◆對所有MySQL用戶使用密碼。客戶端程序不需要知道運行它的人員的身份。對于客戶端/服務器應用程序,用戶可以指定客戶端程序的用戶名。例 如,如果other_user沒有密碼,任何人可以簡單地用mysql -u other_user db_name冒充他人調用mysql程序進行連接,進行MySQL攻擊。如果所有用戶有密碼,使用其它用戶的賬戶進行連接要困難得多。
要想更改用戶的密碼,應使用SET PASSWORD語句。還可以直接更新mysql數據庫中的user表。例如,要更改所有root用戶的MySQL賬戶的密碼。
以下為引用的內容:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
絕對不要作為Unix的root用戶運行MySQL服務器。這樣做非常危險,因為任何具有FILE權限的用戶能夠用root創建文件(例如,~root/.bashrc)。為了防止,mysqld拒絕用root運行,除非使用--user=root選項明顯指定。
應可以(并且應該)用普通非特權用戶運行mysqld。你可以創建獨立的Unix中的mysql賬戶來以便使所有內容更加安全。該賬戶只用于管 理MySQL。要想用其它Unix用戶啟動mysqld,增加user選項指定/etc/my.cnf選項文件或服務器數據目錄的my.cnf選項文件中 的[mysqld]組的用戶名。例如:
以下為引用的內容:
[mysqld]
user=mysql
該命令使服務器用指定的用戶來啟動,無論你手動啟動或通過mysqld_safe或mysql.server啟動。
作為其它Unix用戶而不用root運行mysqld,你不需要更改user表中的root用戶名,因為MySQL賬戶的用戶名與Unix賬戶的用戶名無關。
◆不要允許使用表的符號鏈接。(可以用--skip-symbolic-links選項禁用)。如果你用root運行mysqld則特別重要,因為任何對服務器的數據目錄有寫訪問權限的人則能夠刪除系統中的任何文件!
◆確保mysqld運行時,只使用對數據庫目錄具有讀或寫權限的Unix用戶來運行。
◆不要將PROCESS或SUPER權限授給非管理用戶。mysqladmin processlist的輸出顯示出當前執行的查詢正文,如果另外的用戶發出一個UPDATE user SET password=PASSWORD('not_secure')查詢,被允許執行那個命令的任何用戶可能看得到。
mysqld為有SUPER權限的用戶專門保留一個額外的連接,因此即使所有普通連接被占用,MySQL root用戶仍可以登錄并檢查服務器的活動。
可以使用SUPER權限來終止客戶端連接,通過更改系統變量的值更改服務的器操作,并控制復制服務器,防止MySQL攻擊的發生。
◆不要向非管理用戶授予FILE權限。有這權限的任何用戶能在擁有mysqld守護進程權限的文件系統那里寫一個文件!為了更加安全,由SELECT ... INTO OUTFILE生成的所有文件對每個人是可寫的,并且你不能覆蓋已經存在的文件。
file權限也可以被用來讀取任何作為運行服務器的Unix用戶可讀取或訪問的文件。使用該權限,你可以將任何文件讀入數據庫表。這可能被濫用,例如,通過使用LOAD DATA裝載“/etc/passwd”進一個數據庫表,然后能用SELECT顯示它。
◆如果你不信任你的DNS,你應該在授權表中使用IP數字而不是主機名。在任何情況下,你應該非常小心地使用包含通配符的主機名來創建授權表條目,以防MySQL攻擊!
◆如果你想要限制單個賬戶允許的連接數量,你可以設置mysqld中的max_user_connections變量來完成。GRANT語句也可以支持資源控制選項來限制服務器對一個賬戶允許的使用范圍。
關于“怎么安全應對MySQL攻擊”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。