과목명 : Server Vulnerability Analysis 담당교수 : 안미정교수님학과 : 사이버경찰학과학번 : 10080800 성명 : 성진만
Linux OS, /var/log/ about 과제를시작하기에앞서로그가왜존재해야하는가에대해서잠깐언급하고시작하겠습니다. 우리일상생활에서도로그역할이반드시있어야할상황이있습니다. 예를들어사건현장에 CCTV( 폐쇄회로 ) 가없다면수사에많은어려움이따르지않을까하고생각해봅니다. 즉, CCTV( 폐쇄회로 ) 라는장치가실시간으로현장을계속촬영해두었다가필요에따라녹화파일을돌려보는것처럼 System불문하고 Log가없다면상상만해도끔찍합니다. 왜냐하면 System 관리자입장에서바라볼때, 현재가동중인 System에대해서 Log라는단서가기록되지않는다면현재해당 System에어떤상황인지파악하는것은상당히힘들기때문에 Log는없어서는안될공기, 물같은존재입니다. 먼저로그파일의종류및역할분석을하기전, 무슨로그파일이있는지알아보겠습니다. 위화면은제가현재사용중인 Debian 계열 OS 의로그파일리스트를보기위해 ls 명령어를통해서 /var/log Directory 안에각종로그파일목록을열거한모습입니다. 여기서제가살펴볼로그파일은 dmesg, faillog, lastlog, mail.log, messages, mysql.log, btmp, wtmp, auth.log, syslog, cron, secure, xferlog, audit입니다. 이중에서 Putty를통해저희학과에서구동중인자체서버에저장된로그파일도살펴보았습니다. 제가사용중인 OS에서서비스를해주지않는항목이있어서몇몇파일에대해서는기록된로그파일내용이없었습니다. 그리하여 Putty를통해저희학과에서구동은자체서버에서로그파일을보게되었습니다.
dmesg Log 란무엇인가? (root@jeus: /var/log# dmesg 입력 ) dmesg log 와 messages log 파일의차이점을살펴보겠습니다. 위에서보시는바와같이 dmesg log 의주내용은 OS 가부팅되는동안커널의기록을남겨놓는파일로 보시면됩니다. messages Log 란무엇인가? (root@jeus: /var/log# cat messages 입력 ) messages log 파일에저장되는주내용은 OS 가부팅과정을마친후, 커널과연계된시스템동작관련된 전반적인내용들이기록되어있는것을보게되었습니다. File System, USB, SCSI, INTEL 등등...
mail Log 란무엇인가? (Putty 에서저의계정으로접속한후, cat maillog 입력 ) 위로그는나의컴퓨터에서누군가와메일을주고받을때, 메일송 수신관련로그가기록됩니다. 로그파일의내용을보니 sendmail 동작과정및월, 일시간도알수있고, SMTP 프로토콜도보입니다. messages Log 란무엇인가? (root@jeus: /var/log# cat wtmp 입력 ) wtmp log 는 ascii 형식의파일이아니라서, 다이렉트로열게되면로그파일에기록된내용의글자들이 깨져서나옵니다. 그러므로, last 명령어를통해서원하는옵션을사용후추출해서볼수있으며 ID, IP, 접속시간등을알수있습니다.
last에숫자옵션을줄경우최근 숫자 의기록만을추출하여준다. 이옵션을활용하여사용자들의.login script에 last -6 검색하고자하는 ID 를넣어두어검색하고자하는 ID 사용자가최근 6회동안어느곳에서로그인했었는지를스스로점검할수있도록하는방법으로침해사고분석시에는유용하게사용할수있습니다. last명령어를통해알수있는내용 (wtmp log 파일의내용을 last명령어를통해불러온다. 라고생각하시면됩니다.) 1. 사용자 / 최종접속일 / 접속 interval / 접속횟수 / 1회당사용시간 2. 월별통계 3. 1회당사용시간이긴사용자유의 ( 관리상한, 하한값에따라서 ) 4. 접속횟수가관리상한을넘는사용자 btmp Log 란무엇인가? (root@jeus: /var/log# lastb 입력 ) 위화면은제가사용중인 Debian OS에서 btmp 로그파일에저장된내용중, lastb 명령어를입력한화면입니다. 특정계정들에게서비스를해준것이없으므로, 로그인실패한횟수가 0 인것을볼수있습니다. lastb 명령어를통해알수있는점은사용자가무슨계정으로로그인실패했는지알수있습니다. Putty 에서저의계정으로접속한후, lastb 입력 위화면은 Putty 에서저희학과서버에 lastb 를입력한화면입니다.
btmp 로그에는어떤계정으로접속실패했는지, 해당 IP 주소, 월, 요일, 시간등을알수있었습니다. 수동으로하는방법도있습니다. touch /var/log/btmp 하면접속시도를했으나실패한아이디와관련된 정보를저장시키고, 확인방법은 last -f /var/log/btmp 입니다. 그리고, tripwire 라는프로그램을설치하고사용해도로그인접속실패관련로그내용을불러옵니다. 아래내용은 last 명령어에파이프라인을추가하고 more 옵션을주었을때화면입니다. (last more) wtmp Log 란무엇인가? (Putty 에서저의계정으로접속한후, last more 입력 ) wtmp 로그내용을살펴보니까, 계정에대한접속 IP 주소, 월, 요일, 접속시간을보실수있습니다. 현재저는 Putty 를통해서버에접속된상태이므로, 저의계정인 sjm 에대해서 logged in ( 로그인 ) 표시 가되어있습니다.
lastlog 란무엇인가? (root@jeus: /var/log# lastlog 입력 ) lastlog 파일의내용은 System 관리자가전체계정들에대해서각계정들이가장최근에언제로그인을 했는지알기위해사용되는로그파일입니다. mysql Log 란무엇인가? (root@jeus: /var/log# mysql.err, mysql.log 입력 ) 제가사용하고있는 OS에서 mysql이설치되어있는데, 아직 DB작업을하지않아서로그기록은없지만위로그파일의목적은 mysql을이용하면서발생되는 Syntax Error, warning 등에러가발생되면 mysql.err 로그기록을합니다. mysql.log 파일은 DB Table에입력등 mysql DB작업하면서입력되는 DB 정보들에관한내용으로로그기록을저장합니다.
auth Log 란무엇인가? (root@jeus: /var/log# cat auth.log 입력 ) auth.log 로그도반드시살펴보아야할로그파일중하나에해당됩니다. System 관리자입장에서는서버 로누가접속시도를하고있는지 ( 해킹시도여부 ) 에대한인증관련정보를알기위해서이용되는로그파 일입니다. secure 란무엇인가? (Putty 에서저의계정으로접속한후, cat secure 입력 ) 위화면은 telnet, ssh 등원격접속관련로그인인증기록이나와있습니다. cat으로만입력하면전체내용이첫번째줄부터마지막문단까지빠른화면으로내려가버리기때문에로그파일을분석할수가없습니다. 그러므로, cat secure more 명령어를입력하여내가현재보고있는창크기만큼보면서로그파일을분석합니다.
cron log 란무엇인가? (Putty 에서저의계정으로접속한후, cat cron 입력 ) 위화면은 cron log 내용입니다. cron log에기록되는내용은예약한작업이정상적으로실행되는지확인가능합니다. 다른방법으로는 crontab -l 있습니다. 왜냐하면, cron 명령어는 System관리자가주기적으로백업을해야하기때문에이때로그기록을확인하기위해 con log를보게됩니다. xfer log 란무엇인가? (Putty 에서저의계정으로접속한후, cat xferlog- 날짜입력 ) 위화면에서알수있는것은년, 월, 요일, 시간, 어떤 IP 주소, 파일명등을볼수있었습니다. - FTP 서버의데이터전송관련로그 - 파일의송수신모드 (a: 아스키파일, b: 바이너리파일 ) - 특수행위플래그 (C: 압축, U: 비압축, T: Tar archive) - 전송방향 (o: outgoing, i: ingoing) - 로그인한사용자종류 (a: anonymous, g: guest, r: 패스워드인증된사용자 )
audit log 란무엇인가? (Putty 에서저의계정으로접속한후, cat audit.log. 파일번호입력 ) 위화면은 audit Directory 의파일목록입니다. 각각의파일마다감사정책관련로그가기록되어있습니다. 아래화면은 cat audit.log 입력한화면입니다. 로그내용을보니, 현재제가사용중인 IP주소가나오고, acct="sjm", 터미널방식은 ssh로접속하였고, PID값등등이나오는것을확인하였습니다. 제가접속한것에대한감사정책로그가기록이된것같습니다.
출처 http://damon8589.blog.me/70177008600 (btmp, utmp관련 ) http://blog.naver.com/babyj2005?redirect=log&logno=67068689 (btmp관련) http://blog.naver.com/limcs79?redirect=log&logno=80027785097 (wtmp관련) http://killban.egloos.com/viewer/2166509 (wtmp관련) http://blog.naver.com/aromaljn?redirect=log&logno=70177859778 (auth.log관련) http://blog.naver.com/battledocho?redirect=log&logno=50093082866 (secure, cron, xferlog 관련 ) 참고문헌 Cent OS 기반의리눅스서버구축및활용하기, DIM연구소, 이한미디어, 2011 리눅스마스터 2급, 한국정보통신인력개발센터, 지 & 선, 2005 리눅스서버관리실무바이블 3.0, 박성수, SU리눅스포털, 2009 과제후기 이번과제를하면서 Linux OS에서어떤로그파일이있는지알게되었고, 각로그파일종류마다어떠한내용의로그가기록이되는지직접눈으로확인할수있는계기가되었습니다. 만약, 내가 System 관리자라면이러한로그파일은유심히분석을해야겠구나하는점도깨닫는시간도가졌습니다.