본문 바로가기
공부/정보보안기사

<정보보안기사> 1. 시스템 이론 - 시스템 로그 설정(utmp, wtmp, btmp, last, sulog, acct/pacct)

by Richard_Hoon 2024. 11. 26.
반응형

 

 

시스템 로그 개요

 

시스템 로그는 시스템이 작동하면서 발생하는 다양한 이벤트나 오류 메시지들을 기록해 놓은 일종의 일기장.

이 로그를 통해 시스템의 상태를 모니터링하고, 문제 발생 시 원인을 분석하여 해결하는 데 큰 도움을 받을 수 있음

 

시스템 로그 설정 시 고려해야 할 사항

`1. 로그 레벨`

 - 로그에 기록할 정보의 상세 수준을 설정

 - 디버깅 레벨은 매우 상세한 정보를 기록하며, 경고 레벨은 문제 발생 가능성이 있는 상황을 기록함

 

`2. 로그 파일 위치`

 - 로그 파일을 저장할 위치를 지정

 - 로그 파일이 너무 커지면 시스템 성능에 영향을 줄 수 있으므로, 적절한 위치와 크기를 설정해야함

 

`3. 로그 회전`

 - 로그 팡리이 일정 크기 이상이 되면 자동으로 새로운 파일을 생성

 - 기존 파일의 이름을 변경하여 저장하는 기능

 

`4. 로그 필터링`

 - 특정 패턴이나 키워드를 포함하는 로그만 기록하도록 설정

 - 필요한 정보만 추출 가능

 

리눅수 시스템에서는 일반적으로 `/etc/syslog.conf` 파일을 수정하여 로그 설정을 변경

 

utmp, wtmp, lastlog 등 명령어는 그냥 맨날 나온다 생각하고 외워야 함(24년 4회 보안기사 시험에도 나옴)

로그 파일과 해당 명령어를 연관지어 암기

 

 

utmp(x) 로그 파일

 

 - utmp는 user time map의 약자

- 현재 시스템에 로그인되어 있는 사용자들의 정보를 담고 있는 파일

 - 시스템의 '누가' , '어디서', '언제' 로그인 했는지에 대한 스냅샷을 제공

 - utmp 파일을 구조체 배열로 바이너리 파일이라 내용 확인을 위해선 아래의 명령어를 사용해야 함.

 

utmp 관련 명령어

`who` : 현재 시스템에 로그인되어 있는 사용자 목록을 출력

`w` : who 명령어와 유사하지만, 더 많은 정보(CPU 사용량, 로그인 시간 등)를 제공

`finger` : 특정 사용자에 대한 정보를 자세히 조회

 

리눅스 경로 : `/var/run/utmp`

유닉스(Sun OS) : `/var/adm/umtpx`

 

 

wtmp(x) 로그 파일

 

 - wtmp 파일은 who time map의 약자

 - 시스템 사용자들의 로그인 및 로그아웃 기록을 순차적으로 저장하는 파일

 - 마치 시스템의 출입 기록부와 같다고 생각하면 쉬움

 - utmp와 마찬가지로 사람이 직접 읽기 힘든 바이너리 파일이라 아래 명령어를 사용해야 함

 

wtmp 관련 명령어

`last` : wtmp 파일의 내용을 읽어 사용자들의 로그인/로그아웃 기록을 출력

`last -x` : 더 자세한 정보를 출력

`last -n 10` : 최근 10개의 로그인 기록만 출력

 

리눅스 경로 : `/var/log/wtmp`

유닉스 경로 : `/var/adm/wtmpx`

 

 

 

lastlog 로그 파일

 

 - lastlog 파일은 각 사용자가 마지막으로 성공적으로 로그인한 시간과 호스트 정보를 기록하는 파일

 - 각 사용자의 최근 로그인 이력을 간략하게 보여주는 역할을 함

 - 간결하게 사용자 이름, 마지막 로그인 시간, 호스트 정보만을 기록

 

lastlog 관련 명령어

`lastlog` : 모든 사용자의 마지막 로그인 정보를 출력

`lastlog username` : 특정 사용자의 마지막 로그인 정보를 출력

 

리눅스 경로 : `/var/log/lastlog`

유닉스 경로 : `/var/adm/lastlog`

`

 

 

btmp / loginlog 로그 파일

 

 - btmp 파일 bad time map의 약자로 시스템에 로그인하려는 시도가 실패했을 때 그 기록을 저장하는 파일

 - 사용자가 잘못된 아이디나 비밀번호를 입력하여 로그인에 실패한 경우, 그 정보가 btmp 파일에 기록

 - 실패한 로그인 시도 시간, 사용자가 입력한 아이디, 실패 원인(잘못된 패스워드, 사용자 없음) 등을 기록

 - 리눅스에선 btmp와 loinglog 모두에 사용되는 표준 파일 형식임

 

`lastb` : 모든 상요자의 로그인 실패 기록 확인

`lastb username` : 특정 계정에 대한 로그인 실패 기록 확인

`lastb | head -5` : 상위 5개의 정보만 출력

 

 - loginlog 파일은 일부 시스템에서 btmp 파일과 유사하게 실패한 로그인 시도를 기록하는 파일

 - 하지만 btmp 파일과는 달리 일반 텍스트 파일 형식으로 저장되는 경우가 많아 직접 편집하거나 분석하기 용이

 - Sun OS나 유닉스 계열에선 5회 이상 로그인 실패 시 로그인 실패에 대한 기록을 loginlog 파일에 남긴다. 그전엔 안 남김

 

`cat` : 명령어를 통해 확인 가능

`cat /var/adm/loginlog | grep username` : 해당 계정명의 로그인 실패 정보를 출력

 

항목 `btmp` `loginlog`
파일 형식 바이너리 텍스트(일반적)
사용 빈도 더 많이 사용 일부 시스템에서 사용
확인 방법 lastb 명령어 cat 명령어

 

 

리눅스 경로 : `/var/log/btmp`

유닉스 경로 : `/var/adm/loginlog`

 

 

 

sulog 로그 파일

 

 - sulog 파일은 Super User, 즉 root 권한으로 전환하는 과정에서 발생하는 로그를 기록하는 파일

 - 일반 사용자가 root 권한을 얻기 위해 `su` 명령어를 사용하거나, `sudo` 명령어를 통해 root 권한으로 실행할 때 이러한 정보가 sulog 파일에 기록됨

 

sulog 파일의 내용

1. 사용자 이름 : root 권한을 사용한 사용자 이름

2. 날짜와 시간 : root 권한을 사용한 시각

3. 터미널 : 사용자가 접속한 터미널 정보

4. 사용된 명령어 : root 권한으로 실행한 명령어

 

sulog 관련 명령어

`cat 명령어` : sulog 파일이 일반 텍스트 파일인 경우, `cat` 명령어를 사용해 파일 내용 직접 확인 가능

`less 명령어` : 파일 내용이 길 경우, `less` 명령어를 사용하여 한 페이지씩 보면서 내용을 확인할 수 있음

 

cf) 한 페이지씩 보는 명령어 `more`도 참고

 

리눅스 경로 : `/var/log/secure`

유닉스 경로 : `/var/adm/sulog`

 

 

 

acct/pacct 로그 파일

 

 - acct와 pacct 로그 파일은 시스템에서 사용자들이 수행하는 활동을 기록하는 파일

 - 특시 사용자 계정과 관련된 정보를 상세히 담고 있음

 - pacct 파일은 acct 파일보다 더 상세한 정보를 기록, 특히 각 프로세스에 대한 정보를 자세히 담고 있음

 

acct/pacct 관련 명령어

`lastcomm` : 시스템에서 실행한 모든 명령어에 대한 정보가 시간순으로 출력

`lastcomm username` : 해당 사용자가 실행한 명령어, 플래그, 터미널 타입, 프로세스 시작 시간 출력

 

플래그 정보

 - S : 해당 프로세스가 root 권한(super user)으로 실행됐다는 의미

 - F : 해당 프로세스가 fork 시스템 호출을 통해 생성된 자식 프로세스임을 의미

 - X : 해당 프로세스가 SIGTERM 시그널에 의해 종료되었음을 의미

 

리눅스 경로 : `/var/account/pacct`

유닉스 경로 : `/var/adm/pacct`

반응형

댓글