서버 접속 기록 확인하는 명령어 & 로그 분석 팁
서버 운영에 있어 보안과 안정성을 유지하려면 누가, 언제, 어떻게 서버에 접속했는지를 확인하는 것이 중요하다. 서버 접속 기록을 확인하면 비정상적인 로그인 시도, 시스템 오류, 해킹 징후 등을 조기에 감지할 수 있다. 이 글에서는 Ubuntu 기반 리눅스 서버에서 접속 기록을 확인하는 기본 명령어와 로그 파일 분석 팁을 정리한다.
1. last 명령어 – 최근 로그인 기록 확인
last 명령어는 서버에 로그인한 사용자들의 기록을 출력한다. 로그인한 계정, IP, 시간, 접속 종료 시간까지 확인할 수 있다.
last
특정 사용자만 확인하고 싶다면 다음과 같이 입력한다.
last 사용자명
로그가 저장되는 기본 위치는 /var/log/wtmp이며, 오래된 기록은 순차적으로 삭제된다.
2. who 명령어 – 현재 로그인한 사용자 확인
서버에 현재 접속해 있는 사용자를 실시간으로 확인하고 싶을 때는 who 명령어를 사용한다.
who
현재 로그인한 사용자, 접속 시간, 터미널 정보 등을 출력해준다.
3. w 명령어 – 현재 접속 사용자 및 활동 확인
w는 who보다 조금 더 많은 정보를 보여준다. 현재 로그인한 사용자 외에도 그들이 실행 중인 명령, 서버 부하 상태 등을 함께 확인할 수 있다.
w
4. journalctl – 시스템 로그 확인
systemd 기반 서버에서는 journalctl 명령어로 시스템 전체의 로그를 확인할 수 있다.
예: 부팅 이후 로그인 기록 보기
journalctl _COMM=sshd
예: 특정 날짜 이후의 SSH 접속 로그 보기
journalctl -u ssh -S "2025-11-01"
5. /var/log/auth.log – 인증 및 로그인 시도 로그
Ubuntu에서는 /var/log/auth.log 파일에 로그인 및 인증 관련 정보가 저장된다. 이 파일은 보안 관점에서 가장 중요한 로그 중 하나다.
로그 확인 명령:
sudo less /var/log/auth.log
SSH 로그인 시도나 실패 기록, sudo 사용 기록 등을 모두 확인할 수 있다.
예: 실패한 SSH 로그인 시도 검색
grep "Failed password" /var/log/auth.log
예: 성공한 로그인 시도 검색
grep "Accepted password" /var/log/auth.log
6. IP 차단 전 분석 팁
비정상적으로 반복되는 로그인 시도가 특정 IP에서 발생하면 해당 IP를 차단하거나 fail2ban 같은 보안 툴로 방지할 수 있다.
예: 시도한 IP 수 확인
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
이 명령은 비정상적으로 자주 로그인 시도를 한 IP 순서대로 보여준다.
7. 로그 파일 관리 팁
- /var/log 디렉터리 안에 다양한 시스템 로그가 저장된다.
- 로그 파일은 용량이 커질 수 있으므로 logrotate를 통해 자동 정리하는 것이 좋다.
- 불필요한 로그 삭제는 피하고 압축 보관하거나 외부 스토리지로 이전하는 방식이 좋다.
마무리
서버 접속 기록을 주기적으로 확인하면 보안 사고를 예방하고, 시스템 운영 상태를 더욱 안정적으로 유지할 수 있다. 소개한 명령어들은 모두 기본적으로 설치되어 있는 도구들이므로 누구나 쉽게 활용할 수 있다. 로그를 분석하는 습관은 서버 관리자에게 필수적인 역량 중 하나다.