[리눅스마스터1급] 2.3.1 시스템 분석

cateto·2022년 3월 5일
0

li-master1

목록 보기
12/27
post-thumbnail

2.리눅스 시스템 관리 / 3.시스템 및 보안 관리 / 2.3.1 시스템 분석

솔직히 이쪽은 써본 적이 거의 없어서..... ㅎㅎㅎ 외워야지

시스템 로그 분석 및 관리

개요

시스템에서 일어나는 모든 사건이나 이벤트는 각 서비스 별로 기록되는데 이러한 기록들을 로그(log)라고 부른다.

rsyslog

리눅스 초기의 syslog가 발전된 버전. rsyslogd 데몬이 동작하면서 로그를 기록하고, 관련 환경 설정은 /etc/rsyslog.conf 파일을 통해 제어한다.

  1. 주요 파일
파일명설명
/etc/rsyslog.confrsyslogd 데몬의 환경설정 파일
/etc/sysconfig/rsyslogrsyslogd 데몬 실행과 관련된 옵션 설정되는 파일
/usr/sbin/rsyslogd실제 rsyslogd 실행 명령
/usr/lib/systemd/system/rsyslog.servicesystemctl 명령에 의해 제어되는 유닛 파일
  1. 주요 동작 명령어
    systemctl stop rsyslog
    systemctl start rsyslog
    systemctl -l status rsyslog
    systemctl enable rsyslog

  2. /etc/rsyslog.conf 파일

logrotate

로그파일이 계속 쌓이면서 크기가 커질 때 이를 방지하기위해 로그 파일을 여러개로 분할해주는 프로그램. 로그 파일의 자동 로에티션, 압축, 제거를 지원한다.

logrotate [option] config_file
예) logrotate -f /etc/logrotate.conf

/etc/logrotate.conf의 주요 설정
1) weekly : 1주일 단위로 로테이트 (weekly/daily/monthly/yearly)
2) rotate 4 : 최대 4번 로테이트 (5개의 파일)
3) create : 로테이트 한 후 비어있는 로그파일을 생성
4) dateext : 로테이션 로그 파일에 해당 날짜를 덧붙여 생성
5) compress : 로테이트 한 후에 생성된 로그 파일에 대해 압축
6) include /etc/logrotate.d : 설정된 파일에 대해서도 로테이트를 적용
7) nomissingok : 로그 파ㅣㅇㄹ이 조재하지 않으면 에러메시지 출력 (default)
8) missingok : 존재하지 않는 경우에 에러메시지 미출력

예) 크기가 100k 일때, mail 항목은 로그 파일이 없을 때 지정된 곳으로 메일을 보낸다. postrotate~endscript는 로그 파일이 로테이트 된 후 실행할 명령어이다.

/var/log/httpd/access.log {
	rotate 5
    mail posein@gmail.com
    size 100k
    missingok
    dateext
    postrotate
    	/usr/bin/killall -HUP httpd
    endscript
}

로그 관련 파일

주요 파일

/var/log/messages

시스템에서 발생하는 표준 메시지가 기록되는 파일. 대부분이 여기 쌓이고 root만이 읽을 수 있도록 설정되어 있다.

/var/log/secure

인증을 기반으로 접속과 관련된 로그가 기록. 보통 login(telnet, ssh), tcp_wrappers, xinetd 관련 로그가 쌓인다.

/var/log/dmesg

시스템이 부팅할 때 출력되었던 로그가 기록되는데, 보통 커널 부트 메시지 로그

/var/log/maillog

sendmail, dovecot 등과 같이 메일 관련 작업이 기록되는 로그파일.

/var/log/xferlog

FTP 접속과 관련된 작업이 기록되는 파일

/var/log/cron

cron 관련 정보가 기록

/var/log/boot.log

부팅 시 발생되는 메시지가 기록되는 파일. 보통 데몬 관련 정보가 기록된다.

/var/log/lastlog

telnet이나 ssh를 이용해서 접속한 사용자의 마지막 정보가 기록 (바이너리 파일) lastlog로 확인.

/var/log/wtmp

콘솔, telnet, ftp 이용하여 접속한 사용자 기록. 시스템 재부팅 기록이 쌓이는 파일. (바이너리 파일) lastlog로 확인가능.

/var/log/btmp

접속이 실패한 경우를 기록 (바이너리 파일) lastb로 확인가능.

관련 명령어

last

사용자의 로그인 정보, 재부팅 정보는 /var/log/wtmp 파일에 저장하는데 바이너리 파일이다. 이 파일의 내용을 last로 출력할 수 있다.
last [option] [사용자명] [tty number]

예) last

/var/log/wtmp 가 만들어진 관련 정보를 출력한다.

last posein

posein 사용자의 로그인 정보를 출력한다.

last reboot

시스템 재부팅 된 정보를 출력한다.

last -1 reboot

최근에 리부팅한 정보 하나만 출력한다.

last -f /var/log/wtmp.1

/var/log/wtmp.1 파일의 정보를 출력한다.

last 2

last tty2와 ㄱ동일한 명령으로 /dev/tty2로 로그인한 정보를 출력한다.

lastlog

각각의 사용자가 마지막으로 로그인한 정보를 출력해준다. /var/log/lastlog의 내용을 출력한다.

lastlog [option]

예) lastlog

모든 사용자의 최종 로그 기록을 출력한다.

lastlog -u posein

posein 사용자의 최종 로그 기록을 출력

lastlog -t 3

최근 3일 내에 로그인한 사용자의 기록을 출력

lastlog -b 3

최근 3일 이전에 로그인한 사용자의 기록을 출력

lastb

last와 반대되는 개념으로, 로그인 실패 정보를 /var/log/btmp에 기록한다. root만 사용가능하다.
lastb [option] [사용자명]
예) lastb

로그인 실패 정보를 출력한다.

lastb posein

posein 사용자의 로그인 실패 정보를 출력한다.

lastb -3

가장 최근에 로그인에 실패한 3개 항목을 출력한다.

lastb -f /var/log/btmp.1

/var/log/btmp.1의 로그 기록을 출력한다.

lastb 3

lastb tty3와 같은 명령어로 /dev/tty3에서 로그인 실패한 기록을 출력한다.

dmesg

커널링 버퍼의 내용을 출력하고 제어하는 명령이다.
dmesg [option]

예) dmesg

커널 링 버퍼에 저장된 메시지를 출력한다.

dmesg -c

커널 링 버퍼에 저장된 메시지를 전부 지운다.

logger

명령행에서 로그 시스템에 메시지를 전송할 때 사용하는 명령으로 기본적으로 /var/log/message 파일에 기록된다.

logger [option] [message]
예)logger CentOS 7

/var/log/messages 파일에 'CentOS7'이라는 메시지가 저장된다.

logger -i -f /var/log/messages 'Hello Linux'

/var/log/messages 파일에 'Hello Linux'라는 메시지가 저장되며 PID가 기록된다.

logger -i -t hack 'Success!'

/var/log/messages 파일에 메시지가 저장되는데 PID와 hack이라는 태그가 덧붙여진다.

profile
Curious for Everything

0개의 댓글