<로그파일 개론>


시스템관리에 있어서 무시못할 일이 로그파일분석과 관리일 것이다.

시스템에 이상징후가 발생을 했을 때, 시스템관리자가 가장먼저 확인해 보는 것이 로그파일이다.

시스템이 해킹을 당했다고 느낄에 우린 로그파일에 의존하게된다.

어디서(IP Address) 누가(ID) 어떻게(port) 들어와서 어떤작업을 했는지를 확인하려할 때 우린 전적으로 로그파일에

의존하게 된다.

로그파일을 잘 관리함으로 인해서 시스템관리자에게 마지막 희망을 주기도 한다.

따라서 시스템관리자는 로그파일관리에 절대 소홀해서는 아니된다.


기본적으로 운영체제(시스템이라고 하자)에서 남겨지는 기본적인 로그들(syslogd에 관한 로그들)만도 여러개지만

웹서버(주로 아파치)를 운영하고 있다면 웹로그가 있을 것이고

메일서버(주로 sendmail과 pop)를 운영한다면 메일로그파일이 존재할 것이다.

또한 DNS, 즉 named를 운영하고 있다면 named에 관한 로그파일이 존재할 것이고,

ftp서버를 운영하면서 파일서버로 운영을 한다면 ftp 로그파일도 존재할 것이며,

samba서버를 운영한다면 이에 대한 로그도 존재할 것이다.


로그파일에 대해서 일일이 열거하는 일 자체가 그리 중요한 것은 아니지만, 자기가 운영하는 시스템에 어떤 로그파일이

존재하며 어떤데몬(또는 프로세스)에 의해서 로그가 남겨지는가는 정확히 알고 있어야한다.

아울러 로그파일시스템이 어떤 경로로 남겨지게 되는지에 대해서도 정확히 알고 있어야할 것이다.


 

<로그파일의 종류>


로그이름

로그파일명

관련데몬

설명

커널로그

/dev/console

 

콘솔에 뿌려지는 로그

시스템로그

/var/log/messages

syslogd

리눅스커널로그 및 주된로그

보안로그

/var/log/secure

inetd

inetd에 의한 로그

메일로그

/var/log/maillog

sendmail
popper

메일로그(sendmail에 의한 로그)

크론로그

/var/log/cron

crond

crond에 의한 로그

부팅로그

/var/log/boot.log

 

시스템부팅시의 로그

FTP로그

/var/log/xferlog

ftpd

ftp로그

웹로그

/usr/local/apache/logs/access_log

httpd

아파치(웹서버)로그

네임서버로그

/var/log/named.log

named

네임서버(DNS)로그



기본적인 로그들은 syslogd에 의해서 제어가 되며, syslogd의 설정파일인 /etc/syslog.conf 파일을 수정함으로써

이 파일들의 저장위치와 저장파일명을 변경할 수도 있다.



콘솔로그(/dev/console)


이 로그는 커널(kernel)에 관련된 내용을 시스템콘솔에 뿌려주는 로그이다.

물론, messages내용과 일치하지는 않지만

시스템에 관련된 중요한 내용들(예, 시스템풀, 다운등)에 대한 로그를 관리자에게 알리고자 함이 목적이기 때문에

출력을 파일로 저장하는 것이 아니라 장치명(/dev/console)을 사용하여 콘솔로 로그를 뿌려주게 된다.



시스템로그(/var/log/messages)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

이 로그에 기록되는 내용은 주로 접속시의 인증에 관한 것과 메일에 관한 내용, 그리고 시스템에 관한 변경사항등 시스템에 관한 전반적인 로그를 기록하는 파일이다.

시스템관리자에 의해서 가장 소중하게 다루어지는 로그이기도 하다.

이 파일에 기록되는 내용을 변경하고자 한다면 /etc/syslog.conf 파일의 내용에서 수정을 해주면 된다.



보안로그(/var/log/secure)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

이것은  inetd에 의한 로그파일이다.

inetd에 관한 것은 이미 강좌를 한 것이 있으므로 참조하기 바라며, 요즘 리눅스의 배포판에는 inetd보다도 xinetd로 업그레이드되어 배포되는 경우가 대부분이다.

하지만 xinetd를 사용하는 시스템에도 이 파일에 로그가 기록된다.

xinetd데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.


-ef라는 옵션외에도 aux라는 옵션으로 다음과 같은 방법으로도 확인이 가능하다.

#ps aux | grep xinetd

또한 실행중인 xinetd의 PID저장 파일은 /var/run/xinetd.pid 이다.



메일로그(/var/log/maillog)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

이 로그파일의 이름에서 의미하는 바와같이 sendmail이나 pop등의 실행에 관한 기록이 남겨지게 된다.

메일을 주고받을 때에 이 로그파일에기록이 된다.

즉, smtp와 pop에 관한 로그라고 말할 수 있다.

이 로그파일과 관련된 sendmail 데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.


또한 실행중인 sendmail의 PID저장 파일은 /var/run/sendmail.pid 이다.

 


크론로그(/var/log/cron)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

시스템의 크론이 작업한 기록을 보관하고 있는 파일이다.

이파일을 보면 크론데몬인 crond가 언제 어떤작업을 했는가를 확인할 수가 있다.

위의 예를 보면 알 수 있는 바와 같이 crond에 의해서 실행되었던 데몬(프로세스, 응용프로그램등)들이 기록되어 있음을 알 수 있다.

즉, crond에 의해서 생성되는 로그가 기록되는 파일이다.

이 로그파일과 관련된 crond데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.

 

또한 실행중인 crond의 PID저장 파일은 /var/run/crond.pid 이다.

 


부팅로그(/var/log/boot.log)


이 로그파일의 예를 잠깐 살펴보자.

시스템의 데몬들이 실행되거나 재시작되었을 때 기록되는 로그파일로서 위의 예는 sendmail을 재시작했을 때 boot.log파일에 기록된 예를 보인 것이다.

 

 

FTP로그(/var/log/xferlog)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

ftp나 ncftp등의 접속이 이루어 졌을 때 이 로그파일에 기록이 된다.

예를 들어  ws_ftp나 cute_ftp등을 사용했을 때 이 로그파일에 기록되고, 업로드한 파일과 다운로드한 파일들에 대한 자세한 기록과 함께 남겨지게 된다.



웹로그(/usr/local/apache/logs/access_log)



리눅스에서 웹서버로는 대부분 아파치를 사용하므로 아파치로그에 대한 예를 든 것이다.

대부분 아파치의 설치위치가 /usr/local/apache이므로 아파치 로그파일의 위치는

/usr/local/apache/logs/access_log 가 된다.

만약, 웹호스팅등으로 여러개의 웹사이트를 운영한다면 각각의 웹사이트 로그파일의 위치는

/home/ID/www_log 가 될 것이다.

물론, 이 위치는 필자가 권하는 위치이며, 다른곳에 저장을 해도 무방하다.

사용자 각각의 웹사이트의 위치를 지정하는 곳은 아파치 설정파일인 /usr/local/apache/conf/httpd.conf 파일중

<Virtual Host>라는 곳에서 하게된다.


가장히 예를 들어본다면 다음과 같다.



httpd.conf 파일의 내용중 가상호스트 설정부분을 예를 든 것으로 이 사이트(abcc.or.kr)의 로그파일위치는

지정한 대로 /home/abcc/www_log/access_log가 된다.

다른 가상호스트의 사이트위치도 이와 같다고 할 수 있다.

이 로그파일과 관련된 httpd데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.


 

또한 실행중인 httpd의 PID저장 파일은 /usr/local/apache/logs/httpd.pid 이다.



라스트로그(/var/log/lastlog)

이 파일에는 가장 최근에 로긴한 정보를 저장하고 있습니다.  last 라는 명령어를 입력했을때의 정보를 저장하고 있는
파일이다. 관련 명령어는 last 이다.



utmp 로그(/var/run/utmp)

이 파일은 현재시스템에 접속해 있는 사용자의 정보를 가지고 있습니다. 시스템은 사용자가 remote로 접속을 하면 먼저 이 파일에 기록을 하고 로그아웃을 할 때에 기록해둔 정보를 삭제합니다.

btmp 로그(/var/log/btmp)

이 파일은 로그인에 실패한 기록 에 대한 정보가 포함되어 있습니다. BTMP 파일을 볼 수있는 명령어는 last -f /var/log/btmp 이며 많은 내용이 있을 경우 last -f /var/log/btmp | more 입니다.


wtmp 로그(/var/log/wtmp)

다음으로 wtmp에 대해서 알아보자. 이 파일에는 처음부터 접속했던 모든 사용자의 로그인정보와 로그아웃정보를
가지고 있습니다.  이파일은 삭제해주지 않으면 계속 누적이 되므로 정기적으로 백업을 받아 두든지 아니면
불필요한 정보를 삭제하든지 해야합니다.

이 파일에 기록되는 정보는 utmp.h에 있는 내용에 ut_time 이추가되어 로그 아웃시의 시간이 추가기록됩니다.

해킹 사건을 해결하고자 할때 이 로그 파일을 자주 이용하여 분석합니다.

명령어는 last 명령어를 사용합니다.




블로그 이미지

칩사마코더

,