정보보안/리눅스

[리눅스] 로그 관리 (var/log, journalctl 등)

록스타★ 2024. 11. 27. 09:59
반응형

오블완 챌린지 마지막 날인데 어떤 게시글을 올릴지 고민하다 리눅스로 올리기로 정했습니다.
리눅스에서 로그 관리는 보안 사고 및 시스템 상태를 모니터링하는 데 아주아주아주아주 중요합니다. 이번 포스팅에서는 리눅스 로그의 주요 디렉토리와 파일, 로그 확인 명령어, 그리고 비정상적인 로그인 시도를 식별하는 방법을 포스팅하였는데, 포스팅하면서 저도 몰랐던 부분이나 까먹었던 부분들을 다시 공부할 수 있어서 좋았습니다.


1. 리눅스 로그 디렉토리와 주요 파일

리눅스 시스템 로그는 /var/log 디렉토리에 저장되고, 이 디렉토리는 다양한 로그 파일이 포함되어 있다.
 
주요 로그 파일

파일 이름설명
/var/log/syslog시스템 운영과 관련된 일반적인 메시지와 오류 로그. (Ubuntu 등)
/var/log/messages시스템 운영 관련 일반 메시지. (RHEL, CentOS 등)
/var/log/auth.log인증 관련 로그 (SSH 로그인, sudo 사용 등).
/var/log/kern.log커널 관련 메시지 로그.
/var/log/dmesg시스템 부팅 시 커널 메시지 로그.
/var/log/secure인증 관련 메시지 로그 (RHEL 계열).

 


2. 로그 파일 확인 방법

1. cat 명령어로 로그 보기

  • 예시 : cat /var/log/auth.log

 
2. tail  명령어로 실시간 로그 확인

  • 로그 파일의 마지막 몇 줄을 출력합니다
  • -f 옵션을 사용하면 파일이 업데이트될 때 새로운 내용을 실시간으로 확인할 수 있습니다.
  • 예시 : tail -f /var/log/auth.log

 
3. grep 명령어로 특정 키워드 검색

  • 특정 로그 메시지를 검색할 때 사용합니다.
  • 예시 : grep "pam" /var/log/auth.log

 
 
4. less 명령어로 대량의 로그 탐색

  • 대량의 로그를 탐색할 때 스크롤하며 볼 수 있습니다.
  • vi는 편집 기능이 있고, less는 편집 기능없이 q를 입력하면 나가집니다.
  • 예시 : less /var/log/syslog

3. journalctl 명령어로 로그 관리

journalctl은 sytstemd를 사용하는 시스템에서 로그를 확인할 수 있는 명령어입니다.
 
기본 명령어
1. 전체 로그 확인

  • journalctl

 
2. 부팅 이후의 로그 확인

  • journalctl -b

 
 
3. 특정 서비스 로그 확인

  • 예시 : ssh 서비스 로그
    • journalctl -u sshd

 
4. 실시간 로그 모니터링

  • journalctl -f

4. 비정상적인 로그인 시도 탐지

1. 실패한 로그인 시도 확인

  • /var/log/auth.log 또는 /var/log/secure에서 "failed" 메시지를 검색

 
2. 비정상적인 IP 주소 확인

  • 실패한 시도에 관련된 IP 주소를 추출합니다.

 


5. 보안 팁 : 로그 관리로 사고 예방하기

1. 로그 파일 모니터링 자동화

  • cron grep 명령어를 활용해 비정상적인 시도 자동 탐지하고 알림 받기

2. 로그 파일 백업

  • 주기적을 중요한 로그를 백업하여 사고 발생 시 복구에 활용합니다.
  • crontab 이용하여 주기적으로 자동 백업 설정 가능

 
3. 로그 보관 기간 설정

  • 오래된 로그는 자동으로 삭제되도록 설정하며, /etc/logrotate.conf 파일을 수정하면 됩니다.

 

반응형