1. 程式人生 > >Linux主機操作系統加固規範

Linux主機操作系統加固規範

ati 遠程登錄 運行狀況 情況 first 做成 主機 系統 su命令

對於企業來說,安全加固是一門必做的安全措施。主要分為:賬號安全、認證授權、協議安全、審計安全。總的來說,就是4A(統一安全管理平臺解決方案),賬號管理、認證管理、授權管理、審計管理。用漏洞掃描工具掃描了一下自己的阿裏雲主機,發現很多系統問題不合格,所以列舉總結了以下Linux系統安全加固的方法,僅供參考。

1、用戶賬號---唯一身份。

2、統一認證---你是誰。


3、授權管理---你有什麽權限。

4、操作審計---你可以幹什麽。

以下文檔規定了國內4A認證公司系統維護管理的Linux操作系統的主機應當遵循的操作系統安全性設置標準,旨在之道系統管理人員或者安全檢查人員進行Linux操作系統的安全合規性檢查和配置。

第一類:賬號口令


1)、口令生存期

[root@wenzhiyi ~]# vim /etc/login.defs

PASS_MAX_DAYS 90 用戶的密碼不過期最多的天數

PASS_MIN_DAYS 10 密碼修改之間最小的天數

PASS_WARN_AGE 7 口令失效前多少天開始通知用戶修改密碼

2)、口令復雜度

[root@wenzhiyi ~]# vim /etc/pam.d/system-auth,在文件中找到如下內容:

password requisite pam_cracklib.so 將其修改為:

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

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

3)、版本信息

[root@wenzhiyi ~]# cat /etc/system-release

CentOS release 6.8 (Final)

4)、限制某用戶登陸


[root@wenzhiyi ~]#vim /etc/hosts.deny 對配置文件進行修改

添加內容:

#禁止192.168.0.254用戶對服務器進行ssh的登陸

sshd : 192.168.0.254

或者用防火墻策略:

iptables -I INPUT -s 61.37.81.1 -j DROP

# 61.37.81.1的包全部屏蔽

iptables -I INPUT -s 61.37.81.0/24 -j DROP

#61.37.81.1到61.37.81.255的訪問全部屏蔽

iptables -I INPUT -s 192.168.1.202 -p tcp --dport 80 -j DROP

# 192.168.1.202的80端口的訪問全部屏蔽

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j DROP

#192.168.1.1~192.168.1.1255的80端口的訪問全部屏蔽

5)、檢查是否有除root用戶以外UID0的用戶

[root@wenzhiyi ~]# awk -F “:” ‘($3==0) {print $1} ‘ /etc/passwd

操作系統Linux超級用戶策略安全基線要求項目,要求除roo外不能有UID為0的用戶。

6)、登錄超時限制

[root@wenzhiyi ~]# cp -p /etc/profile /etc/profile_bak

[root@wenzhiyi ~]# vi /etc/profile

TMOUT=300

export TMOUT

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

[root@wenzhiyi ~]# #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的認證模塊。



第二類:協議安全

1)、限制root用戶遠程登錄SSH

[root@wenzhiyi ~]# grep -v "[[:space:]]*#" /etc/ssh/sshd_config |grep "PermitRootLogin no"

PermitRootLogin no

並且修改為protocol 2

2)、使用SSH協議進程遠程登陸



[root@wenzhiyi ~]# #cp -p /etc/xinetd.d/telnet /etc/xinetd.d/telnet_bak

[root@wenzhiyi ~]# /etc/xinetd.d/telnet(vi /etc/xinetd.d/telnet),

把disable項改為yes,即disable = yes.

[root@wenzhiyi ~]# #service xinetd restart



使用Telnet這個用來訪問遠程計算機的TCP/IP協議以控制你的網絡設備,相當於在離開某個建築時大喊你的用戶名和口令。很快會有人進行監聽,並且他們會利用你安全意識的缺乏。傳統的網絡服務程序如:ftp、pop和telnet在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。SSH是替代Telnet和其他遠程控制臺管理應用程序的行業標準。SSH命令是加密的並以幾種方式進行保密。 在使用SSH的時候,一個數字證書將認證客戶端(你的工作站)和服務器(你的網絡設備)之間的連接,並加密受保護的口令。

3)、禁止root用戶登陸FTP



[root@wenzhiyi ~]##cat /etc/pam.d/vsftpd

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#其中file=/etc/vsftpd/ftpusers即為當前系統上的ftpusers文件.



[root@wenzhiyi ~]#echo “root” >> /etc/vsftpd/ftpusers

daemon

bin

sys

lp

uucp

nuucp

listen

nobody

noaccess

nobody4

root

4)、禁止匿名FTP

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

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

5)、預防Flood攻擊

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

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

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

第三類:認證權限

1)、文件與目錄缺省權限控制

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

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

umask 027

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

2)、配置用戶最小權限

[root@wenzhiyi ~]# chmod 644 /etc/passwd

[root@wenzhiyi ~]# chmod 400 /etc/shadow

[root@wenzhiyi ~]# chmod 644 /etc/group

第四類:日誌審計





什麽是日誌?簡單地說,日誌就是計算機系統、設備、軟件等在某種情況下記錄的信息。具體的內容取決於日誌的來源。例如,Linux操作系統會記錄用戶登錄和註銷的消息,防火墻將記錄ACL通過和拒絕的消息,磁盤存儲系統在故障發生或者在某些系統認為將會發生故障的情況下生成日誌信息。日誌中有大量信息,這些信息告訴你為什麽需要生成日誌,系統已經發生了什麽。



例如,Web服務器一般會在有人訪問Web頁面請求資源(圖片、文件等等)的時候記錄日誌。如果用戶訪問的頁面需要通過認證,日誌消息將會包含用戶名。這就是日誌數據的一個例子:可以使用用戶名來判斷誰訪問過一個資源。通過日誌,IT管理人員可以了解系統的運行狀況,安全狀況,甚至是運營的狀況。

1)、啟用遠程日誌功能

Linux上通常可以通過rsyslog來實現系統日誌的集中管理,這種情況下通常會有一個日誌服務器,然後每個機器配置自己日誌通過rsyslog來寫到遠程的日誌服務器上。

rsyslog是一個開源工具,被廣泛用於Linux系統以通過TCP/UDP協議轉發或接收日誌消息。rsyslog守護進程可以被配置成兩種環境,一種是配置成日誌收集服務器,rsyslog進程可以從網絡中收集其它主機上的日誌數據,這些主機會將日誌配置為發送到另外的遠程服務器。rsyslog的另外一個用法,就是可以配置為客戶端,用來過濾和發送內部日誌消息到本地文件夾(如/var/log)或一臺可以路由到的遠程rsyslog服務器上。

假定你的網絡中已經有一臺已經配置好並啟動的rsyslog服務器,本指南將為你展示如何來設置CentOS系統將其內部日誌消息路由到一臺遠程rsyslog服務器上。這將大大改善你的系統磁盤空間的使用,尤其是當你還沒有一個用於/var目錄的獨立的大分區。

[root@wenzhiyi ~]# vim /etc/rsyslog.conf,增加如下內容:

*.* @Syslog日誌服務器IP ###註意:*和@之間存在的是tab鍵,非空格。

2)、檢查是否記錄安全事件日誌



[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

Linux主機操作系統加固規範