SSH를 돌리면 /var/log/secure 에 22번포트로 접속시도가 많이 보인다. 부적절하게 접속시도하는 IP 들을 자동으로 차단하는 스크립트를 만들어 보겠다.
 
과정은 /var/log/secure 에서 불량 ssh 접속 ip를 추려내서 /etc/hosts.deny 에 등록된다.
 
 # grep "Failed password for" /var/log/secure | egrep -v "invalid user" | egrep -v "{USERID}|{LOGINIP}" | awk '{ print $11}' | uniq | sed "s/^/all:/" > /root/ssh-login-ip
# grep "Failed password for invalid user" /var/log/secure.1 | awk '{ print $13}' | uniq | sed "s/^/all:/" >> /root/ssh-login-ip
 
 [위의 명령어 설명] USERID=관리자 ssh 접속계정 LOGINIP=관리자 ssh접속계정의 공인 ip : 직접 입력해야함.
 
-------------------------------------------------------------------------------------------------------------
 
grep "Failed password for" /var/log/secure: /var/log/secure 파일 내에서 "Failed password for" 문장이 들어간 행만 뽑아냄
 
egrep -v "invalid user" : 위 결과에서 "invalid user" , "USERID" , "LOGINIP" 가 들어간 부분은 제외
 
egrep -v "{USERID}|{LOGINIP}": 위 결과에서 관리상 필요에 의해 접속했던 계정, IP는 제외
 
awk '{print $11}' : 위 결과에서 각 행마다 11번째 문장을 뽑아냄 -> 비정상 IP
 
uniq : 중복된 문장을 하나씩만 출력
 
sed "s/^/all:/" > /root/ssh-login-ip: 각 행의 맨 앞에 "all:" 을 입력 후 /root/ssh-login-ip 파일에 저장

grep "Failed password for invalid user" /var/log/secure.1 : var/log/secure.1 파일에서 "Failed .... user" 문장이 들어간 행만 추출
 
awk '{print $13}' : 각 행마다 11번째 문장만 뽑아냄 -> 비정상 IP
 
>> /root/ssh-login-ip : 위의 /root/ssh-login-ip 파일에 뒤이어 내용을 첨가함

------------------------------------------------------------------------------------------------------------
 
# cat /root/ssh-login-ip /etc/hosts.deny | sort | uniq >> /root/hosts.deny : hosts.deny에 블럭킹할 ip 등록

▶crontab 등록
 
# crontab -e
 
------------------------------------------------------------------------------------------------------------------
 
05,15,25,35,45,55 * * * * grep "Failed password for" /var/log/secure | egrep -v "invalid user" | egrep -v "{USERID} | {LOGINIP}" | awk '{ print $11}' | uniq | sed "s/^/all:/" > /root/ssh-login-ip
 
06,16,26,36,46,56 * * * * cat /root/ssh-login-ip /etc/hosts.deny | sort | uniq > /root/hosts.deny
 
07,17,27,37,47,57 * * * * cp /root/hosts.deny /etc/hosts.deny
 
-------------------------------------------------------------------------------------------------------------------

2012/02/07 09:48 2012/02/07 09:48

Trackback Address :: https://youngsam.net/trackback/1747