시스템보안 - 리눅스 로그파일 및 설정파일
리눅스/유닉스 시스템에서 로그를 확인하는 명령어나 로그파일 과 가장 거리가 먼 것은? 4
① wtmp - 시스템 전체 로그인 기록
② history - 접속한 계정에서 사용했던 명령어의 내용
③ pacct - 시스템에 들어온 사용자가 어떤 명령어를 실행시키고 어떠한 작업을 했는지에 대한 사용 내역 등이 기록
④ find
1. Log File의 종류
- 기본적인 로그들은 syslogd에 의해서 제어가 되며, syslogd의 설정파일인 /etc/syslog.conf 파일을 수정함으로써 이 파일들의 저장위치와 저장파일명을 변경 가능하다.
- 보안을 위하여 숨김속성(.으로 시작하는 디렉토리)의 디렉토리를 다른곳에 만들어 숨김속성파일(.으로 시작하는 파일)을 만들어서 찾기 힘든 곳에 보관 할 수 있다.
로그이름 |
로그 파일명 |
관련 데몬 |
설명 |
커널 로그 |
/dev/console |
kernel |
콘솔에 뿌려지는 로그 |
시스템 로그 |
/var/log/messages |
syslogd |
리눅스 커널로그 및 주된 로그 |
보안 로그 |
/var/log/secure |
xinetd |
보안 인증 관련 로그 |
메일 로그 |
/var/log/maillog |
sendmail popper |
메일 로그 (sendmail에 의한 로그) |
크론 로그 |
/var/log/cron |
crond |
crond에 의한 로그 |
부팅 로그 |
/var/log/boot.log |
kernel |
시스템 부팅시의 로그 |
커널 부트 메시지 로그 |
/var/dmesg |
kernel |
부팅될 당시의 각종 메시지들 저장 |
커널 로그 |
/var/log/wtmp |
kernel |
시스템 전체 로그인 기록 저장 |
커널 로그 |
/var/log/utmp |
kernel |
현재 로그인 사용자에 대한 기록, 사용자 ip 저장 |
FTP 로그 |
/var/log/xferlog |
ftpd |
ftp 로그 |
웹 로그 |
/var/log/httpd/access_log |
httpd |
아파치(웹서버) 로그 저장 |
웹 로그 |
/var/log/httpd/error_log |
httpd |
아파치(웹서버) 에러 저장 |
네임서버 로그 | /var/log/named.log | named | 네임서버(DNS) 로그 |
2. Log File 분석
① 콘솔 로그 (/dev/console)
- 커널에 관련된 내용을 시스템 콘솔에 뿌려주는 로그이다.
- 시스템에 관련된 중요한 내용들(시스템풀, 다운 등)에 대한 로그를 관리자에게 알리고자 함이 목적이다.
- 출력을 파일로 저장하는 것이 아니라 장치명(/dev/console)을 사용하여 콘솔로 로그를 뿌려준다.
- timestamp, 호스트명, 커널 메시지 내용 등이 기록 되었다.
② 시스템 로그 (/var/log/messages)
- 사용명령어 : dmesg (/var/log/messages를 출력한다.)
- 주로 접속 시 인증에 관한 것과 메일에 관한 내용, 시스템에 관한 변경사항 등 시스템에 관한 전반적인 로그를 기록하는 파일이다.
- timestamp, 호스트명, 데몬명, 메시지 내용 등이 기록된다.
- 시스템 관리자에 의해서 가장 소중하게 다루어지는 로그이다.
- 보안사고가 발생시에 가장 먼저 분석을 해야하는 파일이다.
- 메시지 내용은 su 실패에 대한 로그, 특정 데몬이 비활성화된 로그, 부팅 시 발생된 에러 등 다양한 로그들을 포함한다.
- syslog facility에 의하여 남은 로그로 /etc/syslog.conf의 설정에 따라 남는 정보의 종류가 달라진다.
③ 보안 로그 (/var/log/secure)
- 모든 접속과 관련하여 언제 어디서 어떤 서비스를 사용했는지 기록한다.
- timestamp, 호스트명, 응용프로그램명(pid), 메시지 내용이 기록되어있다.
- 보통 login, tcp_wrappers, xinetd 관련 로그들이 남는다.
- ps -ef라는 옵션 외에도 aux라는 옵션으로 확인 가능하다.
( 예 : ps aux | grep xinetd )
- 실행중인 xinetd의 PID저장 파일은 /var/run/xinetd.pid
④ 메일 로그 (/var/log/maillog)
- sendmail이나 pop등의 실행에 관한 기록이다.
- 메일을 주고받을 때에 이 로그파일(smtp, pop)에 기록이다
- 실행중인 sendmail의 PID저장 파일은 /var/run/sendmail.pid
- timestamp, 호스트명, 데몬명(pid), 메시지 내용 기록
⑤ 크론 로그 (/var/log/cron)
- 시스템의 정기적인 작업(crond)에 대한 모든 작업한 기록을 보관하고 있는 파일이다.
- 크론데몬의 crond가 언제 어떤작업을 했는가를 확인 가능히다.
- crond의 의해서 실행되었던 데몬(프로세스, 응용프로그램 등)들이 기록 되었다.
- 실행중인 crond의 PID저장 파일은 /var/run/crond.pid
- /etc/ 디릭토리 밑에 있는 cron.hourly, crondaily, cron.weekly, cron.monthly 파일들에 기록되어 있는 작업을 실행한 후에 cron 파일에 log를 기록한다.
- timestamp, 호스트명, 데몬명(pid), 메시지 내용이 기록되어 있다.
⑥ 부팅로그 (/var/log/boot.log)
- 시스템의 데몬들이 실행되거나 재시작되었을 때 기록되는 로그 파일이다.
- 부팅 시의 에러나 조치 사항을 확인할 때 활용이 가능하다.
- timestamp, 호스트명, 데몬명(pid), 메시지 내용이 기록 된다.
⑦ 커널 부트 메시지 로그 (/var/dmesg)
- 시스템이 부팅할 때 출력되었던 메시지를 로그 기록한다.
⑧ /var/log/wtmp
- 사용 명령어 : last
- 사용자들의 로그인-로그아웃 정보 기록이다
- 바이너리 형태이며 지금까지 사용자들의 로그인, 로그아웃 히스토리를 모두 누적형태로 저장된다.
- 시스템의 셧다운, 부팅 히스토리까지 포함한다.
- 해킹 피해 시스템 분석 시 비중있게 다룬다.
옵션 |
설명 |
last [계정명] |
계정명을 입력하면 사용자별 로그 정보를 출력한다. |
last -f [파일명] |
지난 파일에 대해서 로그를 점검시 -f 옵션 뒤에 해당 파일명을 입력 |
last -R |
IP를 제외시킨 로그 정보를 출력한다. |
last -a |
로그 정보를 출력할 때 IP를 뒤로 배치해서 출력한다. |
last -d |
외부에서 접속한 정보와 reboot 정보만을 출력한다. |
⑨ /var/log/utmp
- 사용자 명령어 : who, w, whodo, uesrs, finger
- 시스템에 현재 로그인한 사용자들에 대한 상태를 기록한다.
- 리눅스에서는 /var/run 혹은 /var/adm, 솔라리스에서는 /etc등에 위치하며 바이너리 형태로 저장되어 vi 편집기 등으로 읽을 수 없다.
- utmp(x) 파일은 기본적으로 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자 로그인한 시간 등을 기록 한다.
- w 명령어는 utmp(x)를 참조하여 현재 시스템에 성공적으로 로그인한 사용자에 대한 snapshot을 제공해 주는 명령어이다.
- 해킹 피해 시스템 분석 시 비중있게 다룬다.
※ wtmp, wtmpx와 파일 포맷은 동일
ump(x)는 현재 시스템에 대한 정보, wtmp(x)는 누적된 정보
⑩ /var/log/lastlog
- 사용 명령어 : lastlog
- /etc/passwd 파일에 정의되어 있는 모든 계정의 최근 접속 정보를 확인 가능하다.
- 사용자의 최근 로그인 시간을 사용자 이름, 터미널, IP 주소, 마지막 로그인 시간 출력
- /var/log/lastlog 파일에 저장되고 바이너리 형태
옵션 |
설명 |
-u / --login |
접속 이름 |
-t / --time |
날짜 (현재 시간부터 입력하나 날짜까지 접속자 검색) |
-h / --help |
도움말 |
⑪ FTP 로그 (/var/log/xferlog)
- ftp나 ncftp 등의 접속이 이루어 졌을 때 이 로그파일에 기록이 된다.
- ftp를 사용했을 때 이 로그파일에 기록되고, 업로드 파일과 다운로드한 파일들에 대한 자세한 정보가 기록 저정된다.
⑫ 웹 로그 (/var/log/httpd/access_log, /var/log/httpd/error_log)
▶ Access log
- 웹사이트에 접속했던 사람들이 각 파일들을 요청했던 실적을 기록해놓은 목록을 저장한다.
- 방문자의 IP또는 도메인 네임, 방문자가 파일을 요청한 시간, 방문자가 웹서버에 요청한 처리 내용(Get, Put, Head), 방문자가 요구한 파일의 이름, 파일의 크기 및 처리결과 등의 데이터를 제공한다.
▶ Error log
- 요청한 홈페이지가 없거나 링크가 잘못되는 등의 오류가 있을 경우에 생성된다.
⑬ /var/log/btmp
- 사용자 명령어 : lastb
- 로그인 시도 5번 이상 실패한 로그 기록을 확인 가능하다.
- 계정명, 접속 콘솔/터미널 유무, IP, 시간 정보 출력
- /var/log/btmp에 바이너리 형태로 저장도니다.
⑭ History (해당 계정의 home directory/ .bash_history)
- 접속한 계정에서 사용했던 명령어의 내용만 보여준다.
- root의 경우 ~/.bash_history에 사용한 명령어가 저장된다.
- 저장되는 로그의 위치를 변경하려면 export HISTFILE="경로/파일이름" 을 입력 한다.
⑮ Pacct (/var/account/pacct)
- 사용자 명령어 : lastb
- 시스템에 들어온 사용자가 어떤 명령어를 실행시키고 어떠한 작업을 했는지에 대한 사용 내역 등이 기록 된다.
- 사용된 명령어의 argument와 그 명령어가 시스템 내 어느 파일 시스템의 어느 디렉토리에 실행되었는지는 기록되지 않는다.
- /var/account/pacct에 바이너리 파일로 기록된다.
- 파일 크기가 쉽게 커지기 때문에 관리가 필요한 파일 이다.
출처: https://dinding.tistory.com/8 [딘딩]
'IT > 정보보안' 카테고리의 다른 글
시스템보안 - 솔트(salt) (0) | 2019.06.13 |
---|---|
시스템보안 - 데이터베이스 보안 (0) | 2019.06.13 |
시스템보안 - NTFS (0) | 2019.06.12 |
시스템보안 - 레지스트리 종류 (0) | 2019.06.11 |
시스템보안 - 접근 통제 (0) | 2019.06.11 |
댓글