프로그래밍/Linux

리눅스 계정 로긴시 관리자에게 메일 보내는 쉘 스크립트

드럼캡 2008. 12. 10. 17:09
리눅스 관리를 하다보면 ROOT계정은 특히나 누가, 언제, 들어왔는지 궁금할 때가 많다. 
그래서, 간혹 로그를 살펴보기도 하는데, 이게 영 만만치 않다.
왜냐하면 Firewall 로 막아두거나 ssh 포트를 바꾸지 않는이상 끊임없는 해킹 시도에 시달려야 하고, 수많은 관련 로그들을 보게될 것이기 때문이다. 그중에 원하는 로그만 찾는다는 것은 짜증 * 1000000 배에 달하는 작업이다.

그래서 로그 수집기를 고민하던 중 메일로 보내면 간단하다는 것을 깨닫고 제작했다.
아래의 스크립트를 "mailer.sh" 로 저장한 후 .bash_profile 파일을 열어 ./mailer.sh 와 같은 방식으로 실행해 주기만 하면 된다.
당연한 이야기 지만 서버에 Sendmail 류의 smtp 데몬이 깔려있어야 한다.

#!/bin/sh
MAIL_SUBJECT="[서버로그]  `who -m | cut -d"(" -f2 | cut -d")" -f1` 가 ROOT 계정으로 로긴했습니다"

echo '상세정보 : '  `who -m --ips | cut -d"(" -f2 | cut -d")" -f1` '가 ROOT 계정으로 로긴했습니다' | mail -s "$MAIL_SUBJECT" administrator@sample.co.kr
반응형