-C 注釋 (加上這個(gè)也是為了最后進(jìn)行對(duì)服務(wù)器訪問(wèn)人員進(jìn)行辨別的一個(gè)關(guān)鍵點(diǎn))
將公鑰上傳到服務(wù)器上的.ssh/authorized_keys 文件中。ssh-copy-id 命令會(huì)自動(dòng)在服務(wù)器上創(chuàng)建.ssh/authorized_keys文件,即使該目錄不存在,并自動(dòng)賦予600權(quán)限。
[root@rsyslog ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.30.72root@192.168.30.72\\\'s try logging into the machine, with ssh \\\'root@192.168.30.72\\\', and check in: .ssh/authorized_keys to make sure we haven\\\'t added extra keys that you weren\\\'t expecting.
4.3 client 2(192.168.30.71) 上同樣的操作,用戶lisi
View Code
上傳公鑰到服務(wù)器上
[root@swift3 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.30.72The authenticity of host \\\'192.168.30.72 (192.168.30.72)\\\' can\\\'t be established.RSA key fingerprint is 8f:a7:1b:8d:e4:92:ad:ae:ea:1b:fb:67:0b:0b:7c:ac. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added \\\'192.168.30.72\\\' (RSA) to the list of known hosts. root@192.168.30.72\\\'s try logging into the machine, with ssh \\\'root@192.168.30.72\\\', and check in: .ssh/authorized_keys to make sure we haven\\\'t added extra keys that you weren\\\'t expecting.
4.4 現(xiàn)在去服務(wù)器上驗(yàn)證下該文件。
View Code
現(xiàn)在上面兩個(gè)客戶端已經(jīng)可以免密鑰登陸了,現(xiàn)在去服務(wù)器上配置,并創(chuàng)建腳本。
五、配置服務(wù)器
5.1 在log目錄下創(chuàng)建一個(gè) keys 文件,用于登陸時(shí)存進(jìn)去公鑰,之后對(duì)其進(jìn)行取出判斷的
[root@open1 ~]# touch /var/log/keys
創(chuàng)建檢測(cè)腳本,內(nèi)容如下:
View Code
5.2 配置 profile,在文件末尾添加一行內(nèi)容,如下:
[root@open1 ~]# echo test -f /etc/CheckUser.sh && . /etc/CheckUser.sh >> /etc/profile
在/etc/bashrc 末尾添加下面內(nèi)容:
[root@open1 ~]# tail -1f /etc/bashrc
test -z $BASH_EXECUTION_STRING || { test -f /etc/CheckUser.sh && . /etc/CheckUser.sh; logger -t -bash -s HISTORY $SSH_CLIENT USER=$NAME_OF_KEY CMD=$BASH_EXECUTION_STRING >/dev/null 2>&1;}
5.3 修改sshd 配置文件,開(kāi)啟debug 模式,并重啟sshd 服務(wù)
[root@open1 ~]# sed -i \\\'s/#LogLevel INFO/LogLevel DEBUG/g\\\' /etc/ssh/sshd_config [root@open1 ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
六、驗(yàn)證
6.1 在client1 上進(jìn)行登陸,并刪除個(gè)文件試下(zhangsan)
6.2 在client2 上進(jìn)行登陸,也刪除個(gè)文件,并執(zhí)行個(gè)重啟服務(wù)的命令(lisi)
6.3 去服務(wù)器上查看下 messages 日志,內(nèi)容如下
通過(guò)上圖,可以看出,不通用戶的客戶端通過(guò)公鑰登陸的方式,分辨出了誰(shuí)操作了什么,什么時(shí)候操作的。
(注:上圖第4段 swift1 是這臺(tái)服務(wù)器的主機(jī)名,由于我只是運(yùn)行了hostname 命令修改主機(jī)名,并沒(méi)有修改networks,所以內(nèi)核里還是之前的名字:swift1。)
七、結(jié)束
通過(guò)這種方式,極大的解決了多root 用戶登陸操作,無(wú)法審計(jì)的問(wèn)題。并且可以結(jié)合日志轉(zhuǎn)發(fā),將系統(tǒng)日志轉(zhuǎn)發(fā)到其它服務(wù)器,即使主機(jī)被黑了,也能具體的審查登陸時(shí)間以及做了哪些操作。
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):youyuetrip.com