一、賬號和口令
1.1 禁用或洗掉無用賬號
查看 /etc/passwd 檔案查看是否有無用的賬號,如果存在則洗掉,降低安全風險,
操作步驟:
- 使用命令
userdel <用戶名>洗掉不必要的賬號, - 使用命令
passwd -l <用戶名>鎖定不必要的賬號, - 使用命令
passwd -u <用戶名>解鎖必要的賬號,
1.2 檢查特殊賬號
操作步驟:
- 查看空口令和root權限賬號,確認是否存在例外賬號:
- 使用命令
awk -F: '($2=="")' /etc/shadow查看空口令賬號, - 使用命令
awk -F: '($3==0)' /etc/passwd查看UID為零的賬號,
- 使用命令
- 加固空口令賬號:
- 使用命令
passwd <用戶名>為空口令賬號設定密碼, - 確認UID為0的賬號只有root賬號,
- 使用命令
1.3 添加口令策略
操作步驟
- 使用命令
vim /etc/login.defs修改組態檔,PASS_MAX_DAYS 90#新建用戶的密碼最長使用天數PASS_MIN_DAYS 0#新建用戶的密碼最短使用天數(兩次修改口令的最小間隔時間)PASS_MIN_LEN 8#新建用戶的密碼最小長度PASS_WARN_AGE 14#新建用戶的密碼到期提前提醒天數
-
使用chage命令修改用戶設定,
# 設定用戶密碼最短使用天數為7天,密碼最長使用天數為30天,過期前14天警告用戶 sudo chage -m 7 -M 90 -W 14 root sudo chage -m 7 -M 90 -W 14 admin # 密碼過期時間查看方法: [admin@Centos7 ~]$ sudo chage -l root Last password change : Sep 14, 2020【最近一次修改密碼的時間】 Password expires : Dec 13, 2020【密碼過期時間】 Password inactive : never【密碼失效時間】 Account expires : never【賬戶過期時間】 Minimum number of days between password change : 7【兩次改變密碼之間相距最小天數】 Maximum number of days between password change : 90【兩次密碼改變密碼相距最大天數】 Number of days of warning before password expires : 15【密碼過期前開始警告的天數】 - 密碼鎖定策略
說明:# 設定連續輸錯五次密碼,賬號鎖定五分鐘, vim /etc/pam.d/system-auth auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=90- deny:設定普通用戶和root用戶連續錯誤登陸的最大次數,超過最大次數,則鎖定該用戶
- unlock_time:設定普通用戶鎖定后,多少時間后解鎖,單位是秒
- root_unlock_time:設定root用戶鎖定后,多少時間后解鎖,單位是秒
- 密碼復雜度
說明:# 設定用戶密碼最小長度8位,必須包含大小寫字母+數字+特殊字符(root用戶同理) vim /etc/pam.d/system-auth password requisite pam_pwquality.so try_first_pass local_users_only minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 password required pam_pwhistory.so use_authtok remember=5 enforce_for_root vim /etc/pam.d/password-auth password requisite pam_pwquality.so try_first_pass local_users_only minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 password required pam_pwhistory.so use_authtok remember=5 enforce_for_root
- minlen=8:將密碼的最小長度設定為8個字符,
- lcredit=-1 :將密碼應包含的小寫字母的最小數目設定為至少一個
- ucredit=-1:將密碼上的大寫字母的最小數目設定為至少一個,
- dcredit=-1 :將密碼中包含的最小位數至少設定為一個
- ocredit=-1:設定其他符號的最小數量,例如@,#、! $%等,至少要有一個密碼
- remember=5:口令不能修改為過去5次使用過的舊口令
- enforce_for_root :確保即使是root用戶設定密碼,也應強制執行復雜性策略,
1.4 限制用戶su
操作步驟
使用命令 vim /etc/pam.d/su修改組態檔,在組態檔中添加行,
例如,只允許admin組用戶su到root,則添加 auth required pam_wheel.so group=admin,
【可選】為了方便操作,可配置admin支持免密sudo:在 /etc/sudoers 檔案中添加 admin ALL=(ALL) NOPASSWD:ALL
1.5 加固su命令
為了防止使用"su"命令將當前用戶環境變數帶入其它用戶,修改/etc/login.defs添加ALWAYS_SET_PATH=yes并保存,
1.6 禁止root用戶直接登入
操作步驟
-
創建普通權限賬號并配置密碼,防止無法遠程登錄,如:
groupadd -g 1000 admin && useradd -g admin -c "Administrator" -u 1000 -n -s /bin/bash admin - 使用命令
vi /etc/ssh/sshd_config修改組態檔將PermitRootLogin的值改成no,并重啟sshd服務,
二、系統服務
2.1 關閉不必要的服務
操作步驟:
查看所有服務串列 systemctl list-units --type=service
- 關閉不必要的服務:systemctl stop <服務名>
- 設定開機不自啟動:systemctl disable <服務名>
2.2 SSH服務安全
操作步驟
使用命令vim /etc/ssh/sshd_config編輯組態檔,
PermitRootLogin no # 不允許root賬號直接登錄系統
Protocol 2 # 修改SSH使用的協議版本
MaxAuthTries 3 # 修改允許密碼錯誤次數(默認6次)
ClientAliveInterval 60 # server每隔60秒給客戶端發送一次保活資訊包給客戶端
ClientAliveCountMax 30 # server端發出的請求客戶端沒有回應的次數達到30次的時候就斷開連接,
組態檔修改完成后,重啟sshd服務生效(systemctl restart sshd),
三、檔案系統
3.1 設定umask值
操作步驟
修改/etc/profile 組態檔,添加行 umask 027, 即新創建的檔案屬主擁有讀寫執行權限,同組用戶擁有讀和執行權限,其他用戶無權限,
3.2 設定登入超時
操作步驟
修改/etc/profile 組態檔,設定為TMOUT=600,表示超時10分鐘無操作自動退出登錄,
四、系統日志
4.1 syslogd日志
操作步驟
Linux系統默認啟用以下型別日志,組態檔為 /etc/rsyslog.conf:
- 系統日志(默認)/var/log/messages
- cron日志(默認)/var/log/cron
- 安全日志(默認)/var/log/secure
4.2 記錄所有用戶的登入日志和操作日志
# 打開組態檔/etc/profile,在組態檔最后中輸入以下內容:
history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]; then
USER_IP=`hostname`
fi
if [ ! -d /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
# 執行source使其生效
source /etc/profile
通過上述步驟,可以在 /var/log/history 目錄下以每個用戶為名新建一個檔案夾,每次用戶退出后都會產生以用戶名、登錄IP、時間的日志檔案,包含此用戶本次的所有操作(root用戶除外)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/467963.html
標籤:其他
下一篇:微信聊天內容可以被監聽嗎
