1. 로그 파일의 종류
| 로그 |
로그 파일명 |
관련 데몬 |
| 콘솔 로그 |
/dev/console |
kernel |
| 시스템 로그 |
/var/log/message |
syslogd |
| 보안 로그 |
/var/log/secure |
xinetd |
| 메일 로그 |
/var/log/maillog |
sendmail |
| 크론 로그 |
/var/log/cron |
crond |
| 부트 로그 |
/var/log/boot.log |
kernel |
| 커널 부트 로그 |
/var/dmesg |
kernel |
| 커널 로그 |
/var/log/wtmp |
kernel |
| 커널 로그 |
/var/log/utmp |
kernel |
| FTP 로그 |
/var/log/xferlog |
ftpd |
| 웹 로그 |
/var/log/httpd/access_log |
httpd |
| 웹 로그 |
/var/log/httpd/error_log |
httpd |
| 네임 서버 로그 |
/var/log/named.log |
named |
2. 로그 파일 분석
1) 콘솔 로그(/dev/console)
① 커널에 관려된 내용을 시스템 콘솔에 보여주는 로그입니다.
② 시스템의 중요한 내용들을 로그에 남깁니다.
③ timestamp, 호스트명, 커널 메시지 내용 등이 기록됩니다.
2) 시스템 로그(/var/log/message)
① 접속시 인증에 관한 것과 메일에 관한 내용, 시스템에 관한 변경사항 등 시스템에 대한 전반적인 로그를 기록합니다.
② timestamp, 호스트명, 커널 메시지 내용 등이 기록됩니다.
③ 서버의 문제가 발생할 경우 가장 먼저 확인해야 될 로그입니다.
[root@localhost ~]# dmesg
[ 0.000000] microcode: microcode updated early to revision 0x411, date = 2019-04-23
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0-1160.11.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org)
3) 보안 로그(/var/log/secure)
① 모든 접속과 어느 시점에 어떤 서비스를 사용했는지 기록합니다.
② timestamp, 호스트명, 응용 프로그램(pid), 메시지 내용이 기록됩니다.
③ login, tcp_wrappers, xinetd 관련 로그들이 기록됩니다.
[root@localhost ~]# cat /var/log/secure
Dec 29 00:02:39 latch sshd[2317]: Accepted password for latch from 192.168.0.7 port 51741 ssh2
Dec 29 00:02:39 latch sshd[2317]: pam_limits(sshd:session): Too many logins (max 1) for latch
Dec 29 00:02:39 latch sshd[2317]: pam_unix(sshd:session): session opened for user latch by (uid=0)
Dec 29 00:02:39 latch sshd[2317]: error: PAM: pam_open_session(): Permission denied
Dec 29 00:02:51 latch sshd[2322]: Accepted password for latch from 192.168.0.7 port 51742 ssh2
Dec 29 00:02:51 latch sshd[2322]: pam_limits(sshd:session): Too many logins (max 1) for latch
Dec 29 00:02:51 latch sshd[2322]: pam_unix(sshd:session): session opened for user latch by (uid=0)
Dec 29 00:02:51 latch sshd[2322]: error: PAM: pam_open_session(): Permission denied
4) 메일 로그(/var/log/maillog)
① sendmail이나 pop 등의 실행에 관한 기록이됩니다.
② timestamp, 호스트명, 데몬명(pid), 메시지 내용 등이 기록됩니다.
[root@localhost ~]# cat /var/log/maillog
Dec 1 20:48:24 latch postfix/smtp[5508]: 4722EB302C: to=<latch@test.com>, relay=none, delay=389901, delays=389840/0.12/60/0, dsn=4.4.1, status=deferred
Dec 1 20:48:25 latch postfix/smtp[5509]: connect to alt1.test-smtp-in.l.test.com[192.168.0.100]:25: Connection timed out
Dec 1 20:48:25 latch postfix/smtp[5509]: connect to alt1.test-smtp-in.l.test.com[2607:f8b0:4023:c03::1b]:25: Network is unreachable
Dec 1 20:48:55 latch postfix/smtp[5509]: connect to alt2.test-smtp-in.l.test.com[192.168.0.100]:25: Connection timed out
Dec 1 20:48:55 latch postfix/smtp[5509]: 3CE27B302D: to=<latch@test.com>, relay=none, delay=44332, delays=44241/0.11/90/0, dsn=4.4.1, status=deferred
5) 크론 로그(/var/log/cron)
① 시스템의 정기적인 작업에 대한 모든 내용을 기록합니다.
② 크론 데몬의 crond가 어느 시점에 작업을 했는지 확인이 가능합니다.
③ /etc/ 디렉토리 밑에 있는 cron.hourly, crondaily, cron.weekly, cron.monthly 파일들에 기록되어 있는 작업을 실행한 후에 cron 파일에 log를 기록합니다.
④ timestamp, 호스트명, 데몬(pid), 메시지 내용이 기록됩니다.
[root@localhost ~]# cat /var/log/cron
Dec 29 10:01:01 latch CROND[5375]: (root) CMD (run-parts /etc/cron.hourly)
Dec 29 10:01:01 latch run-parts(/etc/cron.hourly)[5375]: starting 0anacron
Dec 29 10:01:01 latch run-parts(/etc/cron.hourly)[5384]: finished 0anacron
Dec 29 10:10:01 latch CROND[5404]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Dec 29 10:20:01 latch CROND[5441]: (root) CMD (/usr/lib64/sa/sa1 1 1)
6) 부팅 로그(/var/log/boot.log)
① 시스템의 데몬들이 실행되거나 재시작되었을 때 기록되는 로그 파일입니다.
② timestamp, 호스트명, 데몬(PID), 메시지 내용이 기록됩니다.
7) 커널 부트 메시지 로그(/var/log/dmesg)
① 시스템이 부팅할 때 출력되었던 메시지를 로그에 기록합니다.
[root@localhost ~]# cat /var/log/dmesg
[ 5.938844] device-mapper: ioctl: 4.37.1-ioctl (2018-04-03) initialised: dm-devel@redhat.com
[ 5.953072] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 6.018611] random: crng init done
[ 6.274167] EXT4-fs (sdb): mounted filesystem with ordered data mode. Opts: (null)
[ 6.407216] type=1305 audit(1609196197.839:3): audit_pid=607 old=0 auid=4294967295 ses=4294967295 res=1
8) 커널 로그(/var/log/wtmp)
① 사용자들의 로그인, 로그아웃 정보들이 기록됩니다.
② 바이너리 형태로 저장되며, 지금까지의 사용자들의 로그인, 로그아웃 히스토리를 누적 형태로 저장합니다.
③ 시스템의 shutdown, history까지 기록됩니다.
[root@localhost ~]# last
root pts/0 192.168.0.100 Sun Jul 5 21:52 - down (00:41)
root pts/0 192.168.0.100 Sun Jul 5 18:59 - 18:59 (00:00)
root pts/1 192.168.0.100 Sun Jul 5 18:59 - 21:29 (02:30)
root pts/0 192.168.0.100 Sun Jul 5 18:58 - 18:59 (00:00)
root tty1 Sun Jul 5 18:53 - 18:54 (00:01)
④ last 옵션
| 옵션 |
설명 |
| last [계정명] |
계정명을 입력하면 사용자별 로그 정보를 출력 |
| last -R |
IP를 제외시킨 로그 정보를 출력 |
| last -a |
로그 정보를 출력할 때 IP를 뒤로 배치하여 출력 |
| last -d |
외부에서 접속한 정보와 reboot 정보만 출력 |
9) 커널로그(/var/log/utmp)
① 시스템에 현재 로그인한 사용자들에 대한 상태를 기록합니다.
② 사용자 이름, 터미널 장치 이름, 원격 로그인시 원격 호스트 이름, 로그인 시간 등을 기록합니다.
[root@localhost ~]# who
latch pts/0 2020-12-29 09:04 (192.168.0.100)
[root@localhost ~]# w
10:33:17 up 2:36, 1 user, load average: 0.00, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
latch pts/0 192.168.0.100 09:04 5.00s 2.69s 0.30s sshd: latch [priv]
10) last 로그(/var/log/lastlog)
① /etc/passwd 파일에 정의되어 있는 모든 계정의 최근 접속 정보를 기록합니다.
② 사용자의 최근 로그인 시간, 사용자 이름, 터미널, IP 주소, 마지막 로그인 시간이 기록됩니다.
[root@localhost ~]# lastlog
Username Port From Latest
root pts/0 Tue Dec 29 09:04:33 +0900 2020
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
operator **Never logged in**
games **Never logged in**
ftp **Never logged in**
nobody **Never logged in**
systemd-network **Never logged in**
dbus **Never logged in**
polkitd **Never logged in**
libstoragemgmt **Never logged in**
abrt **Never logged in**
rpc **Never logged in**
tss **Never logged in**
sshd **Never logged in**
postfix **Never logged in**
chrony **Never logged in**
ntp **Never logged in**
tcpdump **Never logged in**
mysql **Never logged in**
latch pts/0 192.168.0.100 Tue Dec 29 09:04:29 +0900 2020
11) FTP 로그(/var/log/xferlog)
① ftp나 ncftp 등의 접속이 이루어졌을 때 해당 로그 파일에 기록됩니다.
② ftp를 사용했을 때 로그 파일에 기록되고 업로드 파일과 다운로드 한 파일에 대한 자세한 정보가 기록됩니다.
12) 웹 로그(/var/log/httpd/access_log, /var/log/httpd/error_log)
① 웹 사이트에 접속하여 요청했던 내용을 기록합니다.
② 방문자의 IP, 파일 요청 시간, 처리 내용(Get, Put, Head, Post), 요청 파일 이름, 파일 크기, 처리 결과 등의 데이터가 기록됩니다.
③ Errorlog : 요청한 페이지가 없거나 오류 등이 기록됩니다.
13) btmp 로그(/var/log/btmp)
① 로그인 시도 5번 이상 실패한 내역을 기록합니다.
② 계정명, 접속 콘솔, IP, 시간 등을 기록합니다.
[root@localhost ~]# lastb
admin ssh:notty 192.168.0.10 Tue Dec 1 16:01 - 16:01 (00:00)
admin ssh:notty 192.168.0.10 Tue Dec 1 16:01 - 16:01 (00:00)
admin ssh:notty 192.168.0.10 Tue Dec 1 16:01 - 16:01 (00:00)
admin ssh:notty 192.168.0.10 Tue Dec 1 16:01 - 16:01 (00:00)
admin ssh:notty 192.168.0.10 Tue Dec 1 16:01 - 16:01 (00:00)
14) History(해당 계정의 home directory/.bash_history)
① 접속한 계정에서 사용했던 명령어를 기록합니다.
② root의 경우 ~/.bash_history에 사용한 명령어가 기록됩니다.
[root@localhost ~]# cat ~/.bash_history
ls
ll
du -sh *
ls
shutdown -h now