一、強密碼策略
1、密碼長度應至少為10個字元。較長的密碼能夠防止暴力破解。另外,應考慮使用密碼短語,而不是單獨的單詞或數字。
2、密碼應包含大小寫字母、數字以及符號。複雜的密碼能夠防止字典和暴力攻擊。
3、密碼應定期更換,並不得重複使用。這會防止針對歷史數據的攻擊,並促使用戶選擇更複雜的密碼。
# 修改密碼長度限制為10個字元 sudo sed -i 's/minlen=8/minlen=10/g' /etc/security/pwquality.conf # 限制密碼重複使用 sudo vim /etc/pam.d/common-password # 添加以下一行,使密碼不能重複使用十次以內 password required pam_pwhistory.so remember=10
二、定期更新系統
1、在每個系統更新後,應及時安裝軟體包。這些更新通常包含制定的安全漏洞或修復缺陷的修復程序,以及增強安全功能的改進。
2、如果系統安裝了防病毒程序,請確保其定期更新,並對系統進行定期的病毒掃描。
3、即便系統沒有服務功能,也應運行兩個基本安全系統:SELinux和Firewalld。這兩個系統能夠提供運行管道機制和網路分離,從而保護系統免受攻擊。
# 更新軟體包 sudo yum -y update # 安裝防病毒程序 sudo yum -y install clamav sudo freshclam # 安裝SELinux sudo yum -y install policycoreutils # 設置SELinux狀態為enforcing sudo setenforce 1 # 安裝Firewalld sudo yum -y install firewalld # 啟動Firewalld sudo systemctl start firewalld # 將firewalld添加為開機啟動 sudo systemctl enable firewalld
三、遠程訪問控制
1、對SSH盟員應為更安全的SSH密鑰進行控制,而不是使用基於密碼的身份驗證。
2、SSH應僅允許來自必要IP地址的訪問。
3、禁用不必要的網路文件共享協議,如FTP和SMB,以及危險或過時的協議,如Telnet和Rlogin。
# 禁用root直接登錄SSH,並使用SSH密鑰進行認證 sudo vim /etc/ssh/sshd_config # 找到以下兩行,並將其取消注釋 PermitRootLogin no PasswordAuthentication no # 重啟sshd服務 sudo systemctl restart sshd.service # 使用iptables阻止除了指定的IP地址以外的SSH訪問 sudo systemctl enable iptables.service sudo systemctl start iptables.service sudo iptables -A INPUT -p tcp -s 10.0.0.0/8 --dport ssh -j ACCEPT sudo iptables -A INPUT -p tcp --dport ssh -j DROP
四、安全日誌管理
1、記錄所有有效事件,並定期查看和分析日誌文件,以檢測潛在的攻擊和漏洞。
2、定期清理日誌,以避免佔用過多空間,並確保正確的數據記錄。
3、應默認啟用標準安全框架(如Audit),以保持安全性日誌跟蹤和追蹤。
# 安裝Audit sudo yum -y install audit # 啟動Audit sudo systemctl start auditd # 將Audit設置為開機啟動 sudo systemctl enable auditd # 配置Audit記錄文件系統訪問、許可權更改和文件創建事件 sudo auditctl -a exit,always -F arch=b64 -S all -F key=perm_change sudo auditctl -a exit,always -F arch=b64 -S all -F path=/home/jsmith -F perm=rwxa -F key=smith_files sudo auditctl -a exit,always -F arch=b64 -S all -F path=/var/log/auth.log -F perm=r -F key=auth_log
五、加密數據
1、加密文件和目錄,使用加密交換協議(如SSL或TLS)來保護數據以及在網路上傳輸的信息。由於SCP使用SSH作為底層,因此傳輸是加密的。
2、對於包含敏感信息的伺服器,應考慮使用硬體安全模塊(HSM)保護密鑰。
# 加密文件和目錄 sudo yum -y install gpg gpg --import mykey.asc gpg --output doc.asc --encrypt doc.txt # 使用SSL保護數據傳輸 openssl s_server -cert server-cert.pem -key server-key.pem # 使用HSM保護密鑰 sudo yum -y install opensc pkcs11-tool --init-token --label="My Token 1" --so-pin 1234 --pin 1234
六、訪問控制
1、使用進程分離和強制訪問控制來限制進程之間的通信,以及向內部和向外部公共網路的訪問。
2、對系統資源(如文件和目錄)進行訪問控制,以防止未經授權的訪問,同時確保良好運作。
3、根據用戶角色和需要,配置最小許可權,並在可能的情況下避免允許任意所有許可權。
# 使用AppArmor進行進程隔離和強制訪問控制 sudo yum -y install apparmor sudo systemctl start apparmor sudo systemctl enable apparmor # 關閉SELinux sudo setenforce 0 # 配置訪問控制列表 sudo setfacl -m u:jsmith:rwx /home/jsmith/documents/ sudo setfacl -m g:operations:rx /var/log/operations/
七、加固SSH
1、使用公鑰進行SSH登錄,可免去密碼傳輸,並增強了系統的安全性。
2、使用前端認證和多因素身份驗證方法,以增加對帳戶的安全性。
3、定期檢查安全配置,如果有機會利用,應善意漏洞的發現並優化系統。
# 生成SSH密鑰對 ssh-keygen -t rsa -b 4096 # 在遠程系統上添加SSH公鑰 ssh-copy-id jsmith@remote-server # 安裝Google Authenticator sudo yum -y install google-authenticator # 配置多因素身份驗證 sudo vim /etc/pam.d/sshd # 在文件末尾添加以下行 auth required pam_google_authenticator.so nullok
以上是Linux運維工程師:提高SCPRoot系統安全性的關鍵的一些內容,通過使用強密碼策略、定期更新系統、遠程訪問控制、安全日誌管理、加密數據、訪問控制和加固SSH等方法,可以確保系統的安全性和完整性。
原創文章,作者:ZEEQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142485.html