Linux安全加固


0x00 簡介

  安全加固是企業安全中及其重要的一環,其主要內容包括賬號安全、認證授權、協議安全、審計安全四項,今天首先學習Linux下的系統加固(CentOS)。

0x01 賬號安全

  這一部分主要是對Linux賬號進行加固。

與賬號相關的文件

/etc/passwd    -- 記錄了系統中各用戶的一些基本屬性,root可寫,所有用戶可讀

/etc/shadow    -- 記錄了所有用戶的密碼

/etc/group     -- 記錄了用戶組屬性

修改密碼策略

  vim /etc/login.defs

PASS_MAX_DAYS      90               密碼最長有效期
PASS_MIN_DAYS      10               密碼修改之間最小的天數
PASS_MIN_LEN       8                密碼長度
PASS_WARN_AGE      7                口令失效前多少天開始通知用戶修改密碼

設置密碼強度

  vim  /etc/pam.d/system-auth,將

password requisite  pam_cracklib.so

  修改為至少包含一個數字、一個小寫字母、一個大寫字母、一個特殊字符、且密碼長度>=8:

password requisite  pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8  

  Ubuntu中vi /etc/pam.d/common-password。

限制用戶登陸

  vim  /etc/hosts.deny,若禁止192.168.0.1對服務器進行ssh的登陸,添加如下內容

sshd : 192.168.0.1  

限制登陸次數

  應對暴力破解,我們可以限制登陸次數為5,超過5次登陸失敗就鎖定vim /etc/pam.d/sshd,在 #%PAM-1.0 的下面,加入下面的內容,表示當密碼輸入錯誤達到3次,就鎖定用戶150秒,如果root用戶輸入密碼錯誤達到3次,鎖定300秒。

auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300

  鎖定用戶的管理:

pam_tally2                             查看被鎖定的用戶

pam_tally2  --reset  -u  username      將被鎖定的用戶解鎖            

0x02 認證授權

  認證授權主要是驗證你是誰,你能夠做什么。

文件目錄權限

  在用戶登陸中非常重要的三個文件

  /etc/passwd 必須所有用戶都可讀,root用戶可寫 –rw-r—r— 權限值為644

  /etc/shadow 只有root可讀 –r--------  權限值為400

  /etc/group 必須所有用戶都可讀,root用戶可寫 –rw-r—r— 權限值為644

chmod 644 /etc/passwd
chmod 400 /etc/shadow
chmod 644 /etc/group

檢查是否存在除root之外UID為0的用戶:

awk -F ':' '($3==0){print $1)' /etc/passwd

  檢索出來的非root用戶用userdel命令全部刪除。

檢查是否使用PAM認證模塊禁止wheel組之外的用戶suroot

[root@centos ~]# #vim /etc/pam.d/su # 新添加以下兩行 auth sufficient pam_rootok.so auth required pam_wheel.so use_uid

  注意:auth與sufficient之間由兩個tab建隔開,sufficient與動態庫路徑之間使用一個tab建隔開

  然后,:usermod -G wheel username    #username為需要添加至wheel組的用戶名稱,將用戶添加到wheel組。注意,第一步加固表明只有wheel組中的用戶才能使用su命令切換到root用戶,因此必須將需要切換到root的用戶添加到wheel組,以使它可以使用su命令成為root用戶,如果系統不存在wheel組,則新增,新增方法:groupadd wheel。

  PAM(Pluggable Authentication Module)是一個可插入式認證模塊,在Linux系統中,各種不同的應用程序都需要完成認證功能,為了實現統一調配,把所有需要認證的功能做成一個模塊(認證機制特別復雜的除外,如:https),當特定的程序需要完成認證功能的時候,就去調用PMA的認證模塊。

文件與目錄缺省權限控制

[root@centos ~]#cp /etc/profile /etc/profile.bak

[root@centos ~]# vim   /etc/profile

umask 027

[root@centos ~]#source  /etc/profile

0x03 協議安全

  協議加固主要阻止入侵者遠程獲取服務器的權限。

SSH安全
  SSH是一個協議,利用它可以登錄到一個遠程系統或遠程執行系統命令,默認允許root登錄,並且sshv1存在缺陷,我們應該在sshd_config禁止root訪問和使用sshv2來讓ssh更加安全。vim /etc/ssh/sshd_config 修改為:

PermitRootLogin    no

telnet安全

  早期的Linux默認開啟telnet服務,telnet,ftp,rlogin都是明文傳輸的協議,如果必須使用telnet,則需要進行安全配置:

/etc/xinetd.d/telnet
disable=yes

禁止匿名ftp

  [root@wenzhiyi ~]# vim  /etc/vsftpd/vsftpd.conf

  anonymous_enable=NO    #如果存在anonymous_enable則修改,如果不存在則手動增加

預防Flood攻擊

[root@centos ~]# vim  /etc/sysctl.conf

[root@centos ~]# net.ipv4.tcp_syncookies = 1

[root@centos ~]# sysctl  -p  #讓命令生效

禁止ping

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 開啟
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all  關閉

0x04 審計安全

  日志就是計算機系統、設備、軟件等在某種情況下記錄的信息。具體的內容取決於日志的來源

檢查是否記錄安全事件日志

[root@wenzhiyi ~]# vim  /etc/syslog.conf 或者 /etc/rsyslog.conf,在文件中加入如下內容: 

*.err;kern.debug;daemon.notice     /var/log/messages

[root@wenzhiyi ~]# chmod 640 /var/log/messages

[root@wenzhiyi ~]#  service rsyslog restart 

建立日志服務器

  日志服務器的好處在於,每個工作服務器將自己的日志信息發送給日志服務器進行集中管理,即使有人入侵了服務器並將自己的登錄信息悄悄刪除,但由於日志信息實時與日志服務器同步,保證了日志的完整性。以備工作人員根據日志服務器信息對服務器安全進行評測。

  在客戶端修改配置文件/etc/rsyslog.conf

  想把哪種類型的日志文件發送給服務端,你就把他原來的對應的目錄改成: @日志服務器ip

  然后重啟rsyslog服務:

 systemctl  restart  rsyslog

  在服務器端打開 /etc/rsyslog.conf 配置文件,將后兩行注釋給去掉

 

  然后重啟rsyslog服務,開啟防火牆,這樣就完成了日志服務器的搭建。

systemctl  restart  rsyslog
firewall-cmd  --add-port=514/tcp

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM