rsyslog로 여러 대의 기기의 로그를 원격 서버에 저장

3184 단어 rsyslog
rsyslog로 원격 로그인
여러 개의 리눅스 기기의 로그를 총괄적으로 보관하고자 할 때 rsyslog를 사용하여 추가된 중간부품을 가져오지 않는 상황에서 로그의 일원 관리가 가능하다는 것을 확인합니다.
컨디션
CentOS 8*2 (rsyslog client 및 rsyslog server)
rsyslog: OS를 설치할 때 표준 설치
다이어그램

rsyslog 동작 확인
rsyslog가 실행 중인지 확인(Active 항목은 active)
[root@base ~]# systemctl status rsyslog
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-04-30 22:53:07 KST; 2min 54s ago
rsyslog 동작이면journalctl 명령을 통해 로그를 확인할 수 있습니다
journalctl --no-pager
rsyslog 설정 (rsyslog 서버 측 (로그 수신 측)
rsyslog 설정 파일을 열고 수정 사항을 추가합니다
vi /etc/rsyslog.conf
TCP 프로토콜을 통해 514 포트에서 로그 입력을 받아 주석에 기재되어 주석을 취소합니다
# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514"
연결 소스를 지정하는 CIDR은 다음과 같습니다.
AllowedSender TCP, 127.0.0.1, 192.168.1.0/24,10.240.0.0/24
설정 반영하기
systemctl restart rsyslog
nmap을 사용하여 514 포트가 비어 있는지 확인
[root@base ~]# nmap localhost
PORT     STATE SERVICE
~略
514/tcp  open  shell
물론 ss와 넷stat을 통해서 확인할 수 있습니다.
다른 서버에서 원격으로 확인하는 경우도 있기 때문에 nmap을 이용하고 있습니다
[root@base ~]# ss -ln4 | grep 514
tcp   LISTEN  0       25                   0.0.0.0:514            0.0.0.0:*     
rsyslog 설정 (rsyslog 클라이언트 측 (로그 발송 측)
rsyslog 설정 파일 편집
vi /etc/rsyslog.conf
authpriv 시리즈와 관련된 로그를 편집하여rsyslog 서버에 보내기
/var/log/secure에 출력된 로그는rsyslog에 전송됩니다. (예: ssh 로그)
여기 rsyslog 서버의 IP는 10.240.0.1로 설정되어 있습니다
authpriv.*                                              @@10.240.0.1:514
설정 반영하기
systemctl restart rsyslog
서버 측 로그 확인
tail 명령 등 서버 측의/var/log/secure 출력 로그를 감시해 보십시오
[root@base ~]# tail -f /var/log/secure
고객 측면에서 authpriv와 관련된 적당한 명령을 시도해 보십시오
authpriv 관련 로그를 출력하기 위해 가상의 사용자로 ssh 접근을 시도합니다.
[root@controller-0 ~]# ssh testuser@localhost
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
서버 쪽의terminal로 돌아가면 로그 출력은 다음과 같습니다
[root@base ~]# tail -f /var/log/secure
Apr 30 05:22:28 controller-0 sshd[5859]: Invalid user testuser from ::1 port 44604
Apr 30 05:22:28 controller-0 sshd[5859]: input_userauth_request: invalid user testuser [preauth]
Apr 30 05:22:28 controller-0 sshd[5859]: Connection closed by ::1 port 44604 [preauth]
물론journalctl 명령을 사용하면 더 자세한 정보를 확인할 수 있습니다
예를 들어 출력원의 호스트 이름 (여기는 controller-0) 등도 출력됩니다.
Apr 30 05:22:28 controller-0 sshd[5859]: Invalid user testuser from ::1 port 44604
Apr 30 05:22:28 controller-0 sshd[5859]: input_userauth_request: invalid user testuser [preauth]
Apr 30 05:22:28 controller-0 sshd[5859]: Connection closed by ::1 port 44604 [preauth]

좋은 웹페이지 즐겨찾기