用幾個簡單的命令改善Linux安全

控制檯安全 

密碼生命週期 

Sudo的通知 

SSH調優 

使用Tripwire進行***檢測 

使用Firewalld 

迴歸iptable 

限制編譯器 

不可修改文件

用Aureport來管理SELinux 

使用sealert工具


一、控制檯安全

編輯/etc/securetty 文件的內容。該文件列出的是允許root用戶登錄的所有設備

只允許root用戶去登錄到一個終端之上,且強制所有其他用戶都使用非root用戶的身份進行登錄。而如果確實需要root用戶權限的時候,請使用su命令來獲取。

二、密碼生命週期

密碼的生命週期就是允許你爲密碼指定一個有效的時間週期。時間到期後,系統將強制要求用戶輸入一個新的密碼。這樣有效地確保了密碼的定期更換,以及密碼在被偷盜、破解或爲人所知的情況下能夠迅速過期。

方法一:

 chage -M 20 likegeeks 

- M選項爲likegeeks用戶設置了有效期限爲20天的密碼

chage likegeeks 

方法二:

/etc/login.defs中爲所有用戶設置默認值

PASS_MAX_DAYS 20 

PASS_MIN_DAYS 0 

PASS_WARN_AGE 5 

三、Sudo的通知

sudo命令允許非root用戶以root身份運行各種命令。你可以在/etc/sudoers文件中查到所有的sudo配置。

可以禁止用戶去運行那些root才能運行的命令。

當sudo命令被使用的時侯,你可以通過在文件中添加如下一行語句,以配置其向外發送電子郵件。

mailto [email protected]

mail_always on 

四、SSH調優

/etc/ssh/sshd_config 

改變SSH的原有端口到另一個未使用的端口上

Port 5555 

更新PermitRootLogin的值爲no來限制root的登錄

PermitRootLogin no

禁用無密碼的通道,且改用公鑰登錄的方式

PasswordAuthentication no 

PermitEmptyPasswords no

啓用UseDNS的值

UseDNS yes 

將GSSAPIAuthentication設爲no

GSSAPIAuthentication no 

配置ServerAliveInterval、ServerAliveCountMax和TCPKeepAlive的值來進行管控超時問題

ServerAliveInterval 15  

ServerAliveCountMax 3  

TCPKeepAlive yes

更長的連接

ClientAliveInterval 30  

ClientAliveCountMax 5

指定被允許使用SSH的用戶名

AllowUsers user1 user2

指定允許的組

AllowGroup group1 group2 

詢問一個驗證碼

ChallengeResponseAuthentication yes 

五、使用Tripwire進行***檢測

Tripwire是Linux安全裏的重要工具之一。這是一種基於主機的***檢測系統(HIDS)。它通過收集配置和文件系統的細節,並使用這些信息來提供系統先前與當前狀態之間的參考點等方式進行工作。該過程監測文件或目錄的屬性包括:進去哪些被添加或修改了、誰修改的、修改了什麼、何時修改的。因此它就是你文件系統的“看門狗”

訪問EPEL存儲庫來獲取Tripwire

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm 

rpm -ivh epel-release-7-9.noarch.rpm 

yum install tripwire

創建本地和網站密鑰: 

tripwire-setup-keyfiles

定製Tripwire:

/etc/tripwire/twpol.txt 

更新Tripwire策略 

tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt

初始化Tripwire數據庫:

tripwire --init 

驗證你的現有的策略文件:

tripwire --check 

額外去加固twpol.txt和twcfg.txt文件的安全

六、使用Firewalld

Firewalld的當前運行狀態

firewall-cmd --state

列出預定義的區域

firewall-cmd --get-zones

設置默認區域

firewall-cmd --set-default-zone=

獲取任何特定區域的所有相關信息

firewall-cmd --zone= --list-all

支持的服務

firewall-cmd --get-services

添加或刪除額外的服務

firewall-cmd --zone= --add-service=  

firewall-cmd --zone= --remove-service=

開放的端口

firewall-cmd --zone= --list-ports

管理TCP/UDP端口的增加與刪除

firewall-cmd --zone= --add-port=  

firewall-cmd --zone= --remove-port=

添加或刪除端口的轉發

firewall-cmd --zone= --add-forward-port=   

firewall-cmd --zone= --remove-forward-port=

七、迴歸iptable

先禁用Firewalld:

systemctl disable firewalld  

systemctl stop firewalld 

安裝 iptables:

yum install iptables-services    

touch /etc/sysconfig/iptables    

touch /etc/sysconfig/ip6tables

啓動 iptables服務: 

systemctl start iptables  

systemctl start ip6tables   

systemctl enable iptables   

systemctl enable ip6tables

八、限制編譯器

檢查單個的數據包以確定其包含有哪些二進制文件。然後你需要限制這些二進制文件的權限

rpm -q --filesbypkg gcc | grep 'bin'

創建一個可以訪問二進制文件的編譯器的組名稱

groupadd compilerGroup

賦予這個組能夠改變任何二進制文件的所有權

chown root:compilerGroup /usr/bin/gcc

九、不可修改文件

不可修改文件是Linux系統中一種最爲強大的安全特性。任何用戶(即使是root用戶),無論他們的文件權限是怎樣的,都無法對不可修改文件進行寫入、刪除、重命名甚至是創建硬鏈接等操作。

使用chattr命令來將任何文件變得不修改:

chattr +i /myscript 

chattr -i /myscript

十、用Aureport來管理SELinux

aureport工具被設計爲創建一些基於列特徵的報告,以顯示在審計日誌文件中所記錄的那些事件。

aureport --avc 

創建一個可執行文件的列表:

aureport -x

使用aureport來產生一個認證的全量報告:

aureport -au -i

認證失敗的事件:

aureport -au --summary -i --failed

認證成功的事件的摘要:

aureport -au --summary -i --success

十一、使用Sealert工具

yum install setools

sealert -a /var/log/audit/audit.log




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章