監控與服務安全
使用者賬号安全
使用chage工具
- -d 0 ,強制修改密碼
- -E yyyy-mm-dd,指定失效日期(-1取消)
- -l 檢視具體資訊

賬号的鎖定/解鎖
使用passwd指令
- -l鎖定 -u解鎖 -S看狀态
強制定期修改密碼
配置檔案/etc/login.defs
-對建立使用者有效
主要控制屬性
僞裝登入提示
配置檔案/etc/issue /etc/issue.net
-分别适用于本地,遠端登陸
-預設會提示核心,系統等版本資訊
檔案系統安全
程式和服務控制
禁用非必要的系統服務
-使用systemctl,chkconfig工具
鎖定/解鎖保護檔案
EXT3/EXT4的檔案屬性控制
-chattr lsattr
+,-控制方式
-屬性i:不可變(immutable)
-屬性a:僅可追加(append only)
案例
su切換使用者身份
切換與提權的應用場景
切換使用者身份,When?
-SSH遠端管理
-運維測試
提升執行權限,When?
-管理權限細分
su切換的基本用法
Substitute User,換人
-快速切換為指定的其他使用者
-普通使用者執行時,需驗證使用者的密碼
-root執行時,無需驗證密碼
指令格式
-用法1:su [-] [目标使用者]
-用法2:su [-] -c "指令" [目标使用者]
su操作示例
從普通使用者切換為root,并登入shell環境
-執行su -,或者su - root
-不指明使用者時,預設為root
root以指定的普通使用者身份執行任務
-以使用者tom的身份建立目錄
-以使用者tom的身份執行管理者操作會出錯
分析su切換的使用情況
安全日志/var/log/secure
-記錄su驗證、shell開啟與關閉
sudo提升執行權限
sudo提權的基本用法
Super or another Do ,超級執行
-管理者預先為使用者設定執行許可
-被授權使用者有權執行授權的指令,驗證自己的密碼
執行提權指令
-用法:sudo 提權指令
檢視提取指令
-用法:sudo -l
配置sudo提權
修改方法
-推薦:visudo
-其他:vim /etc/sudoers
授權記錄格式
-使用者 主機清單=指令清單
示例1
-允許mike以root權限執行/sbin/下的所有指令
-但是,禁止修改eth0網卡的參數
示例2
-wheel組的使用者無需驗證可執行所有指令
分析sudo提權的使用情況
修改全局配置,啟用日志
sudo别名設定
主要用途
-提高可重用性,易讀性
-簡化配置,使記錄更有條例
案例
SSH基本防護
SSH防護概述
存在的安全隐患
-密碼嗅探,鍵盤記錄
-暴力枚舉賬号,猜接密碼
常見的防護措施
-使用者限制,黑白名單
-更改驗證方式(密碼-->密鑰對)
-防火牆
sshd基本安全配置
配置檔案/etc/ssh/sshd_config
PermitEmptyPasswords no //禁止密碼為空的使用者登入
PasswordAuthentication no //禁止密碼登
PubkeyAuthentication yes //啟用密鑰對認證登入
sshd黑/白名單配置
配置檔案/etc/ssh/sshd_config
應用示例
-僅允許一部分使用者(從指定地點)登入
-其他使用者均禁止登入
sshd黑白名單配置
應用示例
-僅允許一部分使用者(從指定地點)登入
-其他任何使用者均禁止登入
SSH密鑰對驗證
密碼驗證
-檢查登入使用者的密碼是否一緻
密鑰驗證
-檢查用戶端私鑰與伺服器上的公鑰是否比對
密鑰對驗證的實作思路
建立SSH密鑰對
使用工具ssh-keygen
-可以手動指定加密算法(-t rsa 或 -t dsa)
-若不指定,預設采用RSA加密
部署SSH公鑰
方法一,通過ssh-copy-id自動部署
-好處:一步到位
-局限性:要求ssh密碼認證可用
方法二,通過FTP等方式上傳,手動添加
-好處:靈活,适用範圍廣
-局限性:操作繁瑣,易出錯
測試SSH密鑰對驗證
用戶端登入操作
-僅限密鑰對建立人使用
-需驗證私鑰密碼(如果有的話,否則免密碼登入)
案例
SELINUX安全防護
SELINUX概述
Security-Enhanced Linux
-一套強化LINUX安全的擴充子產品
-美國國家安全局主導開發
SELinux的運作機制
-內建到LINUX核心(2.6以上)
-作業系統提供可指定的政策,管理工具
紅帽的SELINUX政策集
SELINUXTYPE=targeted
-推薦,僅保護最常見的、關鍵的網絡服務,其他不收限制
-主要軟體包:
SELINUX模式控制
方法一,修改kernel啟動參數
-添加selinux=0以禁用
-添加enforcing=0設定SELinux為允許模式
方法二,修改檔案/etc/selinux/config
-設定SELINUX=disabled以禁用
-設定SELINUX=permissive寬松、允許模式
-設定SELINUX=enforcing強制模式
SELinux開關控制
臨時調整,setenforce指令
-設為1,對應強制模式
-設為0,對應寬松模式
SELinux政策設定
檢視安全山下文
Security Context,安全上下文
-為檔案/目錄/裝置标記通路控制屬性
屬性構成
-使用者:角色:通路類型:選項...
修改安全上下文
使用chcon工具
-t,指定通路類型
-R,遞歸修改
一般操作規律
-移動的檔案,原有的上下文屬性不變
-複制的檔案,自動繼承目标位置的上下文
示例:
-有一個權限為644的檔案,但是FTP無權下載下傳
-分析故障原因,并解決此問題
、
重置安全上下文
使用restorecon工具
-恢複為所在位置的預設上下文屬性
-R,遞歸修改
./autorelabel檔案
-下次重新開機後全部重置
調整SELinux布爾值
使用getsebool檢視
-a,可列出所有布爾值
使用setsebool設定
-P,永久更改,重新開機後任然有效
提供SELINUX日志功能的軟體
yum list|grep shoot
yum -y install setroubleshoot*
systemctl restart httpd
error
[[email protected] ~]# grep -i "shoot" /var/log/messages | tail -1 //提示錯誤資訊
Mar 7 01:06:59 200 setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 8866. For complete SELinux messages run: sealert -l 2267baf1-aa60-45e0-9935-b9ffbdd2902b
[[email protected] ~]# sealert -l 2267baf1-aa60-45e0-9935-b9ffbdd2902b //會給出解決辦法
用FTP測試SELinux
[[email protected] ~]# rpm -q vsftpd || yum -y install vsftpd
[[email protected] ~]# vim /etc/vsftpd/vsftpd.con
29 anon_upload_enable=YES 允許上傳檔案
:wq
[[email protected] ~]# mkdir /var/ftp/share
[[email protected] ~]# chmod o+w /var/ftp/share/
[[email protected] ~]#
[[email protected] ~]# ls -ldZ /var/ftp/share
drwxr-xrwx. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/share
[[email protected] ~]#
[[email protected] ~]# systemctl start vsftpd
[[email protected] ~]# netstat -utnlp | grep vsftpd
tcp6 0 0 :::21 :::* LISTEN 1021/vsftpd
[[email protected] ~]# ls -ldZ /var/ftp/
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/
[[email protected] ~]#
[[email protected] ~]# setenforce 1
[[email protected] ~]# getsebool -a | grep ftp
[[email protected] ~]# setsebool -P ftpd_anon_write on
[[email protected] ~]# setsebool -P ftpd_full_access on
[[email protected] ~]# getenforce
Enforcing
[[email protected] ~]#
用戶端上傳,下載下傳檔案
[[email protected] ~]# which ftp
[[email protected] ~]# yum -y install ftp
[[email protected] ~]# ftp 192.168.4.200 //連接配接
Name (192.168.4.200:root): ftp //使用者名
Password: //密碼直接回車
ftp> ls //檢視目錄清單
ftp> cd share //進共享目錄
ftp> lcd /etc //切換到用戶端目錄
ftp> put group //上傳檔案
ftp> bye //斷開連接配接
案例