centos7 系统安全加固方案
****centos7 系統安全加固方案****
一.密碼長度與有效期
1、用戶的默認設置文件:/etc/login.defs
2、/etc/login.defs文件說明
| MAIL_DIR /var/spool/mail | 創建用戶時,系統會在目錄 /var/spool/mail 中創建一個用戶郵箱,比如 lamp 用戶的郵箱是 /var/spool/mail/lamp。 |
| PASS_MAX_DAYS 99999 | 密碼有效期,99999 是自 1970 年 1 月 1 日起密碼有效的天數,相當于 273 年,可理解為密碼始終有效。 |
| PASS_MIN_DAYS 0 | 表示自上次修改密碼以來,最少隔多少天后用戶才能再次修改密碼,默認值是0。 |
| PASS_MIN_LEN 5 | 指定密碼的最小長度,默認不小于 5 位,但是現在用戶登錄時驗證已經被 PAM 模塊取代,所以這個選項并不生效。 |
| PASS_WARN_AGE 7 | 指定在密碼到期前多少天,系統就開始通過用戶密碼即將到期,默認為7天。 |
| UID_MIN 500 | 指定最小 UID 為 500,也就是說,添加用戶時,默認 UID 從 500 開始。注意,如果手工指定了一個用戶的 UID 是 550,那么下一個創建的用戶的 UID 就會從 551 開始,哪怕 500~549 之間的 UID 沒有使用。 |
| UID_MAX 60000 | 指定用戶最大的 UID 為 60000。 |
| GID_MIN 500 | 指定最小 GID 為 500,也就是在添加組時,組的 GID 從 500 開始。 |
| GID_MAX 60000 | 用戶 GID 最大為 60000。 |
| CREATE_HOME yes | 指定在創建用戶時,是否同時創建用戶主目錄,yes 表示創建,no 則不創建,默認是 yes。 |
| UMASK 077 | 用戶主目錄的權限默認設置為 077。 |
| USERGROUPS_ENAB yes | 指定刪除用戶的時候是否同時刪除用戶組,準確地說,這里指的是刪除用戶的初始組,此項的默認值為 yes。 |
| ENCRYPT_METHOD SHA512 | 指定用戶密碼的加密規則,默認采用 SHA512,這是新的密碼加密模式,原先的 Linux 只能用 DES或MD5加密。 |
3、查看默認配置
cat /etc/login.defs |grep PASS_ |grep -v ‘#’
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
4、加固方案
5、
(1)備份配置文件:
cp -a /etc/login.defs /etc/login.defs.default
(2)編輯配置文件并將相關參數改成如下
# vi /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 6
PASS_MIN_LEN 8
PASS_WARN_AGE 30
二、密碼復雜度
1、查看默認配置
# cat /etc/pam.d/system-auth | grep “pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=”
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
2、相關字段說明
*try_first_pass* 而當pam_unix驗證模塊與password驗證類型一起使用時,該選項主要用來防止用戶新設定的密碼與以前的舊密碼相同。
*minlen=8* 最小長度8位
*difok=5* 新、舊密碼最少5個字符不同
*dcredit=-1* 最少1個數字
*lcredit=-1* 最少1個小寫字符,(ucredit=-1:最少1個大寫字符)
*ocredit=-1* 最少1個特殊字符
*retry=1* 1次錯誤后返回錯誤信息
*type=xxx* 此選項用來修改缺省的密碼提示文本
3、/etc/login.defs文件的pass_min_len 參數并不具備強制性,測試仍然可以設置7位密碼。最終需要cracklib來實現。
3、加固方案
(1)備份配置文件:
# cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.default
(2)編輯配置文件
# vi /etc/pam.d/system-auth
注釋:password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
在其下面新增1行:password requisite pam_cracklib.so try_first_pass minlen=8 difok=5 dcredit=-1 lcredit=-1 ocredit=-1 retry=1 type=
(3)保存配置文件
三.新口令不能與4個最近使用的相同
*1、查看默認配置*
# cat /etc/pam.d/system-auth |grep use_authtok
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
2、*加固方案*
(1)備份配置文件
(2)編輯配置文件:# vi /etc/pam.d/system-auth
在password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok 行的后面添加remember=5
(4)保存配置文件
四.設置會話超時(5分鐘
*1、********默認配置:無*
*2、********加固方案:*
(1)備份配置文件:
# cp -a /etc/profile /etc/profile.default
(2)編輯配置文件:
vi /etc/profile
在文件的末尾添加參數
export TMOUT=300
(3)保存配置文件
五.設置history命令時間戳
*1、********默認配置: 無*
*2、********加固方案:*
(1)備份配置文件:
(2)編輯配置文件:
vi /etc/profile
在文件的末尾添加參數
export HISTTIMEFORMAT="%F %T whoami "
(4)保存配置文件
六.設置登陸失敗鎖定(終端登錄)
通過終端登錄,5次登錄失敗后鎖定賬號30分鐘,鎖定期間此賬號無法再次登錄。
*1、********默認配置:無*
*2、********加固方案:*
1.備份配置文件
2.編輯配置文件:
# vi /etc/pam.d/system-auth
在# User changes will be destroyed the next time authconfig is run.行的下面,添加
auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800
3.保存配置文件
七. 禁止root通過ssh遠程登錄
1、*默認配置:*
# cat /etc/ssh/sshd_config |grep PermitRootLogin
#PermitRootLogin yes
2、*加固方案:*
(1)備份配置文件
# cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.default
(2)編輯配置文件
vi /etc/ssh/sshd_config
將配置參數#PermitRootLogin yes改成PermitRootLogin no
(3)保存配置文件
(4)重啟ssh服務
# /etc/init.d/sshd restart
八.SSH 配置參數增強
*1.備份配置文件*
*2.編輯配置文件*
#vi /etc/ssh/sshd_config
1.備份配置文件2.編輯配置文件
#vi /etc/ssh/sshd_config
(1)禁止空密碼登錄
將#PermitEmptyPasswords no參數的注釋符號去掉,改成
PermitEmptyPasswords no
(2)關閉ssh的tcp轉發
將#AllowTcpForwarding yes參數改成
AllowTcpForwarding no
(3)關閉S/KEY(質疑-應答)認證方式
將#ChallengeResponseAuthentication yes參數,改成
ChallengeResponseAuthentication no
(4)關閉基于GSSAPI 的用戶認證
將GSSAPIAuthentication yes參數,改成
GSSAPIAuthentication no
*3.********保存配置文件*
*4.重啟ssh服務*
九.設置SSH登錄警告語
*1.********默認配置:無*
*2.********加固方案:*
(1)備份配置文件
(2)編輯配置文件
#vim /etc/ssh/sshd_config
找到#Banner none參數,在其下一行,增加
Banner /etc/ssh/alert
(3)保存配置文件
(4)新增告警信息文件.
#vim /etc/ssh/alert
文件內容,設置成
這里的內容自己定義,可以提示一下登錄的用戶引起運維人員重視
Warning!!!Any Access Without Permission Is Forbidden!!!
(5)保存后重啟ssh服務
十設置umask值
*1、********默認配置:*
# umask
0022
3、*加固方案:*
將umask值設置成0027,用于拿掉新增目錄與文件的非所有者和所有者所屬組的訪問權限。
默認情況下:
新增目錄權限755,即rxwr-xr-x
新增文件權限644,即rw-r–r—
加固后:
新增目錄權限750,即rxwr-x—
新增文件權限640,即rw-r-----
(1)備份配置文件
# cp -a /etc/bashrc /etc/bashrc.default
(2)編輯配置文件
# vi /etc/bashrc
在文件末尾增加參數
umask 027
(3)保存配置文件
(4)備份配置文件
# cp -a /etc/profile /etc/pr ofile.default
(5)編輯配置文件
# vi /etc/profile
在文件末尾增加參數
umask 027
(6)保存配置文件
十一.Control-Alt-Delete 鍵盤重啟系統命令
*1.********默認配置:*
ls /usr/lib/systemd/system/ctrl-alt-del.target
*2.********加固方案:*
(1)備份配置文件
cp -a /usr/lib/systemd/system/ctrl-alt-del.target /usr/lib/systemd/system/ctrl-alt-del.target.default
(2)移除該原源文件
rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
十二. 隱藏系統版本信息:登錄界面顯示系統版本信息
加固方案:
#mv /etc/issue /etc/issue.bak
#mv /etc/issue.net /etc/issue.net.bak
13.最大文件打開數(文件句柄數):修改所有用戶的最大文件打開數為65535
*1、********默認配置:*
[root@i-1y3we23j ~]# ulimit -n1024
*2、********加固方案:*
(1)備份配置文件
cp -a /etc/security/limits.conf /etc/security/limits.conf.default
(2)添加以下兩行配置到該文件最后
* soft nofile 65535
* hard nofile 65535
十四.用戶最大進程數:修改所有用戶的最大進程數為65535
*1、********默認配置:*
[root@i-1y3we23j ~]# cat /etc/security/limits.d/20-nproc.conf
# Default limit for number of user’s processes to prevent# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
*2、加固方案:*
(1)備份配置文件
cp -a /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.default
(2)修改配置文件vim /etc/security/limits.d/20-nproc.conf
* soft nproc 65535
* hard nproc 65535
十五、系統參數調優
*1、********默認配置:無*
*2、********加固方案:*
(1)備份配置文件
cp -a /etc/sysctl.conf /etc/sysctl.conf.default
(2)添加以下調優參數到該文件中
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.route.gc_timeout = 20
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.route.gc_timeout = 20
net.ipv4.ip_local_port_range = 10024 65535
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 94500000 915000000 927000000
fs.file-max = 65535
kernel.pid_max = 65536
net.ipv4.tcp_wmem = 4096 87380 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 10240
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_max_tw_buckets = 36000
總結
以上是生活随笔為你收集整理的centos7 系统安全加固方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星java面试_【面试问题】三星数据系
- 下一篇: UI测试框架:playwright-py