시스템 로그 개요
시스템 로그는 시스템이 작동하면서 발생하는 다양한 이벤트나 오류 메시지들을 기록해 놓은 일종의 일기장.
이 로그를 통해 시스템의 상태를 모니터링하고, 문제 발생 시 원인을 분석하여 해결하는 데 큰 도움을 받을 수 있음
시스템 로그 설정 시 고려해야 할 사항
`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`
'공부 > 정보보안기사' 카테고리의 다른 글
<정보보안기사> 1. 시스템 이론 - 버퍼 오버플로우 공격(Buffer Overflow Attack) (0) | 2024.11.27 |
---|---|
<정보보안기사> 1. 시스템 이론 - PAM(Pluggable Authentication Modules) (0) | 2024.11.23 |
<정보보안기사> 네트워크 보안 <간단 노트1> (0) | 2024.11.22 |
<정보보안기사> 1. 시스템 이론 - xinetd 슈퍼데몬 (1) | 2024.11.21 |
<정보보안기사> 1. 시스템 이론 - 작업 스케줄 관리(cron, crontab 명령어) (0) | 2024.11.20 |
댓글