第一個shell指令碼-監測惡意登入遠程伺服器

來源:互聯網
上載者:User

標籤:linux   shell   centos   shell指令碼   惡意登入   

最近學習到linux系統日誌和計劃任務,下班回家的地鐵上有了靈感,嘗試編寫了自己的第一個指令碼,監測如果有惡意登入伺服器的話,發郵件通知管理員。暫時還沒學習到如何發郵件給管理員,目前只是命令列的提醒和日誌記錄;指令碼的內容也比較簡單,都是學習過的基本知識,活學活用。


1、首先編寫一個指令碼:

定義一個變數LT,變數的值為lastb命令列出的行數(即無效登入的次數,如有惡意登入的話行數會變多);

執行一個if判斷語句,如果定義的值大於15次的話,判斷為惡意登入,通知管理員。

指令碼內容如下:

[[email protected] ~]# cat lt.sh #! /bin/bash#定義變數LT,記錄無效登入的次數;LT=`lastb |wc -l |cut -d ‘ ‘ -f 1`if [ $LT -gt "15" ]        #判斷無效登入的次數如果大於15的話,執行下面的操作;        then echo "somebody try to login please check log"        #列印有人嘗試登入系統請檢查日誌fi

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />

2、編寫一個計劃任務

每隔一分鐘自動執行上面的指令碼

[[email protected] ~]# crontab -l*/1 * * * * /bin/sh /root/lt.sh


3、查看效果

超過15次登入在當前命令列模式會提示,有一封新郵件在/var/spool/mail/root下;

[[email protected] ~]# You have new mail in /var/spool/mail/root


查看新郵件,會發現指令碼裡面的內容,證明有人在嘗試登入主機;

[[email protected] ~]# tail -2 /var/spool/mail/root somebody try to login please check log


執行lastb命令查看發現很多登入失敗的記錄

[[email protected] ~]# lastb |headuser1    ssh:notty    192.168.22.1     Tue Apr 21 22:04 - 22:04  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 22:04 - 22:04  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 22:03 - 22:03  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 22:03 - 22:03  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 22:03 - 22:03  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 22:03 - 22:03  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 22:03 - 22:03  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 21:29 - 21:29  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 21:29 - 21:29  (00:00)    user1    ssh:notty    192.168.22.1     Tue Apr 21 21:29 - 21:29  (00:00)


查看/var/log/secure 日誌也會發現有多次登入失敗的記錄

Apr 21 22:03:35 localhost unix_chkpwd[1501]: password check failed for user (user1) Apr 21 22:03:35 localhost sshd[1499]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.22.1  user=user1Apr 21 22:03:36 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2Apr 21 22:03:39 localhost unix_chkpwd[1502]: password check failed for user (user1)Apr 21 22:03:41 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2Apr 21 22:03:44 localhost unix_chkpwd[1503]: password check failed for user (user1)Apr 21 22:03:46 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2Apr 21 22:03:49 localhost unix_chkpwd[1504]: password check failed for user (user1)Apr 21 22:03:51 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2Apr 21 22:03:52 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2Apr 21 22:03:54 localhost sshd[1500]: Received disconnect from 192.168.22.1: 0:


根據訪問日誌的來源IP,我們可以對來源設定iptables規則,禁止訪問伺服器的22連接埠,或者封閉ip地址;


暫時只有這麼多,小小的驕傲一下,給自己增加點自信心,相信之後的學習中會更加深入瞭解linux;

和大家分享一下,共勉之。


本文出自 “模範生的學習部落格” 部落格,請務必保留此出處http://8802265.blog.51cto.com/8792265/1636847

第一個shell指令碼-監測惡意登入遠程伺服器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.