溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫生產(chǎn)環(huán)境安全規(guī)范

發(fā)布時間:2020-08-07 14:52:30 來源:ITPUB博客 閱讀:330 作者:chenfeng 欄目:MySQL數(shù)據(jù)庫
一、MySQL服務(wù)器安全規(guī)范
1. 禁止應(yīng)用直連DB,一般通過代理訪問
2. 禁止DB公網(wǎng)訪問。
3. 禁止生產(chǎn)和辦公互通,需生產(chǎn)環(huán)境和辦公環(huán)境隔離。
4. Linux系統(tǒng)初始化安全選項(xiàng):
    1)、一些alias,寫入/etc/profile,防止誤操作
            alias c='clear'
            alias cp='cp -i'
            alias l.='ls -d .* --color=auto'
            alias ll='ls -l --color=auto'
            alias ls='ls --color=auto'
            alias mv='mv -i'
            alias rm='rm -i'
            alias MySQL='MySQL -U'
            其中MySQL -U,防止update和delete沒有指定條件,拒絕操作。
    2)、刪除linux操作日志信息、MySQL操作歷史記錄,避免被拖庫。
            rm .bash_history .MySQL_history
            ln -s /dev/null .bash_history
            ln -s /dev/null .MySQL_history
    3)、避免"Too many open files"
            OS限制:cat /etc/security/limits.conf,MySQL用戶能夠打開65535個文件描述符
            MySQL soft nofile 65535
            MySQL hard nofile 65535
            my.cnf參數(shù)修改:
            open_files_limit = 65535
            innodb_open_files=65535
5. MySQL初始化配置安全選項(xiàng):
    1)、合理規(guī)劃目錄結(jié)構(gòu),日志目錄順序?qū)懡ㄗh機(jī)械盤(binlog/slowlog/relaylog),數(shù)據(jù)目錄隨機(jī)寫建議ssd。
    2)、MySQL相關(guān)目錄設(shè)置專用MySQL組和用戶,MySQL后臺啟動方式不能以root來啟動,比如通過MySQL用戶 。
    3)、設(shè)置bind-address為內(nèi)網(wǎng)本機(jī)IP。
    4)、修改MySQL默認(rèn)服務(wù)端口號,不推薦使用3306,不同業(yè)務(wù)設(shè)置不同的端口號。
    5)、通過修改max_connections和max_user_connections來控制最大連接數(shù),過載保護(hù)。
    6)、啟用safe-user-create,用戶不能用GRANT語句創(chuàng)建新用戶,除非用戶有MySQL.user表的INSERT權(quán)限。
    7)、禁止local-infile=1,打開load data local file權(quán)限,避免數(shù)據(jù)泄漏和黑客攻擊。
    8)、禁止skip-grant-tables啟動,防止MySQL繞過權(quán)限系統(tǒng)
    9)、配置加上skip-name-resolve,防止主機(jī)名不被解析。
    10)、禁止skip-networking,其它機(jī)器不能使用tcp/ip連接。
    11)、禁止symbolic-links=1,關(guān)閉軟鏈接功能。

二、MySQL帳號管理安全策略和MySQL權(quán)限相關(guān)的系統(tǒng)表:
1. MySQL.USER表
2. MySQL.DB表
3. MySQL.TABLES_PRIV表
4. MySQL.COLUMNS_PRIV表
自上而下,逐級驗(yàn)證,逐級進(jìn)行賬戶權(quán)限的粒度控制
MySQL初始化:
1. 刪除線上密碼長度小于16的帳號。
2. 刪除非root賬戶
3. 刪除非localhost和127.0.0.1賬戶。
4. 刪除test數(shù)據(jù)庫
5. 賬號區(qū)分:監(jiān)控帳號、管理帳號、復(fù)制帳號、備份帳號、應(yīng)用帳號
    1)、監(jiān)控帳號(localhost和127.0.0.1):
        GRANT SELECT,PROCESS,REPLICATION CLIENT
    2)、備份帳號(localhost和127.0.0.1):
        GRANT SELECT,LOCK TABLES,RELOAD
    3)、復(fù)制帳號(對應(yīng)主庫ip):
        GRANT REPLICATION SLAVE,REPLICATION CLIENT
    4)、管理帳號(對應(yīng)代理ip):
        GRANT ALL PRIVILEGES
    5)、root帳號
        root密碼采用強(qiáng)密碼策略,至少32位隨機(jī)密碼,推薦使用pwgen和makepasswd來生成32位隨機(jī)密碼,包含大小寫、數(shù)字、字母、特殊字符。
        root帳號只授權(quán)l(xiāng)ocalhost和127.0.0.1,不得授予%權(quán)限。
        root帳號建議每3個月修改一次,不同實(shí)例,設(shè)置不同的root密碼。
    6)、應(yīng)用帳號
        a. 應(yīng)用帳號不得擁有Super、Create、Drop、File,Grant,Reload,Shutdown,Process等權(quán)限。
        b. 最小權(quán)限原則:select,insert,update,delete權(quán)限,禁止應(yīng)用帳號權(quán)限設(shè)置為all。
        c. 應(yīng)用帳號不得擁有系統(tǒng)數(shù)據(jù)庫(MySQL)的任何權(quán)限,不能使用*.*來授權(quán)。
        d. 應(yīng)用帳號只給所屬應(yīng)用的數(shù)據(jù)庫授權(quán),只給其所屬應(yīng)用的IP或代理授權(quán)。
        e. MySQL從庫必須添加read-only,只給select權(quán)限,嚴(yán)禁all,導(dǎo)致只讀失效。
        f. 應(yīng)用帳號密碼策略同root,建議每3個月修改一次。

三、MySQL數(shù)據(jù)安全策略
1. 物理(xtrabackup)和邏輯(MySQLdump)相結(jié)合的備份策略,全備+增量+異地。
2. 數(shù)據(jù)庫備份文件定期回放,定期驗(yàn)證備份的可恢復(fù)性。
3. 針對重要業(yè)務(wù)系統(tǒng)建立delay數(shù)據(jù)庫或者采取Linux初始化時設(shè)置lvm策略,可快照閃回。
4. 假設(shè)有Binlog Server,遇到緊急情況可數(shù)據(jù)恢復(fù)。

附:MySQL命令行提示配置
MySQL -uroot -p123456 --prompt="MySQL-\\v->[\\r:\\m:\\s] [\\u@\\h:\\d] >"

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI