첫 번 째 셸 스 크 립 트 - 악성 로그 인 모니터링 원 격 서버

최근 Liux 시스템 로그 와 계획 임 무 를 배 웠 습 니 다. 퇴근 하고 집에 가 는 지하철 에서 영감 을 얻 었 습 니 다. 첫 번 째 스 크 립 트 를 작성 해 보 았 습 니 다. 악의 적 으로 서버 에 로그 인 하면 메 일 로 관리자 에 게 알 립 니 다.관리자 에 게 메 일 을 보 내 는 방법 을 아직 배우 지 못 했 습 니 다. 명령 행 의 알림 과 로그 기록 일 뿐 입 니 다.대본 의 내용 도 비교적 간단 하 다. 모두 배 운 기본 지식 이 고 활 학 활용 이다.
1. 먼저 스 크 립 트 를 작성 합 니 다:
변수 LT 를 정의 합 니 다. 변수의 값 은 lastb 명령 에 표 시 된 줄 수 입 니 다. (즉, 로그 인 횟수 가 잘못 되 었 습 니 다. 악의 적 으로 로그 인 하면 줄 수가 많아 집 니 다)
if 판단 문 구 를 실행 합 니 다. 정 의 된 값 이 15 회 이상 이면 악성 로그 인 으로 판단 하여 관리자 에 게 알 립 니 다.
스 크 립 트 내용 은 다음 과 같 습 니 다.
[root@localhost ~]# 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

2. 계획 작업 작성
위 스 크 립 트 를 1 분 간격 으로 자동 으로 실행 합 니 다.
[root@localhost ~]# crontab -l
*/1 * * * * /bin/sh /root/lt.sh

3. 효과 보기
현재 명령 행 모드 에 15 회 이상 로그 인 하면 새 메 일이/var/spool/mail/root 에 있 음 을 알려 줍 니 다.
[root@localhost ~]# 
You have new mail in /var/spool/mail/root

새 메 일 을 보면 스 크 립 트 의 내용 을 발견 하고 누군가가 호스트 에 로그 인 하려 고 시도 하고 있다 는 것 을 증명 합 니 다.
[root@localhost ~]# tail -2 /var/spool/mail/root 
somebody try to login please check log

lastb 명령 을 실행 하여 로그 인 실패 기록 을 많이 보 았 습 니 다.
[root@localhost ~]# lastb |head
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: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=user1
Apr 21 22:03:36 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2
Apr 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 ssh2
Apr 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 ssh2
Apr 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 ssh2
Apr 21 22:03:52 localhost sshd[1499]: Failed password for user1 from 192.168.22.1 port 50591 ssh2
Apr 21 22:03:54 localhost sshd[1500]: Received disconnect from 192.168.22.1: 0:

방문 로그 의 원본 IP 에 따라 저 희 는 원본 에 iptables 규칙 을 설정 하고 서버 의 22 포트 에 접근 하지 못 하 게 하거나 ip 주 소 를 닫 을 수 있 습 니 다.
잠시 동안 이렇게 많 을 뿐 입 니 다. 작은 자랑 으로 자신 감 을 가지 고 앞으로 의 학습 에서 Liux 를 더욱 깊이 이해 할 것 이 라 고 믿 습 니 다.
여러분 과 함께 나 누고 격려 합 시다.

좋은 웹페이지 즐겨찾기