全部產品
Search
文件中心

Security Center:弱口令安全最佳實務

更新時間:Jun 19, 2024

如果您的伺服器使用弱口令登入,駭客可能會非法登入您的伺服器,竊取伺服器資料或破壞伺服器。建議您為伺服器設定高安全性的登入口令,並定期更換登入口令。本文介紹如何提升登入口令的安全性以及常見系統修改登入口令的方法。

弱口令的危害

在伺服器系統中使用弱口令可能會造成以下危害:

  • 普通賬戶使用的弱口令可能會被猜解或被破解工具破解,從而泄露個人隱私資訊,甚至造成財產損失。

  • 系統管理員賬戶弱口令可能會導致整個系統被攻擊、資料庫資訊被竊取、業務系統癱瘓,造成所有使用者資訊的泄露和巨大的經濟損失,甚至可能引發群體性的網路安全危害事件。

及時檢測弱口令能夠有效防止系統被攻擊和資訊泄露,可以提高系統的安全性。您可以使用Security Center基準檢查功能,檢查您的伺服器中是否存在高危弱口令風險。如果在您的資產中檢測出了高危弱口令風險,建議您參考提升口令安全中的方式及時修改資產中的弱口令。修改口令的具體操作,請參見常見系統口令修改方式

提升口令安全

您可以通過以下方法提升登入口令的安全性:

  • 設定複雜密碼

    複雜密碼應同時滿足以下要求:

    • 密碼長度大於等於8個字元。

    • 至少包含大寫字母(A~Z)、小寫字母(a~z)、數字(0~9)、特殊字元(~、!、@、$、%、^、&、*、-、_、=、+、#、/、?)中的三種字元組合。

    • 密碼不能為使用者名稱或使用者名稱的倒序。

  • 不使用常見或公開的弱口令

    以下是常見或公開的弱口令:

    • 已公開的常用弱口令。例如abcd1234、admin、root、admin@123等。

    • 數字或字母連排或混排,鍵盤字母連排。例如123456、abcdef、123abc、qwerty、1qaz2wsx等。

    • 短語密碼。例如5201314、woaini1314等。

    • 公司名稱、生日、姓名、身份證、手機號、郵箱名、使用者ID、時間年份等。

  • 定期修改密碼

    建議每隔90天更改一次密碼。

常見系統口令修改方式

以下表格介紹修改Linux伺服器、MySQL資料庫、Redis資料庫等常見系統的登入弱口令的操作方法。

重要

以下介紹列表中用到的公用參數,在實際使用過程中您需要根據實際情況替換。

  • <UserName>:登入使用者名稱。

  • <OldPassword>:舊密碼。

  • <NewPassword>:新密碼。

  • <HostName>:主機名稱或IP地址。

系統名稱

修改登入口令操作步驟

Linux系統

在Linux系統伺服器中,執行passwd <UserName>命令,修改使用者登入口令。執行完命令後請根據提示輸入新口令。

如果不輸入<UserName>則修改的是目前使用者的口令。

Windows系統

此處以伺服器作業系統為Windows Server 2019為例說明修改使用者登入口令的方法。

  1. 登入Windows伺服器,在左下角單擊開始表徵圖表徵圖。

  2. 單擊設定表徵圖表徵圖,在Windows設定頁面,單擊賬戶

  3. 在左側導覽列單擊登入選項

  4. 根據頁面提示更改伺服器密碼。

MySQL資料庫

  1. 登入MySQL資料庫。

  2. 執行以下命令查看資料庫使用者密碼資訊。

    SELECT user, host, authentication_string FROM user;
    說明

    部分MySQL資料庫版本可能不支援上述查詢命令。如果您執行上述命令未獲得使用者密碼資訊,請您執行以下命令。

    SELECT user, host, password FROM user; 
  3. 執行以下命令根據查詢結果及弱密碼警示資訊修改具體使用者的密碼。

    SET PASSWORD FOR '<UserName>'@'<HostName>' = PASSWORD('<NewPassword>'); 
  4. 執行重新整理命令flush privileges;

Redis資料庫

  1. 開啟Redis資料庫的設定檔redis.conf

  2. 執行以下命令修改或增加口令。

    requirepass <NewPassword>;

    如果已存在登入口令,則執行該命令後將修改原來的登入口令;如果不存在登入口令,則執行該命令後將添加新口令。

  3. 重啟Redis服務。

SQL Server資料庫

  • Linux系統登入

    登入SQL Server資料庫,執行以下命令修改登入口令。

     exec sp_password <OldPassWord>,<NewPassword>,<UserName>
  • Windows認證登入

    在SQL Server資料庫用戶端依次選擇安全性 > 登入名稱 ,選中使用者後將弱口令修改為複雜口令。

MongoDB資料庫

  1. 登入MongoDB資料庫。

  2. 執行use admin命令,切換到admin使用者。

  3. 執行db.changeUserPassword("<UserName>", "<NewPassword>")命令,修改資料庫的登入名稱和口令。

    建議將新口令設定為長度大於12個字元,包含數字、大寫字母、小寫字母和特殊字元的強口令。

  4. 確保開啟了身份認證功能。

    進入MongoDB設定檔mongod.conf,將security.authorization設定為enabled或將auth配置項設定為true

  5. 執行systemctl restart mongod命令,重啟MongoDB服務。

PostgreSQL資料庫

  1. 登入PostgreSQL資料庫。

  2. 執行以下命令修改弱口令。

    ALTER USER <UserName> WITH PASSWORD <NewPassword>;

Tomcat

  1. 開啟Tomcat根目錄下的設定檔conf/tomcat-user.xml

  2. 修改user節點的password屬性值為複雜口令。

Rsync

  1. 開啟Rsync的設定檔rsyncd.conf

  2. 找到secrets file配置項,並在該配置項中找到rsyncd.secret檔案的路徑。

  3. rsyncd.secret檔案按<UserName>:<NewPassword>格式編輯,修改對應使用者的口令為新的複雜口令。

  4. 重啟Rsync服務。

SVN

  1. 開啟版本庫目錄。

  2. 在設定檔<path>/conf/svnserve.conf中找到password-db

  3. 根據password-db配置找到口令設定檔路徑,將該檔案中的口令修改為指定的口令(預設為passwd檔案)。

  4. 重啟SVN服務。

vsftpd伺服器軟體

  • 本機使用者

    1. 開啟設定檔vsftpd.conf

    2. 增加或修改配置項anonymous_enable的值為NO,禁止匿名登入。

    3. 執行passwd <UserName>命令,修改FTP使用者的口令。

    4. 根據提示設定符合要求的新的複雜口令。

  • 虛擬使用者

    1. 開啟檔案/etc/vsftpd/login.txt

    2. 修改使用者名稱對應的口令並儲存。

      該檔案格式為:第1行是使用者A的使用者名稱,第2行是使用者A的口令,第3行是使用者B的使用者名稱,第4行是使用者B的口令,以此類推。

    3. 執行db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db命令。

    4. 修改/etc/pam.d/vsftpd檔案。

      在存在auth pam_userdb.soaccount pam_userdb.so的行後分別添加語句db=/etc/vsftpd/login,修改完成後儲存。具體位置見下圖。vsftpd檔案修改位置

    5. 重啟vsftpd。

FTP

  1. 使用root使用者登入目標Linux伺服器。

  2. 執行以下命令。

    passwd ftp <UserName>
  3. 按照提示輸入新密碼。

    修改密碼成功後,會提示all authentication tokens updated successfully

InfluxDB資料庫

  1. 登入InfluxDB資料庫。

  2. 執行以下命令修改資料庫密碼。

    使用新密碼替換NewPassword,新密碼需使用半形單引號擴起來。

    set password for "<UserName>" = "<NewPassword>" 

Jboss6、7

  • Jboss6:

    1. 編輯設定檔/conf/props/jmx-console-users.properties,修改設定檔中的弱口令,修改後的格式為<UserName> =<Password>

    2. 重啟Jboss6。

      1. 執行ps -ef|grep jboss查看當前Jboss6進程。

      2. 執行kill -9 進程ID關閉進程。

        其中進程ID需要替換成Jboss6的進程ID

      3. 執行以下命令啟動Jboss服務。

        jboss6_path需要替換成Jboss6的安裝目錄。

         jboss6_path/bin/run.sh
  • Jboss7:

    1. 編輯設定檔/configuration/mgmt-users.properties,刪除使用弱口令的使用者條目。

    2. 運行Jboss安裝路徑下的bin/adduser.sh,根據提示添加使用複雜密碼的新使用者。

Jenkins

  1. 登入Jenkins服務Web控制台。

  2. 單擊設定,進入設定頁面。

  3. 密碼處輸入新密碼。

OpenLDAP

  1. 執行以下命令查詢OpenLDAP管理員密碼欄位的值和存放位置。

    ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" dn olcRootDN olcRootPW
  2. 執行以下命令產生新密碼。

     slappasswd -s <NewPassword>

    執行該命令後可以獲得新密碼的雜湊值NewHash。

  3. 建立名稱為newpassword.ldif的檔案,並在檔案中添加以下資訊。

    dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootPW olcRootPW: NewHash

    其中dn行的內容為第一個查詢命令返回資料中dn的值,NewHash為新密碼的雜湊值。

  4. 執行以下命令匯入建立的ldif檔案。

    ldapmodify -H ldapi:// -Y EXTERNAL -f newpasswd.ldif 

Linux系統OpenVpn

編輯設定檔pwd-file,修改OpenVpn的密碼。具體操作如下:

  1. 找到設定檔pwd-file。設定檔一般在/etc/openvpn目錄。

  2. 在設定檔中加入以下語句,取消用戶端的認證認證。

    client-cert-not-required
  3. 在設定檔中加入以下語句,開啟使用者密碼指令碼。

    auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
  4. 在設定檔中加入以下語句,屏蔽system警示。

    script-security  system
  5. 編輯/etc/openvpn/psw-file檔案,一行對應一個帳號,使用者名稱和密碼用空格隔開。樣本:

    cat /etc/openvpn/psw-file 
    abcdocker <NewPassWord>
    abc <NewPassWord>
    test <NewPassWord>
  6. 執行以下命令擷取checkpsw.sh指令碼。

    wget http://openvpn.se/files/other/checkpsw.sh
    說明

    checkpsw.sh預設從檔案/etc/openvpn/psw-file中讀取使用者名稱密碼。

Oracle資料庫

  1. 登入Oracle資料庫。

  2. 執行以下命令修改口令。

    alter user <UserName> identified by <NewPassWord>;

pptpd服務

  1. 編輯/etc/ppp/chap-secrets檔案。

  2. 配置使用者名稱和密碼,格式為<UserName> pptpd <NewPassword>

    UserName、pptpd和NewPassword之間需要使用tab鍵分隔。

  3. 重啟pptp服務。

Proftpd

執行以下命令,根據提示輸入新密碼。

其中File_Path指儲存該虛擬使用者的檔案路徑。

ftpasswd --passwd --name=<UserName> --change-password --file=File_Path

RabbitMQ

執行以下命令修改弱口令。

rabbitmqctl change_password <UserName> '<NewPassword>'

VncServer

  1. 確保VncServer處於關閉狀態後,進入VncServer伺服器的VncServer安裝目錄。

    當弱口令不為root使用者時,進入安裝目錄後,登入或切換到需要修改弱口令的使用者。例如需要修改密碼的使用者為aliuser時,執行su - aliuser

  2. 刪除安裝目錄下的passwd檔案,例如刪除/home/aliuser/.vnc/passwd

  3. 執行vncpasswd命令,重設密碼。

    重要

    VncServer密碼校正位最長為8,例如您設定新口令為Aliyunpasswd,實際生效為前8位,即Aliyunpa。如果生效的密碼不滿足複雜密碼的要求,會有較大風險被入侵者破解,請確保密碼滿足複雜度要求。

Weblogic 12c

  1. 登入Weblogic控制台。

  2. 在左側導覽列,選擇安全領域 > 目標領域 > 使用者和組 > 使用者

  3. 選擇需要修改口令的使用者。

  4. 口令頁面,填寫並確認新口令,單擊儲存

  5. 如果WebLogic管理主控台左上方更改中心顯示啟用更改,請單擊啟用更改

  6. 登入伺服器,在設定檔`%DOMAIN_HOME%/servers/AdminServer/security/boot.properties 中,修改目標使用者的password欄位。

    此處修改的密碼需要和Weblogic控制台相同,修改密碼後會自動進行AES加密。

  7. 執行%DOMAIN_HOME%/bin/stopWeblogic.sh命令,安全停止Weblogic,再重新啟動Weblogic。

說明
  • 必須重啟Weblogic新密碼才會生效。

  • 如果無法修改配置,可在Weblogic控制台左上方更改中心,單擊鎖定並編輯修改配置。

  • 需要安全停止Weblogic,否則可能導致Weblogic啟動失敗。

Activemq

  1. 進入設定檔目錄activemq_path/conf/

    其中activemq_path為應用安裝路徑。

  2. 執行vim jetty-realm.properties命令,編輯設定檔。

  3. 添加或修改使用者。

    修改使用者名稱和口令的格式為<UserName>: <NewPassword>,RoleNameRoleName為角色。例如:admin: passwd123!@#, admin

  4. 修改完成後儲存退出,重啟服務。

Elasticsearch服務

說明

使用Elasticsearch的安全性原則安裝X-Pack外掛程式。7.X以上版本的Elasticsearch已經內建X-Pack外掛程式;對於7.X以下版本,您需開啟X-Pack配置。在elasticsearch.yml檔案中修改配置為xpack.security.enabled: true

執行以下命令修改使用者密碼。

其中ES_HOME_PATH為Elasticsearch的安裝路徑,passwd為新口令。

ES_HOME_PATH/bin/elasticsearch-users passwd <UserName>

Samba

  1. 執行smbpasswd <UserName>命令,修改使用者密碼。

  2. 按照提示輸入新密碼。

Zabbix

  1. 使用管理員帳號登入Zabbix的Web管理主控台。

  2. 在頂部功能表列,選擇管理 > 使用者,查看使用者列表。

  3. 單擊目標使用者名稱,再單擊修改密碼

  4. 輸入新口令後,單擊存檔

相關文檔

您可以使用Security Center的基準檢查,協助您檢測伺服器的弱口令風險。具體操作,請參見基準檢查