阿里云怎么部署網(wǎng)站網(wǎng)站排名靠前的方法
文章目錄
- Linux安全配置
- 1、密碼復(fù)雜度策略
- 2、登陸失敗策略
- 3、登錄超時策略
- 4、安全日志記錄
- 5、賬戶策略
- 5.1 創(chuàng)建系統(tǒng)管理員(應(yīng)該對/var進(jìn)行授權(quán),修改可能會影響到ssh登錄)
- 5.2 創(chuàng)建安全管理員(應(yīng)該對/etc進(jìn)行授權(quán))
- 5.3 創(chuàng)建審計(jì)管理員(應(yīng)該對/var/log進(jìn)行授權(quán))
- MySQL安全配置
- 1、安裝validata_password插件
- 2、創(chuàng)建系統(tǒng)管理員用戶
- 3、創(chuàng)建安全管理員用戶
- 4、創(chuàng)建審計(jì)管理員用戶
- 5、設(shè)置錯誤登錄限制
- 6、登陸超時時間
- 總結(jié)
在安全設(shè)置中,密碼復(fù)雜度、登錄失敗和登錄超時等策略是關(guān)鍵的安全措施。這些措施可以有效防止未授權(quán)訪問,并增強(qiáng)系統(tǒng)的整體安全性。接下來我們將詳細(xì)介紹如何配置這些安全策略。
Linux安全配置
1、密碼復(fù)雜度策略
密碼復(fù)雜度規(guī)則確保用戶創(chuàng)建的密碼足夠強(qiáng)壯,難以被猜測或暴力破解??梢酝ㄟ^以下幾種方式來實(shí)現(xiàn):
- 長度要求:設(shè)定最小密碼長度(例如至少8個字符)。
- 字符種類:要求密碼包含大寫字母、小寫字母、數(shù)字以及特殊字符。
- 歷史記錄:不允許使用最近幾次使用的舊密碼。
示例:配置有效期90天、長度不少于8位、至少3種字符的密碼策略。
#vim /etc/login.defs
PASS_MAX_DAYS 90 (密碼有效期)
PASS_MIN_DAYS 0 (密碼修改間隔)
PASS_MIN_LEN 8 (密碼最小長度)
PASS_WARN_AGE 7 (密碼到期前警告)
設(shè)置包含字符、大寫字母、小寫字母
# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
# vim /etc/pam.d/system-auth
找到包含pam_pwquality.so模塊的行,將原有行注釋并修改為如下的新配置:
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
# minlen=8 密碼最小長度為8個字符。
# lcredit=-1 密碼應(yīng)包含的小寫字母的至少一個
# ucredit=-1 密碼應(yīng)包含的大寫字母至少一個
# dcredit=-1 將密碼包含的數(shù)字至少為一個
# ocredit=-1 設(shè)置其他符號的最小數(shù)量,例如@,#、! $%等,至少要有一個
# enforce_for_root 確保即使是root用戶設(shè)置密碼,也應(yīng)強(qiáng)制執(zhí)行復(fù)雜性策略
測試:使用passwd測試是否配置成功
2、登陸失敗策略
登錄失敗策略用于限制非法嘗試登錄的次數(shù),以減少通過暴力破解攻擊成功的機(jī)會。通常包括鎖定賬戶一段時間或永久鎖定直至管理員解鎖。
示例:配置3次鎖定、鎖定時長60分鐘的登陸失敗策略。
# vim /etc/pam.d/sshd
新增以下配置:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800 even_deny_root root_unlock_time=300
# root_unlock_time: 表示root用戶鎖定時間
# unlock_time: 表示普通用戶鎖定時間
# onerr=fail: 表示連續(xù)失敗
# deny=3: 表示超過3次登錄失敗即鎖定
# 如果不想限制root用戶,可以去掉:even_deny_root root_unlock_time=300。
注意:auth要放到第二行,否則不生效!!
測試:
如果要查看某個用戶的登陸失敗次數(shù),可以使用以下命令查看:
pam_tally2 --user luweihao
重置某個用戶的登陸失敗次數(shù):
pam_tally2 --user luweihao --reset
3、登錄超時策略
登陸超時策略為了防止會話被長時間閑置而被他人利用,應(yīng)設(shè)置合理的會話超時時間,即當(dāng)用戶無活動狀態(tài)達(dá)到一定時限后自動斷開連接。
示例:配置會話超時時間為30分鐘。
# vim /etc/profile
注意:在末尾增加(單位是s)
TMOUT=1800
4、安全日志記錄
有效的日志記錄不僅可以幫助管理員監(jiān)控系統(tǒng)活動,還能在發(fā)生安全事件時提供關(guān)鍵信息用于調(diào)查和響應(yīng)。
示例:啟用auditd/rsyslog
service auditd status
service rsyslog status
5、賬戶策略
合理地分配不同的管理角色對于確保系統(tǒng)的安全性至關(guān)重要。通過創(chuàng)建系統(tǒng)管理員、安全管理員和審計(jì)管理員等角色,并為每個角色設(shè)定相應(yīng)的權(quán)限,可以有效地實(shí)現(xiàn)職責(zé)分離,減少內(nèi)部威脅風(fēng)險(xiǎn)。
5.1 創(chuàng)建系統(tǒng)管理員(應(yīng)該對/var進(jìn)行授權(quán),修改可能會影響到ssh登錄)
groupadd sysgroup
useradd sys -g sysgroup
passwd sys
usermod -G sysgroup sys
mkdir /vartest
chown -R sys:sysgroup /vartest
chmod 741 /vartest
5.2 創(chuàng)建安全管理員(應(yīng)該對/etc進(jìn)行授權(quán))
useradd -d /security security
passwd security
chown -R security:security /security
chmod 700 /security
5.3 創(chuàng)建審計(jì)管理員(應(yīng)該對/var/log進(jìn)行授權(quán))
useradd audit
passwd audit
vim /etc/sudoers
添加
audit ALL = (ALL) NOPASSWD: /usr/bin/cat , /usr/bin/less , /usr/bin/more , /usr/bin/tail , /usr/bin/head
chown -R audit:audit /var/log
chmod 700 /var/log
MySQL安全配置
MySQL無法直接進(jìn)行密碼策略配置,需要安裝插件。MySQL5.7默認(rèn)有validata_password的插件,但是沒有安裝,需要手動安裝。
注意:如果MySQL設(shè)置了只讀賬號,需要先關(guān)閉只讀,安裝完插件后,重新開啟只讀。
#關(guān)閉只設(shè)置
set global read_only=0;
#最后再打開只讀設(shè)置(根據(jù)需求)
set global read_only=1;
1、安裝validata_password插件
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
查看當(dāng)前設(shè)置
SHOW VARIABLES LIKE 'validate_password%';
SHOW VARIABLES LIKE '%password%';
#default_password_lifetime這個為全局設(shè)置,影響到所有賬號,生產(chǎn)環(huán)境謹(jǐn)慎設(shè)置。
#validate_password_check_user_name:用于是否檢查密碼是否與用戶名相似。設(shè)置為 OFF 表示不檢查。
#validate_password_dictionary_file:用于指定用于密碼驗(yàn)證的字典文件。如果為空,表示沒有配置特定的字典。
#validate_password_length:密碼的最小長度,這里表示密碼至少需要 8 個字符。
#validate_password_mixed_case_count:密碼中必須包含的大寫和小寫字母的最少數(shù)量。在此設(shè)置為 1,表示至少需要一個大寫或小寫字母。
#validate_password_number_count:密碼中必須包含的數(shù)字的最少數(shù)量。在此設(shè)置為 1,表示至少需要一個數(shù)字。
#validate_password_policy:定義密碼的復(fù)雜性策略。設(shè)置為 MEDIUM,表示密碼需滿足中等復(fù)雜性要求。
#validate_password_special_char_count:密碼中必須包含的特殊字符的最少數(shù)量。未設(shè)置,表示沒有要求。
可以自己修改配置,如密碼長度修改成10位
SET GLOBAL validate_password_length = 10;
2、創(chuàng)建系統(tǒng)管理員用戶
#創(chuàng)建系統(tǒng)管理員用戶
CREATE USER 'sysdba'@'localhost' IDENTIFIED BY 'NBYl6vu9d5Bev&S2';
#修改系統(tǒng)管理員用戶的密碼過期時間
alter user 'sysdba'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
#賦予系統(tǒng)管理員相應(yīng)的權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'sysdba'@'localhost' WITH GRANT OPTION;
#查看權(quán)限
show grants for 'sysdba'@'localhost';
#查看密碼過期時間
show create user 'sysdba'@'localhost';
3、創(chuàng)建安全管理員用戶
#創(chuàng)建安全管理員用戶
CREATE USER 'safedba'@'localhost' IDENTIFIED BY 'CqLs@rGKt3RG@fMI';
#修改安全管理員用戶密碼過期時間
alter user 'safedba'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
#賦予安全管理員相應(yīng)的權(quán)限
GRANT SELECT, SHOW VIEW ON *.* TO 'safedba'@'localhost';
#查看權(quán)限
show grants for 'safedba'@'localhost';
#查看密碼過期時間
show create user 'safedba'@'localhost';
4、創(chuàng)建審計(jì)管理員用戶
#創(chuàng)建審計(jì)管理員用戶
CREATE USER 'auditdba'@'localhost' IDENTIFIED BY 'isn2ecX#ZVhjx#Eu';
#修改審計(jì)管理員用戶密碼過期時間
alter user 'auditdba'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
#賦予審計(jì)管理員相應(yīng)的權(quán)限
GRANT RELOAD, PROCESS, SHOW DATABASES ON *.* TO 'auditdba'@'localhost';
#查看權(quán)限
show grants for 'auditdba'@'localhost';
#查看密碼過期時間
show create user 'auditdba'@'localhost';
5、設(shè)置錯誤登錄限制
#安裝CONNECTION_CONTROL插件
INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
#提供了一個INFORMATION_SCHEMA類型的表,用戶在此表中可以查看更詳細(xì)關(guān)于登陸失敗連接的信息。
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
#查看當(dāng)前配置
show variables like '%connection%';
#connection_control_failed_connections_threshold:連續(xù)失敗最大次數(shù)3次,0表示不開啟
#connection_control_max_connection_delay:超過最大失敗次數(shù)之后阻塞登錄最大時間(毫秒)
#connection_control_min_connection_delay:超過最大失敗次數(shù)之后阻塞登錄最小時間(毫秒)
#例如:set global connection_control_failed_connections_threshold=0;
#查詢各賬號登錄失敗次數(shù)
use information_schema;
select * from connection_control_failed_login_attempts;
6、登陸超時時間
show variables like "%wait_timeout%";
#修改超時時間為600s
set global wait_timeout=600;
總結(jié)
正確地配置以上策略能夠顯著提高服務(wù)器的安全性,但同時也需要注意不要給合法用戶提供過多障礙。因此,在實(shí)施上述任何一種策略之前,請根據(jù)實(shí)際情況做出適當(dāng)調(diào)整,確保既保證了安全性又不影響正常使用體驗(yàn)。