셸 스 크 립 트 로 ssh 와 vsftpd 폭력 해결 에 대한 상세 한 설명
5305 단어 셸 스 크 립 트sshvsftpd폭력 으로 해결 하 다.
/var/log/secure 에서 인증 실패 정 보 는 다음 과 같 습 니 다.
Nov 28 10:18:08 centos2 sshd[7556]: Connection closed by 222.216.30.109
Nov 28 10:18:08 centos2 sshd[7557]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.216.30.109 user=root
Nov 28 10:18:09 centos2 sshd[7559]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.216.30.109 user=root
Nov 28 10:18:10 centos2 sshd[7551]: Failed password for root from 222.216.30.109 port 2391 ssh2
Nov 28 10:18:10 centos2 sshd[7552]: Connection closed by 222.216.30.109
Nov 28 10:18:10 centos2 sshd[7553]: Failed password for root from 222.216.30.109 port 2397 ssh2
Nov 28 10:18:10 centos2 sshd[7554]: Connection closed by 222.216.30.109
Nov 28 10:18:11 centos2 sshd[7557]: Failed password for root from 222.216.30.109 port 2401 ssh2
Nov 28 10:18:11 centos2 sshd[7558]: Connection closed by 222.216.30.109
Nov 28 10:18:11 centos2 sshd[7559]: Failed password for root from 222.216.30.109 port 2403 ssh2
Nov 28 10:18:11 centos2 sshd[7560]: Connection closed by 222.216.30.109
Nov 28 10:37:01 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:37:01 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=hello rhost=centos1.cn7788.com
Nov 28 10:37:01 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user hello
Nov 28 10:37:19 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:37:19 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=yhc rhost=centos1.cn7788.com
Nov 28 10:37:19 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user yhc
Nov 28 10:37:36 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:37:36 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=yuhongchun rhost=centos1.cn7788.com
Nov 28 10:37:36 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user yuhongchun
Nov 28 10:42:44 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:42:44 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=yuhongchun rhost=114.112.169.70
Nov 28 10:42:44 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user yuhongchun
Nov 28 10:42:56 centos2 vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Nov 28 10:42:56 centos2 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=andrewyu rhost=114.112.169.70
Nov 28 10:42:56 centos2 vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user andrewyu
우 리 는 다음 과 같이/var/log/secure 파일 폴 링 특징 을 관찰 합 니 다.기본적으로 secure 파일 은 요일 을 폴 링 주기 로 합 니 다.안전 에 대한 요구 가 엄격 한 친구 가'하나 도 놓 치지 않 는 다'는 원칙 에 따라 위의 오래된 secure 악성 IP 를 캡 처 할 수 있 습 니 다.다음은 이러한 악성 IP 를 효율적으로 캡 처 할 방법 을 강구 해 야 합 니 다.원본 버 전의 SHELL 스 크 립 트 작성 법 을 참고 하면...보안 로그 의 검색 vsftpd 및 sshd 서비스의 IP 주 소 를 캡 처 하려 면 다음 명령 을 사용 할 수 있 습 니 다.명령 은 다음 과 같 습 니 다
[root@centos2 log]# ls -lsart secure.*
512 -rw------- 1 root root 516379 11-04 01:31 secure.4
660 -rw------- 1 root root 668192 11-11 00:05 secure.3
304 -rw------- 1 root root 306589 11-17 10:33 secure.2
484 -rw------- 1 root root 488620 11-25 02:33 secure.1
분명 한 것 은 vsftpd 가 실패 한 IP 값 을 찾 을 수 없습니다.sshd 로그 실패 정 보 는 vsftpd 로그 실패 정보 와 다 릅 니 다.저 는 몇 가지 awk 혼합 sed 방법 을 써 서 효율 을 테스트 했 습 니 다.awk 스 크 립 트 속도 가 가장 빠 른 것 같 습 니 다.여러분 도 몇 가 지 를 쓸 수 있 습 니 다.time 명령 으로 테스트 할 수 있 습 니 다.마지막 으로 코드 를 간소화 하고 전체 스 크 립 트 를 완 성 했 습 니 다.스 크 립 트 내용 은 다음 과 같 습 니 다.
cat /var/log/secure | awk '/Failed/{print $(NF-3)}'| sort| uniq -c| awk '{print $2"="$1;}'
스 크 립 트 가 한 동안 실 행 된 후에 우 리 는 이 스 크 립 트 와 관련 된 일부 파일 을 관찰 할 수 있 습 니 다.예 를 들 어/root/Black.txt,결 과 는 다음 과 같 습 니 다
#!/bin/bash
#Denyhosts For vsftpd and sshd
#2012-12-28
awk '{for(i=1;i<=NF;i++){if($i ~ /rhost/)print substr($i,7)}}' /var/log/secure | sort | uniq -c >/root/black.txt
DEFINE="100"
for i in `cat /root/black.txt`
do
IP=`echo $i |awk '{print $1}'`
NUM=`echo $i|awk '{print $2}'`
if [ $NUM -gt $DEFINE ];
then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];
then
echo "sshd:$IP" >> /etc/hosts.deny
echo "vsftpd:$IP" >> /etc/hosts.deny
fi
fi
done
/etc/hosts.deny 스 크 립 트 내용 은 다음 과 같 습 니 다.마지막 으로,우 리 는 이 셸 스 크 립 트 를 crontab 에 넣 고 6 시간 간격 으로 한 번 씩 실행 합 니 다.명령 은 다음 과 같 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 스 크 립 트 (다 중 스 레 드 대량 생 성 사용자)예 를 들 어 백업 데이터 베 이 스 는 100 개의 라 이브 러 리 가 있 고 정상 적 인 백업 효율 이 매우 낮 습 니 다.다 중 스 레 드 가 있 으 면 백업 하 는 데 10 시간 이 걸 릴 수도 있 었 는데 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.