SECURITY
一、Linux基本防護
1.用戶賬號安全
A、設置賬號有效期,臨時人員賬號
B、Useradd 有效期273年
C、Chage(change age) -l zhangsan 查用戶賬號有效期信息
D、chage -E(expire) xxxx-xx-xx zhangsan //設置賬號到期時間,設置在前時間即立刻過期
E、/etc/login.defs //默認有效期的文件
PASS_MAX_DAYS 默認有效期時間
PASS_MIN_DAYS 最少x天才可以改一次密碼
PASS_MIN_LEN 密碼最少長度為多少位
PASS_WARN_AGE 密碼到期前的多少天發出提示
UID)_MINUID最小值
UID_MAX UID最大值
SYS_GIN_...系統用戶的最大最小值
CREATE_HOME 是否創建用戶家目錄
ENCRYPT_METHOD 設置密碼時採用SHA512加密
F、passwd -l lisi 鎖定用戶,暫時不給登陸(用於該用戶受攻擊,先隔離再修復)
Passwd -u lisi 解鎖用戶
passwd -S lisi 查看用戶狀態
G、/etc/issue 登陸信息
\S 操作系統信息
Kernel \r on an \m 內核版本信息
一般為了安全,將版本號隱藏,防止別人針對版本進行攻擊,可修改成其他信息
2.文件系統安全
H、鎖定文件(+為鎖定,-為解鎖)
Lsattr 文件名 查看文件特殊屬性
Chattr +a 文件名 鎖定後文件只可追加內容,不可刪內容或文件(包括管理員也不行,除非解鎖)
Chattr +i文件名 徹底鎖定,改也不允許,只能查看內容
+s 當刪除文件時,不單止刪除inode標籤,還覆蓋一層零到數據快上保證數據被清除,也叫做安全刪除。(對文件系統有要求,不一定能設置)
二、用戶切換和提權
1.su切換用戶身份
A.su - 用戶名 (交互式,切換後再輸入命令執行),不輸入用戶名為root,需要輸入密碼
Su - 用戶名 -c ‘命令’(非交互式,用於寫腳本)
2.Sodu提升執行權限(不需要管理員密碼,能做管理員的任務,但是需要管理員分配權限)
Eg:tom 安裝軟件
Jerry管理服務
Lily用戶管理
B.vim /etc/sudoers(帶顏色,沒有改錯提示) 或 visudo(改錯會有提示)
softadm ALL=(root) /usr/bin/systemctl
授權softadm 以root用戶的身份從任何地方(all)登陸執行systemctl命令;要找到命令的執行位置
useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root
授權useradm從任何地方登陸以任何身份執行passwd命令,但不能做passwd root命令,多條命令間用“,”隔開,“!”命令取反,支持通配符
%wheel ALL=(ALL) NOPASSWD:命令 //允許wheel組的成員......,nopasswd執行命令時無需輸密碼
Cmnd_Alias xxx 設置別名等於哪些命令,註釋裡有,去通過去掉註釋使用或手動設置,注意要大寫。
在裡面寫入行: Defaults logfile=”/var/log/sudo” 為sudo機制啟用日誌記錄,以便跟蹤sudo執行操作,D要大寫,日誌只有管理員看
切換到softadm用戶:
Sodu -l 查看用戶可以運行哪些命令
Sodu systemctl restart sshd 執行命令前要加sodu
三、ssh基本防護
1.配置基本安全策略
配置文件:
作為客戶端連別人(/etc/ssh/ssh_config)
作為服務器被別人連(/etc/ssh/sshd_config)
Vim /etc/ssh/sshd_config
PermitRootLogin no //禁止直接以root用戶身份登錄,防止別人試密碼,可先登陸到普通用戶再su - root 輸密碼
PasswordAuthentication yes //是否允許使用密碼登陸,不允許就只能通過密鑰登陸,防止別人抓包
PermitEmptyPasswords no//禁止密碼為空的用戶登錄
UseDNS no //不解釋客戶機地址,比較快
LoginGraceTime 1m //登陸超時
MaxAuthTries 3 //每次連接最多認證次數
增加行:AllowUser lisi haha [email protected]/24
//僅允許以lisi haha 以及在4網段上以useradm的身份ssh,默認拒絕其他所有
DenyUsers ...... 禁止直接以root用戶身份登默認允許其他所有
Allow|DenyGroups Group1 group2
2.密鑰遠程登陸,免密碼登陸
客戶端生成密鑰:ssh-keygen -t rsa
Ssh-copy-id [email protected] //發送公鑰到服務端,以root用戶身份登陸,輸入密碼後以後無需輸入密碼
可在服務端目標用戶的家目錄下~/.ssh/authorized_keys查看公鑰信息
3.提高ssh服務安全小結
A、基本安全策略(禁止root、禁止空口令)
B、為SSH訪問配置“僅允許”策略
C、分別實現密鑰驗證登入,免密碼登入
D、禁用密碼驗證
四、SELinux安全防護
1.配置文件(/etc/selinux/config)
模式:
Permissive寬鬆(僅記錄,不攔截)
Disabled禁用(不記錄,不攔截)
Enforcing強制(記錄並攔截)
SELINUXTYPE(策略集):
原理:
用戶運行程序,程序繼承該用戶的權限(rwx)
Selinux定義規則,對程序單獨設規則
Httpd 對軟件規則httpd_content(標籤),只能讀帶有該標籤的文件
Chcon -t xyz a.html //a.html貼上xyz標籤
Targetd 多對網絡程序定的規則
Minimum 基本不定義
Mls 基本的都限制了
2.修改selinux 模式
臨時修改:setenforce
永久修改:改配置文件,若改為disabled,需要重啟系統
3.調整策略打開vsftpd服務的匿名上傳訪問
Yum -y install vsftpd;
Vim /etc/vsftpd/vsftpd.conf
Anonymous_enable=YES //開啟匿名訪問(默認開了,可以下載文件)
Write_enable=YES
Anon_upload_enable=YES //允許匿名上傳文件
Anon_mkdir_write_enable=YES //允許上傳目錄
4.調整文件的安全上下文(selinux context)
Mv移動文件安全上下文不變
Cp移動文件安全上下文繼承新目錄的安全上下文標籤
Chcon -t 安全上下文 文件名 //修改文件安全上下文
Restorecon /var/ftp/xxx.xx //重置xxx.xx文件的標籤為與/var/ftp/標籤相同,效果與chcon相同。
5.調整selinux布爾值
Getsebool -a //列出所有布爾值
Setsebool -P(永久更改) 布爾值 on|off //調整布爾值
閱讀更多 VC1212138 的文章