리눅스 - 시스템 로그와 로그인 로그

이 글은 리눅스에서 기본으로 작성되는 로그 파일에 대해 간단하게 소개한다. 로그 파일의 내용, 작성되는 구조와 그 활용 방법까지 알아보려고 했으나, 범위가 너무 커지는 것 같아 이후 글의 주제로 남겨두려 한다.


rsyslogd와 /var/log 디렉토리

rsyslog란 rocket-fast system for log processing의 약자로, 기존의 syslog 라는 로깅 데몬을 대체하는 시스템 로깅 데몬이다.

/var/log 디렉토리에 생성된 로그 파일은 rsyslog에 의해 작성된 것들이다. 시스템 데몬이, 시스템 서비스의 로그를 수집한 것이기 때문에 애플리케이션 로그는 포함되지 않는다.

아래는 syslog 파일 내용 중 일부이다.

1
2
3
4
Jun 20 11:52:14 instance-01 kernel: [    0.000000] On node 0 totalpages: 523966
Jun 20 11:52:14 instance-01 kernel: [ 0.000000] DMA zone: 64 pages used for memmap
Jun 20 11:52:14 instance-01 systemd[1]: Starting SSHGuard...
Jun 20 11:52:15 instance-01 ntp[1577]: * Starting NTP server ntpd

{ 출력 시간, 호스트명, 프로세스명, PID, 로그 내용 }

위의 로그를 보면 특정 형식으로 작성되어있고, 여러 프로세스에서 출력이 됨을 알 수 있다.

굳이 호스트명이 포함된 이유는 로그를 중앙 집중식으로 저장하고 분석, 시각화하는 로그 서버로의 전송을 고려했다고 한다. (참고로 syslog의 설정을 통해 원격 서버로 파일을 전송할 수 있다. 그리고, 여러 서버의 로그를 중앙에서 저장하는 경우 ntpdate 등의 유틸을 사용한 시간 동기화가 필수라고 한다.)

로그 내용은 아는 만큼 보이기 때문에, 또 리눅스의 자체 기능의 로그만이 들어있기 때문에 특정 metric을 잡고 이게 이런 의미이다.와 같은 판단을 내리기가 어려운 듯하다. 이건 로그를 공부할 게 아니라, 리눅스 자체의 기능을 공부해야 이해할 수 있는 부분으로 보인다.


로그인과 관련된 로그 모음

auth.log

인증 관련해선 (즉, SSH 위주) 로그 파일이 이 파일에 작성된다. 아마 단일 파일로는 auth.log가 제일 크지 않을까 싶은데, 대략 btmp(아래에서 소개)의 2배 정도의 파일 크기를 갖는 듯하다. (아무래도 SSH 접속 시도가 잦기 때문이다.)


로그인 성공 기록

last는 사용자 로그인 현황을 반환하는 명령어이다(성공한 로그인만 기록한다). wtmp 파일은 로그인, 로그아웃 기록이 저장되는 파일이다.


로그인 실패 기록

재밌는 점은 로그인 실패의 경우 lastb라는 별개의 명령어로 조회할 수 있다는 점이다. 또, 잘 보면 로그인 실패 기록이 매우 매우 많다. 얼마나 많냐면, wtmp 파일의 크기는 9.0K 인데, btmp는 576K 이다!


현재 로그인된 세션

명령어 who를 입력하면 현재 로그인 세션 정보를 출력한다. 세션 정보는 utmp 파일에 저장된다. 다만 utmp파일은 /var/log 디렉토리에서 바로 보이진 않았다.


SEE ALSO

test/test 계정을 만들어 놓고 해커가 어떤 형태로 접속하고 무슨 일을 했는 지 분석한 글: 우분투 리눅스 침투 사후 로그보기도 참고하면 재밌을 것 같다 :)


TODO

  1. ELK 기반으로 로그를 중앙 집중식으로 받아와 질의와 시각화를 할 수 있을 것 같은데 나중에 다뤄보려고 한다.

  2. sshd, common_auth 파일 무슨 PAM 개념이 나오던데, 잘 조사해서 SSH 보안 설정에 대해 다뤄보려고 한다.

리눅스 - 시스템 로그와 로그인 로그

https://jsqna.com/linux-system-log-1/

Author

Seongbin Kim

Posted on

21-06-20

Updated on

21-06-20

Licensed under

댓글