SSH 로그 확인 방법

auth.log 파일에서 ssh 로그 필터링 방법.

우분투 서버에서 SSH 접속 로그를 확인하는 방법은 시스템 로그 파일을 통해 가능합니다. 주요 로그 파일은 /var/log/auth.log이며, 여기에 모든 인증 관련 로그가 기록됩니다. 이 로그에는 SSH 접속 기록도 포함됩니다.

1. 최근 SSH 접속 기록 확인

가장 최근의 SSH 접속 로그를 확인하려면 auth.log 파일에서 ssh와 관련된 로그를 필터링해서 볼 수 있습니다:

sudo grep ssh /var/log/auth.log

이 명령은 auth.log 파일에서 ssh 관련된 모든 로그를 출력합니다. 이곳에 접속 성공/실패 기록과 SSH 접속 시도 기록이 나타납니다

2. 특정 시간대의 SSH 접속 기록 확인
sudo grep 'Sep 22' /var/log/auth.log | grep ssh

여기서는 9월 22일의 SSH 관련 로그만 출력하게 됩니다. 원하는 날짜에 맞게 형식을 수정하면 됩니다.

3. SSH 접속 성공 로그 확인

SSH 접속에 성공한 경우에 해당하는 로그를 확인하려면 Accepted 키워드로 필터링할 수 있습니다:

sudo grep 'Accepted' /var/log/auth.log

이 명령은 SSH 접속에 성공한 모든 기록을 보여줍니다. 주로 다음과 같은 로그 형식이 나타납니다:

Sep 22 19:06:23 servername sshd[1234]: Accepted password for username from 85.95.166.40 port 22 ssh2

이 로그는 IP 주소 85.95.166.40에서 username 사용자로 SSH 접속에 성공했다는 것을 의미합니다.

4. SSH 접속 실패 로그 확인

SSH 접속 실패나 비밀번호 오류 등은 Failed라는 키워드로 나타납니다. 실패한 로그를 확인하려면:

sudo grep 'Failed' /var/log/auth.log

이 명령은 SSH 접속 실패 기록을 보여줍니다. 예시는 다음과 같습니다:

Sep 22 19:08:10 servername sshd[1234]: Failed password for invalid user testuser from 85.95.166.40 port 22 ssh2

여기서는 testuser라는 잘못된 사용자로부터 SSH 접속 시도가 실패한 것을 의미합니다.

5. 로그인 시도와 로그아웃 기록 확인

사용자가 서버에 로그인하고 로그아웃한 기록을 확인하려면 다음과 같은 명령을 사용할 수 있습니다:

sudo grep 'session' /var/log/auth.log

이 명령은 SSH 세션이 열리거나 종료된 기록을 보여줍니다. 예를 들어:

Sep 22 19:06:23 servername sshd[1234]: pam_unix(sshd:session): session opened for user username by (uid=0)
Sep 22 19:20:45 servername sshd[1234]: pam_unix(sshd:session): session closed for user username

이 로그는 username이라는 사용자가 SSH를 통해 로그인했고, 나중에 세션이 종료되었음을 나타냅니다.

6. 로그 확인을 더 쉽게 하는 팁

tail 명령어로 실시간 로그 확인: SSH 접속 시도와 같은 로그를 실시간으로 보고 싶다면 tail 명령어를 사용할 수 있습니다:

sudo tail -f /var/log/auth.log

이 명령어는 auth.log 파일에 기록되는 실시간 로그를 계속해서 출력합니다. SSH 접속 시도가 발생하면 곧바로 화면에 나타납니다.

과거 로그 확인: 오래된 로그는 auth.log.*로 압축된 파일에 저장됩니다. 과거 로그를 확인하려면 해당 파일을 직접 확인하거나 zgrep 명령어를 사용하여 압축된 로그 파일에서 검색할 수 있습니다:

sudo zgrep ssh /var/log/auth.log.*
● 요약
  1. SSH 접속 로그는 /var/log/auth.log에 기록됩니다.
  2. 접속 성공은 Accepted, 접속 실패는 Failed로 확인할 수 있습니다.
  3. grep, tail, zgrep 등을 이용해 SSH 접속 기록을 필터링하거나 실시간으로 모니터링할 수 있습니다.

『 출처 – ChatGPT 』