sudo提權日誌審計

2020-08-13 20:00:05

知識點回顧:
1.開機啓動流程 centos6.X
2.使用者管理
建立使用者 參數需要記住
useradd -s /sbin/nologin /bin/bash -u -g -G -M
刪除使用者
修改使用者
建立密碼
keepass
批次建立10個使用者

知識點概述:
1.密碼管理
2.系統安全
3.MD5校驗
4.使用者相關命令
5.sudo提權
6.日誌審計簡介

1.密碼管理

  1. 如何讓系統更安全
    a. 最小化安裝操作操作系統 安裝的系統內容越多 漏洞越多
    b. 安裝軟體最小化安裝 用什麼軟體裝什麼軟體
    c. 保護好root、禁止root登陸 使用普通使用者登陸
    d. 修改SSH遠端登陸的預設埠 22 修改爲大於10000的埠 1-65535
    PS:埠在系統上是唯一的 不能重複使用
    在系統服務或者安裝的服務預設都是有埠存在的
    檢視當前系統已在在用的埠
    netstat -tnulp
    e. /var/log/secure 日誌的分析: failure 或Failed 監聽如果出現多次系統不安全
    f. 檔案系統許可權 /etc/passwd
    給許可權位加i 不能刪除 不能修改檔案內容
    a 不能刪除 不能修改內容 只能追加新的內容
    g. 給重要的檔案或命令做一個指紋 校驗
    在修改檔案前 給當前的檔案 做一個校驗值
    當檔案被修改 校驗值也會發生變化
    檔案沒有被修改 校驗值不變

    手動測試MD5
    [root@oldboyedu-lnb test]# md5sum oldboy.txt
    3fe396c01f03425cb5e2da8186eb090d oldboy.txt
    [root@oldboyedu-lnb test]#
    [root@oldboyedu-lnb test]# echo alex >> oldboy.txt
    [root@oldboyedu-lnb test]# md5sum oldboy.txt
    185b70298fd472c9e13c3d039a2fefff oldboy.txt

    MD5校驗執行過程:
    第一步: 給重要的檔案做MD5 指紋驗證
    [root@oldboyedu-lnb test]# md5sum oldboy.txt
    185b70298fd472c9e13c3d039a2fefff oldboy.txt

    第二步: 把輸出的MD5值存入到一個檔案中 police.txt
    [root@oldboyedu-lnb test]# md5sum oldboy.txt > police.txt
    [root@oldboyedu-lnb test]# cat police.txt
    185b70298fd472c9e13c3d039a2fefff oldboy.txt

    第三步: 檢測當前的檔案和原來的指紋是否相同 PS:注意路徑問題
    [root@oldboyedu-lnb test]# md5sum --check police.txt
    oldboy.txt: OK # 檔案未被修改提示正常
    [root@oldboyedu-lnb test]# md5sum -c police.txt
    oldboy.txt: OK

      	[root@oldboyedu-lnb test]# md5sum -c police.txt 
      	oldboy.txt: FAILED		# 檔案被修改提示失敗
      	md5sum: WARNING: 1 computed checksum did NOT match
    

    注意事項:
    1) 在什麼情況下使用MD5校驗值
    網站程式碼 對外提供存取的 重要的系統檔案 重要的服務組態檔
    2) 注意路徑問題
    3) 在做監測時候 要清楚是內部人員修改 還是外部人員修改
    4) 什麼情況下修改重要網站程式碼 內部人員修改(程式碼上線)
    在新功能上線的情況下 或者是補BUG的情況
    需要對MD5指紋庫 重新做校驗(把修改後的檔案重新做MD5校驗放入police.txt)
    [root@oldboyedu-lnb test]# echo oldboy >> oldboy.txt
    [root@oldboyedu-lnb test]# md5sum -c police.txt
    oldboy.txt: FAILED
    md5sum: WARNING: 1 computed checksum did NOT match
    [root@oldboyedu-lnb test]# md5sum oldboy.txt > police.txt
    [root@oldboyedu-lnb test]# md5sum -c police.txt
    oldboy.txt: OK
    5) 如果是駭客修改了我們的程式碼 導致檢測失敗
    1) 程式碼必須有備份 最新的備份
    2) 把被篡改的檔案移動到/tmp下 保留證據
    3) 把最新的備份檔案移動到站點目錄(使用者可存取的目錄) 快速恢復業務

      案例: 批次做指紋驗證 
      	  1.在/oldboy下建立10個普通檔案
      	  2.把所有的普通檔案做MD5校驗放入police.md5
      	  3.測試檢驗
      	  
      	  方法1: 直接使用md5sum 萬用字元的方式
      		[root@oldboyedu-lnb oldboy]# md5sum *.txt > police.txt
      		[root@oldboyedu-lnb oldboy]# md5sum -c police.txt 
      		10.txt: OK
      		1.txt: OK
      		2.txt: OK
      		3.txt: OK
      		4.txt: OK
      		5.txt: OK
      		6.txt: OK
      		7.txt: OK
      		8.txt: OK
      		9.txt: OK
    
      	
      	方法2: 使用find加絕對路徑路徑查詢  工作中使用
      		[root@oldboyedu-lnb oldboy]# find /oldboy/ -type f|xargs md5sum >/opt/police.txt 
      		[root@oldboyedu-lnb oldboy]# 
      		[root@oldboyedu-lnb oldboy]# cat /opt/police.txt
      		b026324c6904b2a9cb4b88d6d61c81d1  /oldboy/1.txt
      		26ab0db90d72e28ad0ba1e22ee510510  /oldboy/2.txt
      		6d7fce9fee471194aa8b5b6e47267f03  /oldboy/3.txt
      		48a24b70a0b376535542b996af517398  /oldboy/4.txt
      		1dcca23355272056f04fe8bf20edfce0  /oldboy/5.txt
      		9ae0ea9e3c9c6e1b9b6252c8395efdc1  /oldboy/6.txt
      		84bc3da1b3e33a18e8d5e1bdd7a18d7a  /oldboy/7.txt
      		c30f7472766d25af1dc80b3ffc9a58c7  /oldboy/8.txt
      		7c5aba41f53293b712fd86d08ed5b36e  /oldboy/9.txt
      		31d30eea8d0968d6458e0ad0027c9f80  /oldboy/10.txt
      		[root@oldboyedu-lnb oldboy]# md5sum -c /opt/police.txt
      		/oldboy/1.txt: OK
      		/oldboy/2.txt: OK
      		/oldboy/3.txt: OK
      		/oldboy/4.txt: OK
      		/oldboy/5.txt: OK
      		/oldboy/6.txt: OK
      		/oldboy/7.txt: OK
      		/oldboy/8.txt: OK
      		/oldboy/9.txt: OK
      		/oldboy/10.txt: OK
    
      	如何自動檢測  MD5+定時任務+指令碼
    

    批次新增10個使用者stu01,stu02…stu10,並設定8位元隨機密碼(禁止使用for,while等回圈)

    方法1:
    useradd stu01;echo 123456|passwd --stdin stu01;useradd stu02

    1.如何建立1個使用者
    useradd stu01
    useradd stu02
    useradd stu10

    2.如何讓建立使用者的命令在每一行顯示
    [root@oldboyedu-lnb ~]# useradd stu03
    [root@oldboyedu-lnb ~]# useradd stu04
    [root@oldboyedu-lnb ~]# useradd stu05
    [root@oldboyedu-lnb ~]# useradd stu06

      PS: 只要能顯示到螢幕上的可執行命令 都可以直接使用bash進行執行
      [root@oldboyedu-lnb ~]# echo ls
      ls
      [root@oldboyedu-lnb ~]# echo ls|bash
      1.txt	count.txt	  oldboy.txt  stu02.txt  stu06.txt  stu10.txt  test.txt
      2.txt	id.txt		  passwd.txt  stu03.txt  stu07.txt  stuaZ.txt
      70.txt	index.html	  stu00.txt   stu04.txt  stu08.txt  stu.txt
      alex	lidao-oldboy.txt  stu01.txt   stu05.txt  stu09.txt  test
      [root@oldboyedu-lnb ~]# echo useradd test01
      useradd test01
      [root@oldboyedu-lnb ~]# 
      [root@oldboyedu-lnb ~]# echo useradd test01|bash
      [root@oldboyedu-lnb ~]# id test01
      uid=1009(test01) gid=1009(test01) groups=1009(test01)
    
    1. sed 進行拼接
      [root@oldboyedu-lnb ~]# seq 10|sed -r ‘s#(.)#useradd stu\1#g’
      useradd stu1
      useradd stu2
      useradd stu3
      useradd stu4
      useradd stu5
      useradd stu6
      useradd stu7
      useradd stu8
      useradd stu9
      useradd stu10
      [root@oldboyedu-lnb ~]# seq 10|sed -r 's#(.
      )#useradd stu\1#g’|bash

      刪除使用者
      [root@oldboyedu-lnb ~]# seq -w 10|sed -r ‘s#(.*)#userdel -r stu\1#g’
      userdel -r stu01
      userdel -r stu02
      userdel -r stu03

      [root@oldboyedu-lnb ~]# echo stu{01…10}|xargs -n1|sed -r ‘s#(.*)#useradd \1#g’
      useradd stu01
      useradd stu02
      useradd stu03
      useradd stu04
      useradd stu05
      useradd stu06
      useradd stu07
      useradd stu08
      useradd stu09
      useradd stu10

    2. awk 拼接
      [root@oldboyedu-lnb ~]# seq 10|awk ‘{print 「useradd stu0」$1}’
      useradd stu01
      useradd stu02
      useradd stu03
      useradd stu04
      useradd stu05
      useradd stu06
      useradd stu07
      useradd stu08
      useradd stu09
      useradd stu010

      [root@oldboyedu-lnb ~]# seq 10|awk ‘{print 「userdel -r stu0」$1}’|bash


    [root@oldboyedu-lnb ~]# echo stu{01…10}|xargs -n1|awk ‘{print "useradd " $1}’
    useradd stu01
    useradd stu02
    useradd stu03
    useradd stu04
    useradd stu05
    useradd stu06
    useradd stu07
    useradd stu08
    useradd stu09
    useradd stu10
    ---------------------------- 劉童
    [root@oldboyedu-lnb ~]# echo stu{1…10}|xargs -n1|xargs -i useradd {}
    [root@oldboyedu-lnb ~]# #useradd stu1 stu2 stu3
    [root@oldboyedu-lnb ~]# #-i {}
    [root@oldboyedu-lnb ~]# #useradd stu1
    [root@oldboyedu-lnb ~]# #useradd stu2
    ----------------------------呂超哲
    [root@oldboyedu-lnb ~]# echo useradd" 「stu{01…10}|xargs -n2
    useradd stu01
    useradd stu02
    useradd stu03
    useradd stu04
    useradd stu05
    useradd stu06
    useradd stu07
    useradd stu08
    useradd stu09
    useradd stu10
    [root@oldboyedu-lnb ~]# echo useradd」 "stu{01…10}
    useradd stu01 useradd stu02 useradd stu03 useradd stu04 useradd stu05 useradd stu06 useradd stu07 useradd stu08 useradd stu09 useradd stu10

    ---------------------白星
    [root@oldboyedu-lnb ~]# echo useradd_stu{1…10}|xargs -n1|sed ‘s#_# #g’
    useradd stu1
    useradd stu2
    useradd stu3
    useradd stu4
    useradd stu5
    useradd stu6
    useradd stu7
    useradd stu8
    useradd stu9
    useradd stu10

    -------------------閆萬辰
    [root@oldboyedu-lnb ~]# echo -e ‘\n’useradd’\t’stu{01…10}

    useradd stu01
    useradd stu02
    useradd stu03
    useradd stu04
    useradd stu05
    useradd stu06
    useradd stu07
    useradd stu08
    useradd stu09
    useradd stu10

    1. 給每個使用者建立一個隨機密碼
      1)如何生成隨機密碼
      第一個方法: RANDOM 數位區間0-32767
      [root@oldboyedu-lnb ~]# echo $((RANDOM))|md5sum|cut -c1-8
      639ca2d9
      [root@oldboyedu-lnb ~]# echo $((RANDOM))|md5sum|cut -c1-8
      146e52c9
      [root@oldboyedu-lnb ~]# echo 1|md5sum
      b026324c6904b2a9cb4b88d6d61c81d1 -
      [root@oldboyedu-lnb ~]# echo 2|md5sum
      26ab0db90d72e28ad0ba1e22ee510510 -
      [root@oldboyedu-lnb ~]# echo 3|md5sum
      6d7fce9fee471194aa8b5b6e47267f03 -

      第二個方法:
      [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8
      863fda71
      [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8
      71d47869
      [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8
      bdf8d2e5
      [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8
      2a4ec3de

      2)如何拼接到批次建立使用者

      awk
      [root@oldboyedu-lnb ~]# echo stu{01…10}|xargs -n1|awk ‘{print 「useradd " $1」;echo 123456|passwd --stdin " $1}’
      useradd stu01;echo 123456|passwd --stdin stu01
      useradd stu02;echo 123456|passwd --stdin stu02
      useradd stu03;echo 123456|passwd --stdin stu03
      useradd stu04;echo 123456|passwd --stdin stu04

      sed
      [root@oldboyedu-lnb ~]# echo stu{01…10}|xargs -n1|sed -r ‘s#(.*)#useradd \1;echo 123456|passwd --stdin \1#g’
      useradd stu01;echo 123456|passwd --stdin stu01
      useradd stu02;echo 123456|passwd --stdin stu02
      useradd stu03;echo 123456|passwd --stdin stu03
      useradd stu04;echo 123456|passwd --stdin stu04

[root@oldboyedu-lnb ~]# seq 10|sed -r ‘s#(.*)#useradd stu\1#g’|bash
[root@oldboyedu-lnb ~]# grep stu /etc/passwd

命令:
chown 修改檔案的屬主屬組
    命令格式:
 chown [參數選項] 屬主.屬組 file
		   
 1)修改檔案的屬主 
	 [root@oldboyedu-lnb test]# chown oldboy oldboy.txt 
	 [root@oldboyedu-lnb test]# ll
	total 16
	-rw-r--r-- 1 root   root 168 Aug  5 10:49 all.tar.gz
	lrwxrwxrwx 1 root   root   9 Aug  4 11:39 data -> /tmp/data
	-rwxr-xr-x 1 root   root  10 Aug  4 11:47 oldboy.bak
	-rw-r--r-- 1 oldboy root  24 Aug 12 09:29 oldboy.txt

	  2) 同時修改檔案的屬主屬組 重要 
	[root@oldboyedu-lnb test]# chown oldboy.oldboy oldboy.txt
	[root@oldboyedu-lnb test]# ll oldboy.txt
		-rw-r--r-- 1 oldboy oldboy 24 Aug 12 09:29 oldboy.txt

		   
	   3) 只修改屬組 瞭解
		 [root@oldboyedu-lnb test]# chown .root oldboy.txt 
		 [root@oldboyedu-lnb test]# ll oldboy.txt 
		  -rw-r--r-- 1 oldboy root 24 Aug 12 09:29 oldboy.txt

	   4) 修改當前目錄和目錄下的所有檔案 遞回修改-R		重要 
		 [root@oldboyedu-lnb test]# chown -R oldboy.oldboy ./*
		 [root@oldboyedu-lnb test]# ll
			total 16
			-rw-r--r-- 1 oldboy oldboy 168 Aug  5 10:49 all.tar.gz
			-rwxr-xr-x 1 oldboy oldboy  10 Aug  4 11:47 oldboy.bak
			-rw-r--r-- 1 oldboy oldboy  24 Aug 12 09:29 oldboy.txt
			-rw-r--r-- 1 oldboy oldboy  45 Aug 12 09:29 police.txt
			drwxr-xr-x 2 oldboy oldboy 137 Aug 12 11:04 test
		[root@oldboyedu-lnb test]# ll test
			total 0
			-rw-r--r-- 1 oldboy oldboy 0 Aug 12 11:04 10.txt
			-rw-r--r-- 1 oldboy oldboy 0 Aug 12 11:04 1.txt
			-rw-r--r-- 1 oldboy oldboy 0 Aug 12 11:04 2.txt

		   
案例: 筆試題:
	建立一個 uid 999 不允許登陸 不建立家目錄 屬於test組 oldboy10使用者
	PS:必須先建立組
	[root@oldboyedu-lnb ~]# groupadd -g 888 test
	[root@oldboyedu-lnb ~]# useradd -u997 -s /sbin/nologin -M -G test oldboy10
	[root@oldboyedu-lnb ~]# id oldboy10
	uid=997(oldboy10) gid=1020(oldboy10) groups=1020(oldboy10),888(test)

使用者的相關命令:
	1) id  檢視使用者的資訊
	2) w   檢視系統效能和使用者登陸資訊
	3) top 動態檢視系統效能資訊
		-M 按照記憶體排序
		-P 按照CPU使用率進行排序
	4) sort 排序
		  語法格式:
		  sort [參數選項] file
		  cat file|sort [參數選項]
			  
		1.sort預設按照第一列進行排序 
		 a. 第一列的第一個字母 a..z 正序排序
		 b. 第一列的第一個數位 從小到大正序排序
		
		案例1: 按照數位的第一列正序排序
	                [root@oldboyedu-lnb ~]# sort test.txt
			10
			110
			200000
			300
			4555555
			5
			6
			7
			8
			9
		 案例2: 預設按照字元的第一列排序 正序排序
			[root@oldboyedu-lnb ~]# sort 2.txt
			alex
			hjfie
			jaifek
			lidao
			oldboy
			oomnfwe
			qqqq
			rrrr
			tttt
			uuu
			yyyy
		案例3: 字串和數位在一起
			[root@oldboyedu-lnb ~]# sort 2.txt
			10
			110
			200000
			300
			4555555
			5
			6
			7
			8
			9
			alex
			hjfie
			jaifek
			lidao

		  案例4: 逆序排序
			[root@oldboyedu-lnb ~]# sort -r test.txt 
			9
			8
			7
			6
			5
			4555555
			300
			200000
			110
			10

		  案例5: 按照數位進行正序排序 
			[root@oldboyedu-lnb ~]# sort -n test.txt 
			5
			6
			7
			8
			9
			10
			110
			300
			200000
			4555555

			[root@oldboyedu-lnb ~]# sort -rn test.txt 
			4555555
			200000
			300
			110
			10
			9

		 
		  案例6: 按照第二列的數位進行逆序排序      k2意思是第二行
			[root@oldboyedu-lnb ~]# sort -rnk2 3.txt
			閆萬辰  100
			苗稼木  100
			林銀展  100
			李博森	100.00 
			徐焱	100
			吳琦	100
		
		  案例7: 統計文字中單詞出現的次數
			uniq 
				去重 
				統計 
				預設去重(把挨着的 相鄰的和自己一模一樣的單詞進行去重)
				
			  [root@oldboyedu-lnb ~]# sort 3.txt |uniq -c
			  2 alex
			  1 ccccc
			  2 lidao
			  1 odlboyedu.com
			  2 oldboy
			  1 qqqqq
			  1 zs

			[root@oldboyedu-lnb ~]# sort 3.txt |uniq -c|sort -r|head   重要
			  2 oldboy
			  2 lidao
			  2 alex
			  1 zs
			  1 qqqqq
			  1 odlboyedu.com
			  1 ccccc

		   案例: 
			作業: 統計出以下域名各出現了多少次  按照出現次數最多的進行排序
			把以下內容複製到檔案中  先取出過濾域名 然後進行域名的次數統計
			cat oldboy.txt 
                                                            http://www.baidu.com/images/jpg
			http://www.sina.com/images/mp4
			http://www.baidu.com/static/index.html
			http://www.weibo.com/index.html
			http://www.sina.com/static/jpg
			http://www.baidu.com/index.html
			http://www.sina.com/test/index.html

                                                            [root@oldboyedu-lnb ~]# awk -F"/" '{print $3}'  oldboy.txt|sort|uniq -c|sort -r
                                                            3 www.sina.com
                                                            3 www.baidu.com
                                                            1 www.weibo.com

			
			   結果如下
			   3 www.baidu.com 
			   2 www.weibo.com 

小結:
密碼管理
系統安全
MD5校驗 重要
相關命令
chown
批次建立使用者 sed awk 建立+8位元隨機密碼

下次內容:
		last 
		lastlog 
		sudo 提前
		日誌審計
		許可權管理 RWX 
     cat -n
      grep  -n .