자격증/리눅스마스터 1급

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

ahgle 2023. 4. 26. 21:33
728x90
반응형

시스템 분석

 

1./etc/rsyslog.conf : rsyslogd 데몬 환경 설정 파일

 

*rsyslog 데몬: /etc/rsyslog.conf 설정 파일을 기반으로 서비스 별 로그 파일을/var/log 디렉터리에 생성함.

초기에는 syslogd 데몬이 /etc/rsyslog.conf 설정 파일을 기반으로 /var/log 디렉터리에 서비스 별 로그 파일을 생성하였으나,

최근 리눅스 배포판에서는 rsyslogd 데몬이 이 작업을 수행한다.

 

rsyslog

  • syslog의 성능을 대폭 강화한 패키지
  • 다양한 기능 지원
  • 멀티 스레드(Multi-Thread) 지원
  • TCP 지원
  • SSL 및 TLS 지원
  • RELP(Reliable Event Logging Protocol) 지원
  • 메세지  일부 필터링S
  • 출력 포맷 제어

 

기본 구성 형식

facility.priority      action

-facility : 일종의 서비스를 의미, 메세지를 발생시키는 프로그램의 유형.

-priority : 위험의 정도를 나타내며 설정한 수준을 포함해서 높으면 메세지를 보냄.

  -설정 앞에 =을 사용할 경우, 해당 수준(priority)의 위험도와 같은 경우에만 메세지를 기록

  -설정 앞에 !을 사용할 경우, 해당 수준(priority)만 제외시킬 때 사용

-action : 메세지를 보낼 목적지나 행동들에 관한 설정, 보통 파일명이나 아이디를 적는다.

 

나열은 facility는 콤마(,) 사용, facility.priority의 조합은 세미콜론(;)을 사용한다.

 

ex)facility가 uucp, news 일 때 crit 이상의 위험 정도일 때 발생하는 로그는 /var/log/spooler에 기록.

 

facility의 종류

 -authpriv : ssh와 같이 인증이 필요한 프로그램 유형이 발생한 메세지 / 사용자 추가 시에도 발생

 -mail : mail 시스템이 발생한 메세지

 -news : 유즈넷 뉴스 프로그램이 발생한 메세지

 -uucp : UUCP(UNIX to UNIC Copy Protocol) 시스템이 발생한 메세지

 - * : 모든 facility

 

priority 순서 : emeg > alert > crit > err > warning > notice > info > debug

priority 종류 

 -none : 지정한 facility 제외 / 보통 앞에 다른  facility에 대한 설정을 하고 ';'뒤에 특정 facility를 제외.

 -info : 통계, 기본 정보 메세지

 -warning : 경고 메세지

 -crit : 크게 급하지는 않지만 시스템에 문제가 생기는 단계의 메세지

 -alert : 즉각적인 조정이 필요한 경우

 -emerg : 모든 사용자들에게 전달해야 하는 위험한 상황 / 가장 높은 수준의 priority

 

action의 종류

 -user : 지정한 사용자가 로그인한 경우, 해당 사용자의 터미널로 전달

 -/dev/tty2 : 로컬 시스템의 두 번째  터미널로 저장

 -file : '/'로 시작하는 파일의 절대 경로 기입

 -@host : 지정한 호스트로 메세지를 UDP 기반으로 전달

 -@@host : 지정한 호스트로 메세지를 TCP 기반으로 전달

 - * : 현재 로그인되어있는 모든 사용자의 화면으로  전달

 

#vi /etc/rsyslog.conf

*.emeg    root,idhuser : 모든 서비스에 대해 emerg(최고 수준) 문제 발생 시 root와 idhuser 사용자의 터미널로 로그를 전송

mail.=error    /var/log/mial_error : 메일 서비스에서 발생하는 error 수준의 메세지만 기록

authpriv.*    /dev/tty2 : 인증 서비스 관련 모든 로그를 로컬 시스템의 두 번째 터미널인 /dev/tty2로 전달

authpriv.*    @@192.168.12.22 : 인증 관련 모든 메세지를 해당 호스트에게 TCP 기반으로 전달

mail.*;mail.!=info    /var/log/maillog : 메일 관련 모든 정보 중 info 수준의 로그는 제외하고 기록

uucp,news.crit    /var/log/news : uucp 및 news에서 발생하는 crit 수준 이상의 메세지를 기록

cront.*;mail.*    /var/log/cronmail : cron 및 mail 관련 모든 기록은 /var/log/cronmail 파일에 기록

 

 

2.last : 사용자의 로그인 정보, 재부팅한 정보등을 출력한다. /wtmp에 기록된다.

# last reboot : 시스템 재부팅 정보만 출력

# last 3 : 로컬 시스템의 세 번째 터미널 창(/dev/tty3)의 로그인 성공 정보를 출력

 

3.lastlog : 각각의 사용자가 마지막으로  로그인한 정보 출력

   -u 사용자명 : 특정 사용자에 대한 정보만 출력(--user)

   -t 시간(일) 지정 옵션

   #lastlog -t 3 -u ihduser : 최근 3일 동안ihduser의 마지막 로그인 기록을 확인

 

4.lastb : 로그인 실패 정보를 출력 (last 로그와 반대 라고 생각.) /btmp에 기록된다.

   -f : 파일 지정

   #lastb -f /var/log/btmp-20200331 : 지난 로그 파일의 기록 확인

 

5./etc/logrotate.conf : 시스템과 관련된 기본적인 로그 설정을 제어하는 환경 설정 파일

  -daily, weekly, monthly, yearly : 로그 파일 로테이트 주기 설정

  -missingok : 로그 파일이 존재하지 않는 경우 에러 메세지 출력 없이 다음 파일로 이동 / 기본 값은 nomissingok

  -rotate N : 최대 N번까지 로테이트하도록 설정 / N이 4라면 기본 logfile, logfile.1, logfile.2, ..., logfile.4 형태로 생성

  -create : 로테이트한 후 비어있는 로그 파일을 생성하도록 설정 / 0000 허가권 설정 가능

  -dateext : 로테이션으로 생성되는 로그 파일에 해당 날짜를 덧붙여서 생성 / "-YYYYMMDD " 형태로 추가한다.

 

#vi /etc/logrotate.conf

/var/log/wtmp {

   missingok

   weekly

   create 0600 root btmp

       minsize 1M

   rotate 5

}

 

-로그인 관련 로그는  일 주일 단위로 로테이션을 실행

-로그파일이 존재하지 않아도 에러 메세지 없이 다음 파일로 이동

-파일 생성 시 허가권 값은 0600, 소유자는 root, 소유 그룹은 utmp, 파일 크기가 1M가 되면 즉시 로테이션을 실행

-로테이션으로 생성되는 백로그 파일은 5개

 

6./var/log : 로그 정보 관련 파일들을 포함하는 디렉터리

-/var/log/dmesg : 리눅스가 부팅될 때 출력되는 시스템 정보 메세지를 기록

-/var/log/secure : 시스템에 사용자의 원격 접속 및 원격 로그인 등 인증 관련 정보를 기록

-/var/log/boot.log : 리눅스 부팅 시 보이는 서비스 데몬들의 부트와 관련된 정보를 기록

-/var/log/messages : 시스템 관련 중요한 이벤트들을 저장

-/var/log/maillog : sendmail 및 dovecot데몬 시작 기간 등 관련 정보를 저장

 

7.logger : 임의의 로그를  /var/log/messages 파일에 기록하는 명령어

   -i : 각 라인에 logger 프로세스의 PID를 같이 기록

   -s : 표준 에러 메세지도 같이 기록

   -f : 지정한 파일에 로그를 기록

   -p : 우선 순위(priority)도 같이 기록

   #logger -i -f /var/log/messages 'Hello, ahgle'

 

 

 

연습 문제 풀이

 

문제 1. 다음은 시스템 로그 관련 설정을 하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. 모든 서비스(facility)에 대해 가장 최고 수준(priority)의 위험한 상황인 경우에 root 및 ihduser 사용자의 터미널로 관련 로그를 전송한다.
( 1 )     ( 2 )

나. 메일 서비스(facility)에서 발생하는 error 수준의 메세지만 /var/log/mail_error에 기록한다.
( 3 )    /var/log/mail_error

다. 인증 서비스 관련 로그는 로컬 시스템의 두 번째 터미널로 전송한다.
authpriv.*   ( 4 )

 

조건

  • (1), (3)번은 facility.priority 형식으로 기입한다.
  • (2), (4)번은 관련 설정(action)을 기입한다.

 

정답

(1) : *.emerg

(2) : root, ihduser

(3) :  mail.=err

(4) : /dev/tty2

 

 

문제 2. 다음은 시스템 로그 정보를 명령어를 사용해서 확인하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. ihduser 사용자의 로그인 정보를 출력한다.
#( 1 ) idhuser

나. ihduser 사용자의 최종 접속한 로그 기록만 출력한다.
#( 2 ) 

다. ihduser 사용자의 로그 실패 기록을 출력한다.
#( 3 )

라. 가장 최근에 로그인에 실패한 3개의 기록을 출력한다.
#( 4 )

 

조건

  • (1)번은 관련 명령어를 기입하고, 만약 관련 옵션이 필요한 경우에는 옵션도 한 번에 기입한다(ex : ls, ls -al)
  • (2)~(4)번은 관련 명령어 또는 관련 명령어 및 옵션의 조합으로 한 번에 기입한다.

 

정답

(1) : last

(2) : lastlog -u

(3) : lastb

(4) : lastb -n 3

 

 

문제 3. 다음은 시스템 로그 관련 설정을 하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

ssh와 같은 인증 관련 모든 메세지는 TCP 기반으로 192.168.12.22 호스트에게 전달하여 기록한다.
( 1 )         ( 2 )

 

조건

  • (1)번은 facility.priority 형식으로 기입한다.
  • (2)번은 action을 기입한다.

 

정답

(1) : authriv.*

(2) : @@192.168.12.22

 

 

문제 4. 다음은 시스템 로그 관련 설정을 하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. mail 관련된 모든  메시지는 /var/log/mail에 기록하는 데, info 수준의 로그는 제외한다.
( 1 ) /var/log/maillog

나. uucp 및 news에서 발생하는 crit 수준 이상의 메시지는 /var/log/news에 기록한다.
( 2 ) /var/log/news

 

조건

  • (1)~(2)번은 facility.priority 형식으로 기입한다.

 

정답

(1) : mail.*;mail.!=info

(2) : uucp,news.crit

 

 

문제 5. 시스템에 접속하는 사용자가 너무 많아서 특정 로그 파일의 로테이션 관련 설정을 변경하려고 한다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. 로테이션 설정 파일을 편집한다.
#vi ( 1 )

나. 로그인에 성공한 사용자 및 재부팅한 내용이 저장되는 로그 파일은 일 주일 단위로 로테이션을 실행한다.
    또한 로그 파일이 존재하지 않는 경우에 에러 메세지를 출력하지 않고 다음 파일로 이동한다.
    ( 2 )    {
    	( 3 )
        ( 4 )
        create 0600 root utmp
        rotate 5
  }

 

조건

  • (1)~(2)번은 해당 파일명을 절대 경로로 기입한다.
  • (3)~(4)번은 관련 설정을 하나씩 기입한다. (순서 무관)

 

정답

(1) : /etc/logrotate.conf

(2) : /var/log/wtmp

(3) : weekly

(4) : missingok

728x90