控制檯安全
密碼生命週期
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 /myscriptchattr -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