2022. 2. 17. 01:35ㆍ리눅스마스터 1급 - 필기/리눅스 시스템 관리
시스템에서 있었던 모든 이벤트들은 기록이 되는데 이렇게 기록된 것을 로그라고 합니다.
리눅스에서는 로그 기록 관련 패키지로 rsyslog를 사용하고 있습니다. (리눅스 초기에는 syslog)
rsyslog는 rsyslogd 데몬이 /etc/rsyslog.conf 설정 파일을 기반으로 /etc/log 디렉터리 내에 로그 파일을 생성 합니다.
systemctl start/stop rsyslog
- rsyslog 시작/중단
설정 파일(/etc/rsyslog.conf)에 대해 자세히 살펴 보겠습니다.
facility : 서비스를 의미하며 메시지를 발생 시키는 유형을 알 수 있습니다.
- cron : cron, at과 같은 예약? 관련 프로그램이 발생시키는 메시지
- auth, security : 인증 프로그램이 발생시키는 메시지(로그인)
- authpriv : ssh, 사용자 추가와 같은 인증을 필요한 프로그램 유형이 발생한 메시지
- * : 모든 facility를 의미합니다.
priority : 위험의 정도를 의미합니다. 설정한 수준보다 높아야 메시지를 보냅니다.
=는 해당 레벨 위험도와 같은 경우에만 메시지를 보내고 !는 제외시킬때 사용합니다.
- none : 지정한 facility를 제외시킵니다.
- debug : 프로그램을 디버깅할 떄 발생하는 메시지입니다.
- notice : 주의는 필요하나 에러는 아닙니다.
- warning, warn : 주의가 필요한 경고 메시지입니다.
action : 메시지를 보낼 목적지나 행동에 관한 설정입니다.
- file : 지정한 파일에 로그를 기록합니다.
- @host : 지정한 호스트로 메시지를 전달합니다.
- user : 지정한 사용자가 로그인 한 경우 해당 사용자의 터미널로 전달합니다. :omusrmsg:사용자 형식으로 사용합니다.
- * : 현재 로그인한 모든 사용자의 화면으로 전달합니다.
facility.priority action 형식으로 사용합니다.
*.emerg :omusrmsg:root,keum : 모든 emerg 수준 이상의 facility가 발생하면 root 사용자와 keum 사용자의 화면으로 메시지를 전달합니다.
로그 파일은 시스템을 이용할수록 끊임없이 내용이 추가되기 때문에 파일의 크기도 점점 커질 수 밖에 없습니다. 이를 방지하기 위해 로그 파일을 여러 개로 분할 시켜주는 프로그램인 logrotate 가 있습니다.
logrotate [옵션] 설정파일 형식으로 사용이 가능하지만 logrotate는 cron에 의해 주기적으로 실행 되고 있습니다.
시스템 관련 로그 설정은 /etc/logrotate.conf에서 제어하고 응용 프로그램은 /etc/logrotate.d 디렉터리 내에 위치하여 로그 파일들을 관리합니다.
/etc/logrotate.conf : 시스템과 관련된 기본적인 로테이트 설정 파일입니다.
weekly : 로그 파일을 일주일 주기로 로테이트 합니다.
rotate 4 : 최대 4번 까지 로테이트를 합니다.
create : 로테이트 실행 직후 빈 로그 파일을 생성합니다.
/var/lib/logrotate.status : 각 로그별로 로테이션된 날짜가 기록된 파일입니다.
로그 관련 주요 파일
/var/log/message : 시스템에서 발생하는 메시지가 기록되는 파일이며 대부분의 로그가 여기에 기록됩니다.
/var/log/secure : 인증에 기반한 로그가 기록되는 파일입니다.
/var/log/maillog : 메일 관련 작업이 기록되는 로그 파일입니다.
/var/log/xferlog : FTP 접속과 관련된 작업이 기록되는 로그 파일로 14개의 영역으로 구성되어 있습니다.
- current-time : 접속한 현재 시간을 나타냅니다. "DDD MMM dd hh mm ss YYYY"
- transfer-time : 전송된 총 시간을 초 단위로 나타냅니다.
- remote-host : 원격 호스트의 IP가 기록됩니다.
- file-size : 전송 된 크기를 나타냅니다.
- filename : 파일 이름을 나타냅니다. (절대 경로)
- transfer-type : 전송 형태를 a 혹은 b로 나타냅니다. a = ascii, b = binary
- special-action-flag : 특정한 action이 발생하는 것을 문자로 나타냅니다.
C = 파일 압축된 경우, U = 파일이 압축되지 않은 경우, T = tar로 묶여진 경우, _ = 아무런 action이 발생하지 않은 경우
- direction : 전송된 방향에 대한 표시로 o는 outgoing으로 다운로드된 경우이고 i는 incoming으로 업로드된 경우입니다.
- access-mode : 사용자가 어떠한 형태로 로그인 했는지를 나타냅니다. a = anonymous(익명), g = guest(패스워드를 소유한 user), r = real(인증한 사용자)
- username : 로컬 사용자의 ID를 나타냅니다.
- service-name : 발생되어지는 service의 이름이 적히며 보통 ftp로 기록됩니다.
- authentication-method : 어떠한 인증 방법을 사용했는지 표시합니다. 0은 none(기본 인증), 1은 RFC931 Authenticatin
- authentication-user-id : 인증 방법에 의해 사용자 계정이 기록되며 authentication-method와 연계되어 0은 *로 표시됩니다.
- completion-status : 전송 상태를 하나의 문자로 표시합니다. c = complete(완전한 전송), i = incomplete(불완전한 전송)
/var/log/lastlog : telnet이나 ssh를 통해 접속한 사용자들의 마지막 정보가 기록되는 파일입니다. lastlog 명령어로 확인 할 수 있습니다. (바이너리 파일입니다.)
/var/log/wtmp : telnet, ftp 등으로 접속한 사용자의 기록과 시스템 재부팅 로그가 기록되는 파일입니다. last 명령으로 확인 할 수 있습니다. (바이너리 파일입니다.)
/var/log/btmp : wrmp와는 반대로 접속에 실패한 경우를 기록합니다. lastb 명령으로 확인 할 수 있습니다. (바이너리 파일입니다.)
dmesg : 커널의 동작과 관련된 메시지를 기록하는 커널 링 버퍼의 내용을 출력하고 제어하는 명령어입니다.
'리눅스마스터 1급 - 필기 > 리눅스 시스템 관리' 카테고리의 다른 글
시스템 보안 및 관리 - SSH (0) | 2022.02.16 |
---|---|
시스템 보안 및 관리 - 보안 도구 (0) | 2022.02.15 |
시스템 보안 및 관리 - 파일 시스템 보안 (0) | 2022.02.13 |
시스템 보안 및 관리 - 시스템 백업 (0) | 2022.02.13 |
장치 관리 - 주변장치 관리 (0) | 2022.02.13 |