㈠ linux系統上記錄MYSQL操作的審計日誌
根據筆者上一篇文章—Linux系統上記錄用戶操作的審計日誌 。本文來利用相同的方法記錄MYSQL操作的審計日誌。
使用用mysql工具連接MySQL server的所有操作會默認記錄到~/.mysql_history文件中,這個文件會把所有操作記錄下來,包括創建用戶和修改用戶的明文密碼,這在生產系統上是不安全的。如果不想保存,僅僅刪除是不行的(文件不存在會再建立),要直接將其軟連接到垃圾箱。
ln -s /dev/null ~/.mysql_history
利用上一篇文章相同的方法記錄MYSQL操作的審計日誌,是因為mysql工具本身就是有一個shell, 每次mysql連接退出後,都會把此次操作的信息記錄到~/.mysql_history文件中。那麼可以重新定義MYSQL_HISTFILE環境變數來保存mysql日誌。
先看置於/etc/profile.d目錄下的環境變數的腳本mysql_history.sh,和loginlog類似。
在測試時,發現平時使用的普通用戶在操作mysql後無法記錄,而root用戶(平時沒有操作過mysql)可以記錄成功。後來在在~/.mysql_history文件找到了操作記錄,估計是這個文件還存在的原因,刪除後才記錄到新的MYSQL_HISTFILE定義的路徑。
和loginlog一樣,需要定期刪除過期日誌,以下腳本置於/etc/cron.weekly 目錄下。
delete_time=15
find /opt/mysqllog/ -mtime +$delete_time -name '*.log' -exec rm -r {} \;
但是相比於loginlog,mysqllog有兩點暫時沒有解決。
1、定義最大的記錄條數history.maxSize不知在哪定義,my.cnf?
2、每一條命令的時間記錄添加。
㈡ 如何查看Linux中各個用戶的歷史操作命令
如何查看Linux中各個用戶的歷史操作命令
1.要查看用戶名為test的歷史操作命令
cat /home/test/.bash_history
㈢ Linux裡面如何查看系統用戶登錄日誌
一、查看日誌文件
Linux查看/var/log/wtmp文件查看可疑IP登陸
last -f /var/log/wtmp
該日誌文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件。因此隨著系統正常運行時間的增加,該文件的大小也會越來越大,
增加的速度取決於系統用戶登錄的次數。該日誌文件可以用來查看用戶的登錄記錄,
last命令就通過訪問這個文件獲得這些信息,並以反序從後向前顯示用戶的登錄記錄,last也能根據用戶、終端tty或時間顯示相應的記錄。
查看/var/log/secure文件尋找可疑IP登陸次數
二、 腳本生成所有登錄用戶的操作歷史
在linux系統的環境下,不管是root用戶還是其它的用戶只有登陸系統後用進入操作我們都可以通過命令history來查看歷史記錄,可是假如一台伺服器多人登陸,一天因為某人誤操作了刪除了重要的數據。這時候通過查看歷史記錄(命令:history)是沒有什麼意義了(因為history只針對登錄用戶下執行有效,即使root用戶也無法得到其它用戶histotry歷史)。那有沒有什麼辦法實現通過記錄登陸後的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile裡面加入以下代碼就可以實現:
PS1="`whoami`@`hostname`:"'[$PWD]'
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP}-dbasky.$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null
source /etc/profile 使用腳本生效
退出用戶,重新登錄
?面腳本在系統的/tmp新建個dbasky目錄,記錄所有登陸過系統的用戶和IP地址(文件名),每當用戶登錄/退出會創建相應的文件,該文件保存這段用戶登錄時期內操作歷史,可以用這個方法來監測系統的安全性。
root@zsc6:[/tmp/dbasky/root]ls
10.1.80.47 dbasky.2013-10-24_12:53:08
root@zsc6:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08
㈣ 如何查看linux用戶的操作記錄
1、使用w命令查看登錄用戶正在使用的進程信息,w命令用於顯示已經登錄系統的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源於/var/run/utmp文件。w命令輸出的信息包括:用戶名稱
用戶的機器名稱或tty號
遠程主機地址
用戶登錄系統的時間
空閑時間(作用不大)
附加到tty(終端)的進程所用的時間(JCPU時間)
當前進程所用時間(PCPU時間)
用戶當前正在使用的命令
$ w
23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 10.1.80.56 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv]
jason pts/1 10.20.48 23:01 2:53 0.01s 0.01s -bash
john pts/2 10.1.80.7 23:04 0.00s 0.00s 0.00s w
此外,可以使用who am i查看使用該命令的用戶及進程,使用who查看所有登錄用戶進程信息,這些查看命令大同小異;
2. 在linux系統的環境下,不管是root用戶還是其它的用戶只有登陸系統後用進入操作我們都可以通過命令history來查看歷史記錄, 可是假如一台伺服器多人登陸,一天因為某人誤操作了刪除了重要的數據。這時候通過查看歷史記錄(命令:history)是沒有什麼意義了(因為history只針對登錄用戶下執行有效,即使root用戶也無法得到其它用戶histotry歷史)。那有沒有什麼辦法實現通過記錄登陸後的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile裡面加入以下代碼就可以實現:
㈤ 如何查看Linux中各個用戶的歷史操作命令
1、首先打開Linux直接輸入一個history即可。
㈥ Linux用戶命令記錄
很多情況下我們需要記錄用戶執行過的命令,不管是root還是其他普通用戶,我們可以通過以下方式來記錄。
PROMPT_COMMAND會在命令執行前執行。
$(who am i |awk '{print \$2,\$5}') 會輸出登錄用戶用的tty和登錄伺服器的遠程電腦IP或者主機名。
$PWD 是內建變數,顯示當前執行命令的工作目錄。
history 1 | { read x cmd; echo ${cmd}; 會輸出最後一條歷史命令中的執行信息。
為了不讓用戶修改變數,使用 declare -rx 命令定義了只讀環境變數。這里要注意使用 readonly 命令也可以定義只讀變數,但是用戶用env命令看不到,只有用 export PROMPT_COMMAND 命令將變數設置為環境變數後才能看到。
變數加到 /etc/bashrc 是因為用戶登錄後會載入這里的配置,包括 sudo sudo su sudo su - su root su - root 。如果加到其他文件里則部分命令後就不會載入變數,自行嘗試。
修改rsyslog是可以自定義日誌輸出的文件路徑和名字,用 logger -p 這個命令配合使用。
新增logrotate配置則是需要切割日誌,防止單個日誌文件太大,以及做好切割備份,方便查詢。
【一】
在 /etc/profile 最後添加如下行,則日誌會直接輸出到 messages 日誌里。
這種方式:不定義日誌格式,直接將日誌寫到messages日誌文件里,和其他日誌放一起,但是可以指定日誌標簽,方便檢索。
缺點是(1)會導致日誌增大,並且用戶提權後因-t標簽的存在,導致不會記錄提權前的用戶。(2)不能自定義日誌路徑。
【二】
缺點:用戶可以刪除日誌文件。
因為普通用戶和root都要往日誌文件里寫,所以需要給普通用戶加一個附加組;並且如果日誌文件不存在,普通用戶登錄後也需要新建,所以普通用戶必須有日誌文件父目錄的寫許可權。為了能讓所有普通用戶都可以寫,就給Command目錄加了SGID許可權以及修改目錄屬組為audit。這樣普通用戶在這個目錄下創建的日誌文件的屬組會自動繼承Command目錄的屬組,也就是audit。 (umask 002 && touch $HISTORY_FILE) 命令則是因為root用戶生成的日誌文件許可權是644,屬組沒有寫許可權。所以這里用 啟動子shell並修改umask的方式生成日誌文件。這樣就不會修改root默認的 0022 的umask。
其他審計軟體:
https://www.splunk.com/ 免費2個月
㈦ Linux系統下用戶以及許可權管理
一、操作系統中的用戶管理 相關配置文件解讀
Linux用戶在操作系統可以進行日常管理和維護,涉及到的相關配置文件如下:
/etc/passwd 保存操作系統中的所有用戶信息
root : x : 0 : 0 : root : /root : /bin/bash
name:password:UID:GID:GECOS:directory:shell
用戶名 :密碼佔位符 :uid :基本組的gid :用戶信息記錄欄位:用戶的家目錄:用戶登錄系統後使用的命令解析器
————————————————
欄位1:用戶名
欄位2:密碼佔位符
欄位3:用戶的UID 0 表示超級用戶 , 500-60000 普通用戶 , 1-499 程序用戶
欄位4:基本組的GID 先有組才有用戶
欄位5:用戶信息記錄欄位
欄位6:用戶的家目錄
欄位7:用戶登錄系統後使用的命令解釋器
————————————————
UID:0表示超級用戶, 程序用戶 (1-499),普通用戶 (500以上60000以下),根據uid將用戶分為以上三類用戶。
/etc/shw 保存用戶密碼(以加密形式保存)
[root@xing /]# cat /etc/shadow
root : $6$Jw5XsDvvNBH5Xoq. : 19180 : 0 : 99999 : 7 : : :
用戶名:密碼(加密後的字元串):最近一次的修改時間【距離1970年1月1日的距離】:密碼的最短有效期:密碼的最長有效期:密碼過期前7天警告:密碼的不活躍期:用戶的失效時間: 保留欄位
————————————————
欄位1:用戶名
*欄位2:用戶的密碼加密後的字元串(sha)
欄位3:距離1970/1/1密碼最近一次修改的時間
欄位4:密碼的最短有效期
*欄位5:密碼的最長有效期(建議時間 90)
欄位6:密碼過期前7天警告
欄位7:密碼的不活躍期
欄位8:用戶的失效時間
欄位9:保留欄位
這個欄位目前沒有使用,等待新功能的加入。
————————————————
/etc/group 保存組信息
————————————————
root:x:0:
bin:x:1:bin,daemon
組名:組的密碼佔位符:gid:附加組成員
————————————————
/etc/login.defs 用戶屬性限制,密碼過期時間,密碼最大長度等限制
/etc/default/useradd 顯示或更改默認的useradd配置文件
二、文件及目錄許可權
文件與許可權: 即文件或者目錄屬於哪個用戶,屬於哪個組,不同的用戶能對該文件進行何種操作。
————————————————
註:
查看文件許可權: ls -l 文件
查看目錄許可權 : ls -ld 目錄
————————————————
[root@xing Desktop]# ls -l /root/Desktop/
total 70584
lrwxrwxrwx. 1 root root 18 Jul 14 14:32 123.txt -> /root/Desktop/ming
-rw-r--r--. (文件屬性) 1 (鏈接個數: 表示指向它的鏈接文件的個數 ) root (所屬者) root (所屬組) 0(文件大小:單位byte) Jul 14 14:14(最後一次修改時間) 2.txt(文件名)
drwx------.(文件屬性) 7 (目錄中的子目錄數: 此處看到的值要減2才等於該目錄下的子目錄的實際個數。 ) root (所屬者) root (所屬組) 4096 (文件大小:單位byte)Jul 13 16:56(最後一次修改時間) vmware-tools-distrib(目錄名)
[root@xing Desktop]# ls -ld /root/Desktop/
drwxr-xr-x. 3 root root 4096 Jul 14 14:44 /root/Desktop/
————————————————
文件屬性解釋:
- rw- r-- r-- .
d rwx r-x r-x .
欄位1:文件類型 【- 普通文件 d目錄 l符號鏈接 b塊設備】
欄位2:文件所有者對該文件的許可權
欄位3:文件所屬組的許可權
欄位4:其他用戶的許可權(既不是文件所有者也不是文件所屬組的用戶)
欄位5:表示文件受 selinux 的程序管理
8進制賦權法: r 【100】4; w【010】2; x【001】1
————————————————
三、用戶以及許可權管理命令匯總:
————————————————
用戶增刪改命令
useradd
userdel
usermod
————————————————
用戶組增刪改命令
groupadd
groupdel
groupmod
————————————————
passwd
change
————————————————
文件許可權修改: chmod命令
chmod 對象 算數運算符 許可權 文件
[root@xing tmp]# ls -ld ming
drwxr-xr-x. 2 root root 4096 Jul 16 10:27 ming
[root@xing tmp]# chmod o-x ming
[root@xing tmp]# ls -ld ming
drwxr-xr--. 2 root root 4096 Jul 16 10:27 ming
————————————————
文件所屬者修改:
chown 用戶 文件
[root@xing tmp]# chown ming ming
[root@xing tmp]# ls -ld ming
drwxr-xr--. 2 ming root 4096 Jul 16 10:27 ming
————————————————
文件所屬組修改:
chgrp 組 文件
[root@xing tmp]# chgrp ming ming
[root@xing tmp]# ls -ld ming
drwxr-xr--. 2 ming ming 4096 Jul 16 10:27 ming
————————————————
8進制賦權法
[root@xing ~]# chmod 644 /tmp/ming
[root@xing ~]# ls -ld /tmp/ming
drw-r--r--. 2 ming ming 4096 Jul 16 10:27 /tmp/ming
————————————————
linux下命令「ll」是「ls -l"的別名。
————————————————
粘滯位:賦權後的文件 只有建立者可以刪除
chmod o+t 文件
[root@xing ~]# chmod o+t /tmp/ming
[root@xing ~]# ll -d /tmp/ming
drw-r--r-T . 2 ming ming 4096 Jul 16 10:27 /tmp/ming
————————————————
sgid : 賦權後的目錄,新建立的文件或者子目錄的所屬組繼承父目錄的所屬組
chmod g+s 目錄
[root@xing ming]# chmod g+s /tmp/ming
[root@xing tmp]# ll
drw-r-Sr-T. 2 ming ming 4096 Jul 16 11:29 ming
[root@xing ming]# touch 20.txt
[root@xing ming]# ll
-rw-r--r--. 1 root ming 0 Jul 16 11:33 20.txt
[root@xing ming]# mkdir 60
[root@xing ming]# ll
drwxr-sr-x. 2 root ming 4096 Jul 16 11:34 60
————————————————
suid :允許誰運行該文件具有該文件所屬者的許可權
chmod u+s 文件
[root@xing Desktop]# ll /usr/bin/vim
-rwxr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim
[root@xing Desktop]# chmod u+s /usr/bin/vim
[root@xing Desktop]# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim
備註:linux 紅底白字代表警告!
————————————————
[root@xing Desktop]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
suid:4 sgid:2 粘滯位:1
[root@xing Desktop]# find /usr/bin -perm 4 755
/usr/bin/at
/usr/bin/chage
/usr/bin/pkexec
/usr/bin/Xorg
/usr/bin/crontab
/usr/bin/newgrp
/usr/bin/vim
/usr/bin/gpasswd
/usr/bin/passwd
/usr/bin/ksu
————————————————
1、不再允許添加新用戶的請求
chattr命令 :用於改變文件屬性
chattr +i 文件
lsttr命令 :查看文件屬性
lsattr 文件
[root@xing Desktop]# lsattr /etc/passwd /etc/shadow
-------------e- /etc/passwd
-------------e- /etc/shadow
[root@xing Desktop]# chattr +i /etc/passwd /etc/shadow
[root@xing Desktop]# lsattr /etc/passwd /etc/shadow
----i--------e- /etc/passwd
----i--------e- /etc/shadow
[root@xing Desktop]# useradd kk
useradd: cannot open /etc/passwd
2、umask
root用戶的umask默認值是0022,一般用戶默認是0002
目錄的最高許可權 0777-0022=0755
文件的最高許可權 0666-0022=644
一般伺服器配置umask的值配置為027最好;需要去修改兩處文件中的umask值。
/etc/profile
/etc/bashrc
3、修改默認的密碼最長有效期:修改以下配置文件
/etc/login.defs