centos7 安全加固

centos7 安全加固

目錄html

centos7 系統安全加固方案數據庫

一.密碼長度與有效期
二.密碼複雜度… 3
三.新口令不能與4個最近使用的相同… 4
四.設置會話超時(5分鐘)… 5
五.設置history命令時間戳… 6
六.設置登錄失敗鎖定… 7
七.禁止root經過ssh遠程登陸… 8
八.SSH 配置參數加強… 9
九.設置SSH登陸警告語… 10
十.設置umask值… 11
十一.禁止Control-Alt-Delete 鍵盤重啓系統命令… 13
十二. 隱藏系統版本信息… 14
十三.設置grup密碼… 14
十四.最大文件打開數(文件句柄數)… 17
十五.用戶最大進程數… 17
十六.系統參數調優… 18
Linux安全加固手冊… 22
1 身份鑑別… 22
1.1 安全的遠程管理方式… 22
2 訪問控制… 23
3 安全審計… 24
3.1 審覈策略開啓… 24
3.2 日誌屬性設置… 25
4 入侵防護… 26
5 系統資源控制… 26
5.1 訪問控制… 26
5.2 超時鎖定… 27
6 最佳經驗實踐… 28
6.1 DOS攻擊防護… 28
6.2 歷史命令… 29




























vim

一.密碼長度與有效期

默認配置:

​[root@i-1y3we23j ~]# cat /etc/login.defs |grep PASS_ |grep -v '#'
  • PASS_MAX_DAYS 99999centos

  • PASS_MIN_DAYS 0安全

  • PASS_MIN_LEN 5bash

  • PASS_WARN_AGE 7服務器

加固方案:

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

備註:

/etc/login.defs文件的pass_min_len 參數並不具有強制性,測試仍然能夠設置7位密碼。最終須要cracklib來實現。cookie

參數說明:網絡

  • PASS_MAX_DAYS 密碼有效期運維

  • PASS_MIN_DAYS 修改密碼的最短時間限

  • PASS_MIN_LEN 密碼最短長度

  • PASS_WARN_AGE 密碼過時提醒

二.密碼複雜度

默認配置:

[root@i-1y3we23j ~]# 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=

加固方案:

1.備份配置文件:

cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.default

2.編輯配置文件

# vim /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.保存配置文件

備註:

try_first_pass而當pam_unix驗證模塊與password驗證類型一塊兒使用時,該選項主要用來防止用戶新設定的密碼與之前的舊密碼相同。

  • nlen=8:最小長度8位

  • fok=5:新、舊密碼最少5個字符不一樣

  • redit=-1:最少1個數字

  • redit=-1:最少1個小寫字符,(ucredit=-1:最少1個大寫字符)

  • redit=-1:最少1個特殊字符

  • try=1:1次錯誤後返回錯誤信息

  • pe=xxx:此選項用來修改缺省的密碼提示文本

三.新口令不能與4個最近使用的相同

默認配置:

[root@i-1y3we23j ~]# cat /etc/pam.d/system-auth |grep use_authtok

ssword sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok

加固方案:

1.備份配置文件

2.編輯配置文件:

vi /etc/pam.d/system-auth

在password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok 所在行的後面添加

member=5

3.保存配置文件

備註:

記住5個歷史密碼

四.設置會話超時(5分鐘)

默認配置:

加固方案:

1.備份配置文件:

cp -a /etc/profile /etc/profile.default

2.編輯配置文件:

vi /etc/profile

在文件的末尾添加參數

port TMOUT=300

3.保存配置文件

備註:

  • 五分鐘無操做中斷登陸會話

五.設置history命令時間戳

默認配置:

加固方案:

1.備份配置文件:

2.編輯配置文件:

vi /etc/profile

在文件的末尾添加參數

export HISTTIMEFORMAT="%F %T whoami "

3.保存配置文件

六.設置登錄失敗鎖定

(只能限定終端登陸,圖形界面依然能夠登陸)

默認配置:

加固方案:

1.備份配置文件

1)方法一:

  • /etc/pam.d/login中設定控制檯;
  • /etc/pam.d/sshd中設定SSH
  • /etc/pam.d/sshd中第二行添加下列信息
    在這裏插入圖片描述
    在這裏插入圖片描述

###########參數解釋############

查看用戶登陸失敗次數

# pam_tally2 --user root

解鎖用戶

# pam_tally2 -r -u root

even_deny_root 也限制root用戶(默認配置就鎖定root賬號);
deny 設置普通用戶和root用戶連續錯誤登錄的最大次數,超過最大次數,則鎖定該用戶
unlock_time 設定普通用戶鎖定後,多少時間後解鎖,單位是秒;

root_unlock_time 設定root用戶鎖定後,多少時間後解鎖,單位是秒;

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.保存配置文件

備註:

經過終端登陸,5次登陸失敗後鎖定帳號30分鐘,鎖按期間此帳號沒法再次登陸。

七.禁止root經過ssh遠程登陸

默認配置:

\# cat /etc/ssh/sshd_config |grep PermitRootLogin

#PermitRootLogin yes

加固方案:

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)禁止空密碼登陸

將#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.編輯配置文件

\#vi /etc/ssh/sshd_config

找到#Banner none參數,在其下一行,增長

Banner /etc/ssh/alert

3.保存配置文件

4新增告警信息文件.

\#vi /etc/ssh/alert

文件內容,設置成

*******************************************************

這裏的內容本身定義,能夠提示一下登陸的用戶引發運維人員重視

Warning!!!Any Access Without Permission Is Forbidden!!!

*******************************************************

5.保存後重啓ssh服

十.設置umask值

默認配置:

# umask

0022

加固方案:

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.保存配置文件

備註:

將umask值設置成0027,用於拿掉新增目錄與文件的非全部者和全部者所屬組的訪問權限

默認:

新增目錄權限755,即rxwr-xr-x

新增文件權限644,即

rw-r–r—

加固後:

新增目錄權限750,即rxwr-x—

新增文件權限640,即

rw-r-----

十一.禁止Control-Alt-Delete 鍵盤重啓系統命令

默認配置:

ls /usr/lib/systemd/system/ctrl-alt-del.target

加固方案:

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

備註:登陸界面顯示系統版本信息

十三.設置grup密碼

默認配置:

加固方案:

1.備份配置文件

cp -a /etc/grub.d/00_header /etc/grub.d/00_header.default

2.使用grub2-mkpasswd-pbkdf2 加密

使用grub2-mkpasswd-pbkdf2 加密密碼(密碼本身定義,可是必定得保存好不然最後連本身都登陸不進去)

操做進行GRUB加密碼的2種方式

密文密碼

[root@localhost ~]# grub2-mkpasswd-pbkdf2      

Enter password: 

Reenter password: 

PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A

3.添加如下配置到該文件的最後面

(特別須要注意 用戶名root和密文之間是空格分隔,而不是換行)
cat <<EOF

set superusers='root'

password_pbkdf2 root grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A

E0F

4.執行命令grub2-mkconfig -o /boot/grub2/grub.cfg

從新編譯生成grub.cfg文件

明文密碼

①修改/etc/grub.d/00_header,在文件末尾添加如下命令

在這裏插入圖片描述

保存並退出

②從新編譯生成grub.cfg

在這裏插入圖片描述
重啓檢驗

在這裏插入圖片描述

成功:

在這裏插入圖片描述

十四.最大文件打開數(文件句柄數)

默認配置:

[root@i-1y3we23j ~]# ulimit -n

1024

加固方案:

1.備份配置文件

cp -a /etc/security/limits.conf /etc/security/limits.conf.default

2.添加如下兩行配置到limits.conf文件最後

soft nofile 65535

 hard nofile 65535

備註:修改全部用戶的最大文件打開數爲65535

十五.用戶最大進程數

默認配置:

[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

加固方案:

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

備註:修改全部用戶的最大進程數爲65535

十六.系統參數調優

默認配置:

加固方案:

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

Linux安全加固手冊

1 身份鑑別

1.1 安全的遠程管理方式

當對服務器進行遠程管理時,應採起必要措施,防止鑑別信息在網絡傳輸過程當中被竊聽。

防止遠程管理過程當中,密碼等敏感信息被竊聽

執行以下語句,查看telnet服務是否在運行

netstat -anptu | grep ":23"

禁止telnet運行,禁止開機啓動:

chkconfig telnet off //禁止開機運行
netstat -anptu | grep ":23"  //查看23號端口狀態,telnet已關閉

2 訪問控制

應及時刪除多餘的、過時的賬戶,避免共享賬戶的存在。

刪除或禁用臨時、過時及可疑的賬號,防止被非法利用。

主要是管理員建立的普通賬號,如:test

# usermod -L user 禁用賬號,賬號沒法登陸,/etc/shadow第二欄顯示爲!開頭

# userdel user 刪除user用戶

# userdel -r user將刪除user用戶,而且將/home目錄下的user目錄一併刪除

3 安全審計

3.1 審覈策略開啓

審計範圍應覆蓋到服務器和重要客戶端上的每一個操做系統用戶和數據庫用戶;

開啓審覈策略,若往後系統出現故障、安全事故則能夠查看系統日誌文件,排除故障、追查入侵者的信息等。

查看rsyslog與auditd服務是否開啓

在這裏插入圖片描述
rsyslog通常都會開啓,auditd如沒開啓,執行以下命令:

1 # systemctl start auditd

auditd服務開機啓動

1 # systemctl start auditd

在這裏插入圖片描述

3.2 日誌屬性設置

應保護審計記錄,避免受到未預期的刪除、修改或覆蓋等。

防止重要日誌信息被覆蓋

讓日誌文件轉儲一個月,保留6個月的信息,先查看目前配置,

1 # more /etc/logrotate.conf | grep -v "^#\|^$"

須要修改配置爲下圖所示:

在這裏插入圖片描述

4 入侵防護

操做系統遵循最小安裝的原則,僅安裝須要的組件和應用程序,並經過設置升級服務器等方式保持系統補丁及時獲得更新。

關閉與系統業務無關或沒必要要的服務,減少系統被黑客被攻擊、滲透的風險。

禁用藍牙服務

1 # systemctl stop bluetooth

禁止藍牙開機啓動
在這裏插入圖片描述

5 系統資源控制

5.1 訪問控制

應經過設定終端接入方式、網絡地址範圍等條件限制終端登陸。

對接入服務器的IP、方式等進行限制,能夠阻止非法入侵。

  1. 在/etc/hosts.allow和/etc/hosts.deny文件中配置接入限制

最好的策略就是阻止全部的主機在「/etc/hosts.deny」文件中加入「 ALL:ALL@ALL, PARANOID 」,而後再在「/etc/hosts.allow」 文件中加入全部容許訪問的主機列表。以下操做:

編輯 hosts.deny文件(vi /etc/hosts.deny),加入下面該行:

1 2 # Deny access to everyone. ALL``: ``ALL``@``ALL``, PARANOID

編輯hosts.allow 文件(vi /etc/hosts.allow),加入容許訪問的主機列表,好比:

ftp: 202.54.15.99 foo.com //202.54.15.99是容許訪問 ftp 服務的 IP 地址

//foo.com 是容許訪問 ftp 服務的主機名稱。

在這裏插入圖片描述

  1. 也能夠用iptables進行訪問控制

5.2 超時鎖定

應根據安全策略設置登陸終端的操做超時鎖定。

設置登陸超時時間,釋放系統資源,也提升服務器的安全性。

/etc/profile中添加以下一行

1 2 exprot TMOUT``=``900 //``15``分鐘 # source /etc/profile

改變這項設置後,必須先註銷用戶,再用該用戶登陸才能激活這個功能。

若是有須要,開啓屏幕保護功能

設置屏幕保護:設置 -> 系統設置 -> 屏幕保護程序,進行操做
在這裏插入圖片描述

6 最佳經驗實踐

對Linux系統的安全性提高有必定幫助。

6.1 DOS攻擊防護

防止拒絕服務攻擊

TCP SYN保護機制等設置

1)打開 syncookie:

# echo「1」>/proc/sys/net/ipv4/tcp_syncookies //默認爲1,通常不用設置

表示開啓SYN Cookies。當出現SYN等待隊列溢出時,啓用cookies來處理,可防範少許SYN攻擊,默認爲0,表示關閉;

2)防syn 攻擊優化

用vi編輯/etc/sysctl.conf,添加以下行:

1 net.ipv4.tcp_max_syn_backlog ``= 2048

進入SYN包的最大請求隊列.默認1024.對重負載服務器,增長該值顯然有好處.可調整到2048.

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SA3fIBEU-1597817934742)(file:///C:/Users/teng/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png)]

6.2 歷史命令

爲歷史的命令增長登陸的IP地址、執行命令時間等

1)保存1萬條命令

1 # sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

2)在/etc/profile的文件尾部添加以下行數配置信息:
在這裏插入圖片描述

source /etc/profile讓配置生效

在這裏插入圖片描述

相關文章
相關標籤/搜索