UOS系統安全加固
一、密碼強度
1.圖形化環境
l cp /etc/deepin/dde.conf /etc/deepin/dde.conf.old
l cat /etc/deepin/dde.conf
[Password]
STRONG_PASSWORD = true 啟用強密碼
PASSWORD_MIN_LENGTH = 8 密碼最小長度
PASSWORD_MAX_LENGTH = 511 密碼最大長度
VALIDATE_POLICY = "1234567890;abcdefghijklmnopqrstuvwxyz;ABCDEFGHIJKLMNOPQRSTUVWXYZ;~`!@#$%^&*()-_+=|\{}[]:"'<>,.?/"
VALIDATE_REQUIRED = 3密碼強度策略,最少三組
PALINDROME_NUM = 4密碼中不能包含類似 '12344321
WORD_CHECK = 1密碼字典檢查
MONOTONE_CHARACTER_NUM = 3即密碼中不能包含 '123' ,'321','qwe' 等單調字符
CONSECUTIVE_SAME_CHARACTER_NUM = 3連續字符檢測
DICT_PATH =
FIRST_LETTER_UPPERCASE = false
2.服務器中常用的配置
根據操作系統版本安裝相關模塊
104X:使用pam_deepin_pw_check.so ,103X:pam_cracklib.so,102X:pam_pwquality.so
這個模塊優先度高於 /etc/deepin/dde.conf
l apt install libpam-pwquality -y
l cp /etc/pam.d/common-password /etc/pam.d/common-password.old
l vi /etc/pam.d/common-password
將“password requisite”該行改成如下內容:
password requisite pam_pwquality.so retry=3 enforce_for_root minlen=8 minclass=4 maxsequence=3 maxrepeat=3
3.設置密碼過期時間
l cp /etc/login.defs /etc/login.defs.old
l vi /etc/login.defs
PASS_MAX_DAYS 90 ##設置密碼最多可多少天不修改
PASS_MIN_DAYS 2 ##設置密碼修改之間最小的天數
PASS_WARN_AGE 7 ##設置密碼失效前多少天通知用戶
二、限制登錄
1.圖形化界面下限制本地登錄的設置
l cp /usr/share/dde-session-shell/dde-session-shell.conf /usr/share/dde-session-shell/dde-session-shell.conf.old
l vi /usr/share/dde-session-shell/dde-session-shell.conf
lockLimitTryNum:定義開始鎖定的次數,一般密碼輸錯5次開始鎖定賬戶
lockWaitTime:定義開始鎖定后,每輸錯一次都將重新設置等待時間,該字段可寫1~5個數字,每個數字分別代表連續輸錯6,7,8…次密碼后鎖定的時間,分別為3分鍾、5分鍾、15分鍾…….如果超過次數上限則沿用最后一個數字所示的鎖定時間
2.禁止root本地和遠程ssh登錄
l cp /etc/pam.d/common-password /etc/pam.d/common-password.bak
l vi /etc/pam.d/common-password
添加 auth required pam_succeed_if.so user != root quiet_success
修改ssh配置文件
l cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
l sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
l systemctl restart ssh
3.限制用戶遠程登錄
輸錯3次則鎖定600秒,
l cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
l sed -i '1s/^/auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=600 \n/' /etc/pam.d/sshd
賬戶鎖定后解鎖需要使用其他用戶登錄后執行
l sudo pam_tally2 -u 用戶名 -r
三、防火牆
操作系統默認未安裝防火牆,需要先安裝,執行如下命令
l apt install –y ufw
安裝好以后開啟開機自啟動
l systemctl enable ufw
啟動防火牆
l systemctl start ufw
l ufw default deny 默認拒絕任何訪問
l ufw allow 22 放開22端口 ,ufw delete allow 22 刪除放開22端口
l ufw allow from 192.168.1.0/24 to any port 80放行192.168.1.0網段的主機訪問本機端口80
l ufw status 查看端口開啟情況
l ufw enable 啟用ufw
l ufw disable 關閉ufw
四、備份日志
l crontab –l 查看定時任務
l crontab -e
分 時 日 月 周 命令
30 0 1 * * /usr/bin/tar czf /logbackup/`date +\%Y\%m\%d\%H`.tar.gz /var/log/
五、漏洞掃描
1.未使用的軟件的漏洞
漏洞掃描后先查看有哪些軟件的漏洞,例如可能出現httpd、squid、samba、tomcat等漏洞,處理方法是首先確認哪些軟件是不使用的,將其卸載,例如服務器沒有提供web服務,則將httpd刪除 ,命令為apt remove apache2,其他的類似。
2.在使用的軟件的漏洞
剩下的在使用的服務出現的漏洞處理方法為首先查看系統中漏洞軟件版本和操作系統內核版本,例如
l 查看openssh版本命令為 apt policy openssh
l 查看系統內核信息命令為 dpkg -l |grep linux-image
l 查看UOS系統版本命令為 cat /etc/os-version
l 登錄https://src.uniontech.com/index.php?m=&c=page&a=index ,搜索相關漏洞編號例如CVE-2022-0685 查看受影響的范圍以及修復方法
六、控制服務訪問的源地址范圍
通過hosts.allow或hosts.deny設置
1.檢查策略是先看/etc/hosts.allow中是否允許,如果允許直接放行;如果沒有,則再看/etc/hosts.deny中是否禁止,如果禁止那么就禁止連入。
2.對/etc/hosts.allow和/etc/hosts.deny的配置不用重啟就立即生效,但不管重啟不重啟當前已有會話都不會受影響;
配置不允許192.168.100.1使用 ssh登入,在hosts.deny添加行。例:sshd:192.168.100.1
七、常見問題
1.密碼強度不夠:
錯誤范例:Abc1234!
2.賬戶被鎖
解鎖這項需要執行兩條命令:
l rm /var/lib/deepin/authenticate/limit-states.json
l sudo systemctl restart deepin-authenticate.service
六、vi的使用
vi編輯器有兩種模式:輸入狀態 和 命令狀態
l 命令狀態下
字母i 意思是切換到輸入模式,以輸入字符
l 輸入狀態下
直接打字輸入,同時鍵盤的上下左右方向鍵可以使用調整位置。
l 輸入完成后需要按esc鍵回到命令狀態。
然后按出冒號 : ,然后輸入wq即為保存文檔並退出,q!為不保存文檔退出。