실패한 SSH 로그인 시도를 추적하는 방법


134

누군가 누군가가 SSH를 통해 우분투 12.04 서버에 무차별 강제 로그인을 시도했는지 확인하고 싶습니다. 그러한 활동이 진행되고 있는지 어떻게 알 수 있습니까?

답변:


150

모든 로그인 시도는에 기록됩니다 /var/log/auth.log.

1. 무차별 대화식 SSH 로그인 필터링

터미널을 열고 아래를 입력하십시오. 1 페이지보다 길면 위아래로 스크롤 할 수 있습니다. q종료하려면 입력하십시오 :

grep sshd.\*Failed /var/log/auth.log | less
  • 내 VPS 중 하나의 실제 예는 다음과 같습니다.

    8 월 18 일 11:00:57 izxvps sshd [5657] : 95.58.255.62 포트 38980 ssh2에서 루트 암호에 실패했습니다
    8 월 18 일 23:08:26 izxvps sshd [5768] : 91.205.189.15 포트 38156 ssh2에서 루트 암호에 실패했습니다
    8 월 18 일 23:08:30 izxvps sshd [5770] : 91.205.189.15 포트 38556 ssh2에서 아무도 비밀번호에 실패했습니다
    8 월 18 일 23:08:34 izxvps sshd [5772] : 91.205.189.15 포트 38864 ssh2에서 유효하지 않은 사용자 별표에 대한 비밀번호 실패
    8 월 18 일 23:08:38 izxvps sshd [5774] : 91.205.189.15 포트 39157 ssh2에서 유효하지 않은 사용자 sjobeck의 비밀번호 실패
    izxvps sshd [5776] : 91.205.189.15 포트 39467 ssh2에서 루트 암호에 실패
    

2. 연결 이 실패 했는지 확인하십시오 (즉, 로그인 시도가 없거나 포트 스캐너 일 수 있음).

이 명령을 사용하십시오 :

grep sshd.*Did /var/log/auth.log | less
  • 예:

    8 월 5 일 22:19:10 izxvps sshd [7748] : 70.91.222.121에서 식별 문자열을받지 못했습니다.
    8 월 10 일 19:39:49 izxvps sshd [1919] : 50.57.168.154에서 식별 문자열을받지 못했습니다.
    8 월 13 일 23:08:04 izxvps sshd [3562] : 87.216.241.19에서 식별 문자열을받지 못했습니다.
    8 월 17 일 15:49:07 izxvps sshd [5350] : 211.22.67.238에서 식별 문자열을받지 못했습니다.
    8 월 19 일 06:28:43 izxvps sshd [5838] : 59.151.37.10에서 식별 문자열을받지 못했습니다.
    

실패 / 무차별 로그인 시도를 줄이는 방법

  • SSH를 기본 22에서 비표준 포트로 전환하십시오.
  • 또는 fail2ban 과 같은 자동 금지 스크립트를 설치하십시오 fail2ban 설치.

4
SSH 포트를 전환하는 데 얼마나 많은 보안이 제공됩니까 (앞서 언급 한대로 스캔 할 수는 없음) 합법적 인 사용자에게는 그다지 유용하지 않은 가치가 있습니까?
Nick T

8
@NickT는 로그인 시도를 크게 줄일 정도로 충분합니다. 일주일에 하루에 수천 번의 시도가 있었지만 지금까지 포트를 전환하여 지난 달에는 아무것도 없었습니다.
AntoineG

2
비밀번호로 로그인을 금지하면 도움이 될 수 있습니다.
Luc M

2
나는 이것이 우분투라는 것을 안다. centos와 같은 일부 시스템에서 파일 경로는 다음과 /var/log/secure
같다고 말하고 싶었다

일부 시스템은 다음을 사용하여 로그에 액세스합니다.systemctl -eu sshd
alecdwm

72

특히 계정에 암호가 약한 경우 로그 모니터링이 약한 해결책이라고 주장합니다. 무차별 시도는 종종 분당 최소 수백 개의 키를 시도합니다. 무자비한 시도를 이메일로 보내도록 cron 작업이 설정되어 있어도 서버에 도착하기까지 몇 시간이 걸릴 수 있습니다.

공개 SSH 서버 있는 경우 해킹되기 전에 오래 걸리는 솔루션이 필요 합니다  .

나는 강력히 추천 fail2ban합니다. 그들의 위키 는 내가 할 수있는 것보다 더 잘하는 것을 말한다.

Fail2ban은 로그 파일 (예 :)을 검사 /var/log/apache/error_log하고 악의적 인 징후 (너무 많은 암호 오류, 악용 시도 등)를 나타내는 IP를 차단합니다. 일반적으로 Fail2Ban은 방화벽 규칙을 업데이트하여 지정된 시간 동안 IP 주소를 거부했습니다. 임의의 다른 작업 (예 : 이메일 전송 또는 CD-ROM 트레이 꺼내기)도 구성 할 수 있습니다. 기본적으로 Fail2Ban에는 다양한 서비스 (아파치, 쿠 리에, ssh 등)를위한 필터가 제공됩니다.

그것으로부터 보호를 얻는 것은 간단합니다 sudo apt-get install fail2ban.

누군가 세 번의 시도가 실패하면 기본적으로 해당 IP는 5 분 동안 금지됩니다. 이러한 지연은 본질적으로 SSH 무차별 대입 시도를 중단 시키지만 비밀번호를 잊어 버린 경우 하루를 망치지 않을 것입니다 (그러나 어쨌든 키를 사용해야합니다!)


6
왜 금지에 실패 했습니까?
Pacerier

9
@Pacerier 약간의 유추와 함께, 로그인 실패는 (2) 금지로 이어집니다.
Sebi

2
Bwahaha 당신은 내 하루 @Pacerier를 만들었습니다. 나는 문자 그대로의 "금지 실패"라고 생각하지 않았습니다.
adelriosantiago

1
첫 문장에서 "특히"를 제거하기 위해 이것을 편집해야한다고 생각합니다. 그건 단지 당신이 약한 암호가있는 경우 문제. 어떤 상황에서도 강력한 암호를 강요 할 수 없으며 사람들이 시도하지 못하게하는 유일한 이유는 서버로드를 줄이는 것입니다.
Abhi Beckert 1

물론 동의합니다. 어쨌든 서버 부하가 크지 않도록 괜찮습니다. 나는 miliseconds 비율로 시도를 보았다
Diego Andrés Díaz Espinoza
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.