1) 로그 파일
- /var/log/messages
- 대부분의 로그가 이 파일에 쌓임 (root만 접근 가능)
- /var/log/secure
- 인증과 관련된 접속 프로토콜 telnet, ssh, tcp_wrappers, xinetd (시스템에 로그인한 정보)
- /var/log/dmesg : 시스템이 부팅할 때 출력되었던 로그를 기록
- /var/log/boot.log : 부팅 시 동작하는 데몬들의 동작 성공 여부
- /var/log/mailog
- sendmail, dovecot 등 데몬 시작 시간을 확인
- /var/log/lastlog
- 각 사용자의 마지막 정보가 기록되는 파일
- 바이너리 파일도 lastlog라는 명령어로 확인
- /var/log/wtmp
- 사용자 기록, 시스템을 재부팅한 기록 등의 로그가 쌓이는 파일
- /var/log/btmp
2) 로그 관련 명령어 상세
- last
- 로그인한 정보 출력
- –f : 특정 파일 출력
- -n ? : 최근에 재부팅한 정보 ?개만 출력
- reboot : 재부팅한 기록 출력
- ex) last –f /var/log/wtmp -[날짜] : 로그인에 성공한 접속 기록을 출력
- lastb
- 로그인 실패 정보 출력
- –f : 특정 파일 출력
- –n : 로그인 실패한 특정 개수 기록 출력
- ex) lastb –f /var/log/btmp -[날짜] : 로그인에 실패한 접속 기록을 출력
- lastlog
- 마지막으로 성공한 로그인 기록을 출력하는 명령어
- -t : 특정 기록 확인
- –u 또는 --user 사용자명 : 사용자명의 마지막 기록 확인
3) /etc/(r)syslog.conf 파일
- facility 종류
- cron ; cron, at
- authpriv : ssh, telnet(인증)
- daemon : telnet, ftp
- kern : 커널이 발생한 메시지
- lpr : 프린터 유형
- mail : 메일
- syslog : syslog
- user : 사용자 프로세스
- * : 모든 facility 의미
- priority 종류 : = (해당 수준만), ! (지정한 수준 이외)
- info : 통계, 기본 정보 메시지
- crit : 문제가 생기는 단계
- emerg : 위험한 상황
- warn : 경고(warning 이상)
- action : user (지정한 사용자의 터미널), /dev/tty2 (로컬 시스템의 두 번째 터미널)
- UDP 기반 로그 전송 : @ [HOST]:[PORT]
- TCP 기반 로그 전송 : @@ [HOST]:[PORT]
- 예시
- cron 및 mail 관련 모든 기록은 /var/log/cronmail 파일에 기록
- cron, mail.* /var/log/cronmail
- ssh와 같은 인증 관련 모든 기록은 root 사용자의 터미널로 전송
- 모든 facility에서 발생하는 crit 수준 이상의 메시지를 /var/log/critical 파일에 기록
- 모든 facility에서 발생되는 crit 수준의 메시지만 /var/log/critical 파일에 기록
- *.=crit /var/log/critical
- 메일 관련 모든 기록은 /var/log/maillog 파일에 기록하는데 info 수준의 로그는 제외
- mail.*;mail.!=info /var/log/maillog
- ssh와 같은 인증 관련 모든 메시지는 tcp 기반으로 192.168.12.22 호스트에게 전달하여 기록
- authpriv.* @@192.168.12.22
- 모든 서비스에 대해 alert 수준 이상의 메시지는 IP 주소가 192.168.12.22인 호스트에 UDP 기반으로 전달
- 모든 서비스에 발생하는 메시지 중에 error 수준 이상의 메시지만 /var/log/critical 파일에 기록하는데, 커널이 발생하는 메시지는 제외
- *.error;kern.none 또는 *.err;kern.none
- 모든 서비스에서 발생하는 alert 수준의 메시지만 로그인된 root 사용자의 터미널로 전송
- *.=alert root 또는 *.=alert :omusrmsg:root
- 모든 서비스에 대해 가장 최고 수준의 위험한 상황이 발생한 경우 모든 사용자의 터미널로 관련 로그 전송
- *.emerg * 또는 .emerg :omusrmsg: 또는 *.panic * 또는 .panic :omusrmsg: </aside>
4) 로그 순환 (logrotate)
- weekly : 로그파일을 일주일마다 로테이트
- daily : 로그파일을 하루 주기로 로테이트
- monthly : 로그파일을 월 주기로 로테이트
- rotate ? : 최대 ?번까지 rotate하고 ?주동안 백업한 로그 유지
- create : 로테이트를 한 후, 비어있는 로그파일을 생성하도록 설정
- (create [허가권] [소유권] [소유그룹])
- minsize ? : 최소 크기 지정 (ex) 1M, 1K)
- 로그인에 실패한 사용자의 정보가 저장되는 로그파일은 일주일 단위로 로테이션을 실행함. 단, 파일의 크기가 1MB에 도달하면 그 이전이라도 로테이션을 실행함. 생성되는 파일을 소유자 root, 소유그룹 utmp로 지정하며, root 사용자만 읽기 및 쓰기가 가능하도록 설정함
/var/log/btmp {
weekly
create 0600 root utmp
minsize 1M
rotate 5
}