Ubuntu等保三級檢查命令


一、操作系統

  Ubuntu系統默認只能以普通權限賬戶登錄,無法直接登錄root賬戶,所以很多要用到管理員權限的命令加sudo。

  1、查看文件權限

查看該文件的權限
ls -la /var/log/audit/audit.log

查看如下文件的權限是否滿足
ls -l /etc/passwd            
ls -l /etc/hosts      
ls -l /etc/login.defs  
ls -l /etc/hosts.allow    
ls -l /etc/shadow     
ls -l /etc/hosts.deny    
ls -l /etc/group             
ls -l /etc/services

文件中日志信息所在文件的訪問權限
ls -l /var/log/messages
ls -l /var/log/secure
ls -l /var/log/audit/audit.log

  2、查看系統版本

cat /etc/issue
cat /proc/version
uname -a 
lsb_release -a

  3、服務相關

service --status-all                     查看本機的所有服務運行狀態(這條命令可以看到服務器是否安裝殺毒軟件)
service --status-all | more
service --status-all | less
service --status-all | grep running      只查看正在運行的服務
chkconfig --list                         查看開機自啟服務

sysv
-rc-conf 配置服務級別的命令: 一般的linux有7個級別,ubuntu有8個級別(多了一個S級別) 0代表關機(halt) 1級別是單用戶模式(single) 2級別是多用戶級別,這個是默認級別 3,4,5未定義,可以提供給用戶定義其他多用戶級別 6代表重啟(restart) S級別系統內部定義的單用戶恢復模式。 可以用init 6代表重啟,切換運行級別。

  4、審計相關

rpm -ql auditd                   檢查是否安裝了 audit 插件
sudo apt-get install auditd      安裝 audit 插件
service auditd status            查看audit 服務的運行狀態
auditctl -s                      查詢狀態
auditctl -l                      查看規則
auditctl -D                      刪除所有規則
ausearch -i -k key_name          查看審計日志#key_name為標識符

  5、審計規則語法

臨時測試語法格式:auditctl -w PATH -p PERMISSION -k KEY_NAME,直接執行命令。

 永久生效語法格式: -w PATH -p PERMISSION -k KEY_NAME,需要配置到/etc/audit/audit.rules 或者 /etc/audit/rules.d/audit.rules 文件中。

PATH:審計指定路徑。
PERMISSION:審計權限范圍,r為讀,w為寫,x為執行,a代表文件或目錄的屬性發生變化。
KEY_NAME:標識符。

  6、配置臨時審計規則

臨時添加審計規則並測試,臨時添加的審計規則,重啟服務后會自動消失,這里用於測試。
1.添加臨時測試審計命令:
auditctl -w /root -p rwxa -k root_test_change
# 審計目錄為:root,審計權限為:rwxa,標識符為:root_test_change
2.模擬產生審計日志命令: ll /root; touch /root/test;
3.查看審計日志命令: ausearch -i -k root_test_change

  7、配置永久審計規則

編輯以下任意1個文件,實現審計規則,/etc/audit/audit.rules 或者 /etc/audit/rules.d/audit.rules。

這里對5個目錄操作實現審計行為:
-w /etc/passwd -p rwxa -k passwd_change,系統用戶賬戶信息。
-w /etc/shadow -p rwxa -k shadow_change,系統用戶密碼信息。
-w /etc/group -p rwxa -k group_change,系統用戶組信息。
-w /var/log/ -p rwxa -k log_change,系統日志信息。
-w /usr/local/mysql -p rwxa -k mysql_change,MySQL數據庫信息。
通過命令,service auditd restart 重啟服務后,auditctl -s 和 auditctl -l 查看服務狀態和審計規則。
查詢 /etc/auditd.conf 主配置文件如下:
log_file = /var/log/audit/audit.log,默認的日志存儲目錄文件。

二、mysql數據庫

  系統等保要求,MySQL 數據庫必須開啟密碼策略(復雜度)設置和安裝審計插件。

       數據庫的密碼復雜度設置從內部即可開啟和設置,但是審計插件必須額外進行下載和安裝。

  1、MySQL 數據庫密碼策略(復雜度)設置

登錄數據庫,輸入以下命令,檢查當前密碼策略情況
show variables like 'validate_password%';
通過以下命令,可以修改策略值(例)
set global validate_password_policy=0;
關於MySQL密碼策略相關參數說明:
1)、validate_password_length 固定密碼的總長度; 2)、validate_password_dictionary_file 指定密碼驗證的文件路徑; 3)、validate_password_mixed_case_count 整個密碼中至少要包含大/小寫字母的總個數; 4)、validate_password_number_count 整個密碼中至少要包含阿拉伯數字的個數; 5)、validate_password_policy 指定密碼的強度驗證等級,默認為 MEDIUM; 關於 validate_password_policy 的取值:   0/LOW:只驗證長度;   1/MEDIUM:驗證長度、數字、大小寫、特殊字符;   2/STRONG:驗證長度、數字、大小寫、特殊字符、字典文件; 6)、validate_password_special_char_count 整個密碼中至少要包含特殊字符的個數; 如果顯示命令無效,則說明策略尚未開啟,按照以下步驟操作,編輯配置文件 vim /etc/my.cnf,添加以下命令。 plugin-load=validate_password.so 重啟服務,登錄數據庫,執行以下命令進行插件安裝。 INSTALL PLUGIN validate_password SONAME 'validate_password.so'; 再次重啟服務,輸入以下命令,檢查當前密碼策略情況。 show variables like 'validate_password%';

  2、審計插件

  審計插件下載地址:https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.6-784#files

       下載文件:audit-plugin-mysql-5.7-1.1.6-784-linux-x86_64.zip

  目錄說明:lib -> libaudit_plugin.so、utils -> offset-extract.sh,用到這兩個文件。

1. 查詢數據庫插件統一存放目錄位置,將 libaudit_plugin.so 上傳到目錄下。
show global variables like 'plugin_dir';

2.來到 plugin 目錄下對 so 文件授權。
chmod +x libaudit_plugin.so
chown mysql:mysql libaudit_plugin.so

3. 創建審計日志目錄,並授權 mysql 用戶操作權限,授權操作不執行會導致日志無法生成。
mkdir /usr/local/mysql/3306/audit_log/
chown mysql.mysql /usr/local/mysql/3306/audit_log/

4. 將 offset-extract.sh 腳本上傳到服務器上,並授權。
chmod +x offset-extract.sh

5. 執行腳本運算,獲取運算值。
./offset-extract.sh /usr/local/mysql/bin/mysqld
//offsets for: /usr/local/mysql/bin/mysqld (5.7.26)
{"5.7.26","454f8eee117882061d2a4ed575328a01", 7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080, 13472, 148, 672},

6. 在 MySQL 配置文件中,配置以下命令。
plugin-load=AUDIT=libaudit_plugin.so
audit_offsets=7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080, 13472, 148, 672 # 運算值,通過第五步得出
audit_json_file=ON
audit_json_log_file=/usr/local/mysql/3306/audit_log/mysql-audit.json # 日志目錄
audit_record_cmds=insert,delete,update,create,drop,revoke,alter,grant,set # 針對這些語句來審計

7. 重啟數據庫服務,service mysql.server restart,輸入以下命令查詢插件安裝情況。
show plugins;

8. 查看插件版本。
show global status like 'AUDIT_version';

9.查看日志文件是否開啟。
show global variables like 'audit_json_file';
  *參數說明:
    1. audit_json_file 
   #是否開啟audit功能 
  
   2. audit_json_log_file 
   #記錄文件的路徑和名稱信息 

   3. audit_record_cmds 
   #audit記錄的命令,默認為記錄所有命令可以設置為任意dml、dcl、ddl的組合 如:audit_record_cmds=select,insert,delete,update 還可以在線設置set global audit_record_cmds=NULL(表示記錄所有命令) 

   4.audit_record_objs
   #audit記錄操作的對象,默認為記錄所有對象,可以用SET GLOBAL 
   audit_record_objs=NULL設置為默認。也可以指定為下面的格式: 
   audit_record_objs=,test.*,mysql.*,information_schema.*8. 查看審計日志
cat /usr/local/mysql/3306/audit_log/mysql-audit.json

  3、測試

進入到 MySQL 命令行,執行語句
CREATE TABLE `t1` ( `id` int(10) NOT NULL AUTO_INCREMENT, `age` tinyint(4) NOT NULL DEFAULT '0', `name` varchar(30) NOT NULL DEFAULT '', PRIMARY KEY (`id`) )DEFAULT CHARSET=utf8; 
INSERT INTO `test`.`t1` (`age`, `name`) VALUES ('1', '1'); 
INSERT INTO `test`.`t1` (`age`, `name`) VALUES ('3', '3'); 
INSERT INTO `test`.`t1` (`age`, `name`) VALUES ('4', '4'); 
INSERT INTO `test`.`t1` (`age`, `name`) VALUES ('5', '5'); 
update t1 set name='6' where age='5'; 
delete from t1 where age='1'; select * from t1; 

查看日志即可。
cat /usr/local/mysql/3306/audit_log/mysql-audit.json

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM