Outline
- 檢視SuSE的版本
- 新建帳號群組
- 設定sudo
- 密碼強度設定
- 使用者錯三次暫不可登入
- 定期修改密碼
- 閒置連線自動登出
- 不允許root遠端登入
- 參考資料
檢視SuSE的版本
1 | # 檢視SuSE版本 |
新建帳號群組
1 | # 新建帳號 |
設定sudo
1 | # visudo,加入一個群組,使其能執行所有的指令 |
密碼強度設定
參照參考資料(1)。不使用pwcheck.so,改用cracklib.so。設定資料會寫到/etc/pam.d/common-password1
2
3
4
5
6
7
8
9
10superuser@> /usr/sbin/pam-config -d --pwcheck
superuser@> /usr/sbin/pam-config -a --cracklib
superuser@> /usr/sbin/pam-config -a --cracklib-minlen=12
superuser@> /usr/sbin/pam-config -a --cracklib-lcredit=-1
superuser@> /usr/sbin/pam-config -a --cracklib-ucredit=-1
superuser@> /usr/sbin/pam-config -a --cracklib-dcredit=-1
superuser@> /usr/sbin/pam-config -a --cracklib-ocredit=-1
superuser@> /usr/sbin/pam-config -a --cracklib-retry=3
superuser@> /usr/sbin/pam-config -a --pwhistory
superuser@> /usr/sbin/pam-config -a --pwhistory-remember=3
pam_cracklib.so
參數 | 意義 |
---|---|
nullok | 預設上不允許空白成為密碼,加入nullok就可以使用空白為密碼。 |
retry | 使用者有多少次機會可以設定符合規定的密碼。 |
lcredit | 小寫英文的credit。設定數值為-N,代表密碼中至少要有N個該種類字元,其道理類推至大寫、數字以及特殊字元的credit設定。 |
ucredit | 大寫英文的credit |
dcredit | 數字的credit |
ocredit | 特殊字元的credit |
minlen | 密碼最小credit要求。例如:設定密碼為jd9Ge$d3,其長度為8,但含有小寫、大寫、數字跟其他字元,所以一共可以得到4個credit,4+8=12的狀況下還是會被接受。 |
使用者錯三次暫不可登入
修改/etc/pam.d/common-auth,加入pam_tally2.so的設定,最下面粗體那行。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 修改/etc/pam.d/common-auth
superuser@> vim /etc/pam.d/common-auth
#%PAM-1.0
#
# This file is autogenerated by pam-config. All changes
# will be overwritten.
#
# Authentication-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
auth required pam_env.so
auth required pam_unix2.so
**auth required pam_tally2.so onerr=fail deny=3 unlock_time=30 even_deny_root root_unlock_time=30**
參數 | 解釋 |
---|---|
deny | Root及其他使用者登入失敗的次數,超過即鎖定 |
unlock_time | 一般使用者於鎖定後多久才能解鎖,單位為秒 |
even_deny_root | 也限制root |
root_unlock_time | root於鎖定後多久才能解鎖,單位為秒 |
onerr | 如果有甚麼奇怪的狀況發生時,fail表示回傳error code,而success表示回傳成功。 |
如果只有改/etc/pam.d/common-auth,當密碼輸入錯誤超過上限時,雖然會自動解開,但是接下來輸入正確的密碼,錯誤次數照樣會增加,而可能會發生問題。因此要在修改/etc/pam,d/common-account,加入account required pam_tally2.so,下表中粗體那行。
1 | # 修改/etc/pam.d/common-account |
當使用者被所定時,可以用下列指令解鎖1
2
3
4
5
6
7
8
9# 可以檢視使用者的登入犯錯次數
# pam_tally2 --user=superuser
Login Failures Latest failure From
superuser 3
# pam_tally2 --user=superuser --reset=0
# pam_tally2 --user=superuser
Login Failures Latest failure From
superuser 0
定期修改密碼
修改/etc/login.defs中的PASS_MAX_DAYS為90天。1
2
3
4
5
6
7
8
9#
# Password aging controls (used by useradd):
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_WARN_AGE Number of days warning given before a password expires.
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
閒置連線自動登出
1 | # 編輯/etc/profile |
不允許root遠端登入
修改/etc/ssh/sshd_config1
2
3
4
5
6
7
8
9
10
11# 編輯/etc/ssh/sshd_config
# PermitRootLogin要改為no
superuser@> vim /etc/ssh/sshd_config
#LoginGraceTime 2m
**PermitRootLogin no**
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
# 改完要重啟sshd才會生效
# 不過重啟sshd似乎不影響已連上的連線
superuser@> /etc/init.d/sshd restart
參考資料
- SLE11帳戶密碼強度設定 http://blog.xuite.net/misgarlic/weblogic/29368627-SLES11+user+account+password+policy
- SLE11SP2 pam.tally2.so的設定方式 https://www.novell.com/support/kb/doc.php?id=7011883
- 註解targetpw http://blog.xuite.net/trully.hsiang/man/30309937-%5BSUSE%5D+%E5%BB%BA%E7%AB%8B%E4%BD%BF%E7%94%A8%E8%80%85+%E5%8F%8A+sudo+%E6%AC%8A%E9%99%90
- 感謝同事怡文提供整理 :)