Linux 로그 경로 정리 · 36/50 · Part 4. journald / rsyslog / auditd

선행 학습 → 35. rsyslog 설정 파일 분석
이번 글 → 원격 Syslog와 중앙 로그 서버
이어서 → 37. auditd 구조 이해

1. 들어가며

로컬 로그의 가장 큰 약점은 root를 가진 공격자가 지울 수 있다는 점입니다. 로그가 생성되는 즉시 다른 서버로 복사해 두면, 로컬 로그가 지워져도 중앙 서버에 사본이 남습니다. 이것이 중앙 집중형 로그 수집의 핵심 목적이며, 44편 실습에서 실제로 지워진 로그를 중앙 사본으로 복원합니다.

핵심 요약

  • 목적: 무결성(변조 대비) · 가용성(서버 장애 대비) · 상관분석(여러 서버 통합)
  • 전송: UDP @ (유실 가능) < TCP @@ < RELP (애플리케이션 수준 확인) / 민감 로그는 TLS
  • 원격 서버 장애 대비: 액션 큐 + 디스크 보조 + 무한 재시도

2. 핵심 개념

방식문법장점단점
UDP*.* @192.0.2.10:514단순, 부하 적음유실·순서 뒤바뀜, 위조 쉬움
TCP*.* @@192.0.2.10:514 / omfwd protocol="tcp"연결 기반연결 끊김 시 버퍼 필요
RELPomrelp수신 확인 → 유실 최소양쪽 모듈 필요
TLSgtls 드라이버 (StreamDriver)기밀성·서버 인증인증서 관리

3. 로그 생성 구조

중앙 집중형 로그 수집

Linux Server (web01)
  rsyslog ── authpriv.*;cron.*;*.warning ── action queue (LinkedList + disk) ──┐
     │                                                                       │ TCP 514 (TLS 권장 6514)
     └─ 로컬 파일 (/var/log/secure …)                                          ▼
                                                                  Central Log Server (192.0.2.10)
                                                                    imtcp ── /logs/%HOSTNAME%/secure
                                                                       └──▶ SIEM (Wazuh / ELK)

4. 실제 로그 경로

위치경로
송신 설정/etc/rsyslog.d/90-forward.conf (별도 파일로 관리)
송신 큐 파일/var/lib/rsyslog/fwd_central* (원격 장애 시 생성)
수신 설정중앙 서버 /etc/rsyslog.d/10-receive.conf
수신 저장중앙 서버 /var/log/remote/<host>/<program>.log 등 템플릿으로 지정

5. 명령어 실습

송신 측 설정 (Rocky Linux 9.8 실습 환경에 실제로 작성해 검증한 파일):

# /etc/rsyslog.d/90-forward.conf
# 인증/권한 + 경고 이상 이벤트를 중앙 로그 서버로 TCP 전송 (디스크 큐로 유실 방지)
authpriv.*;cron.*;*.warning action(
    type="omfwd" target="192.0.2.10" port="514" protocol="tcp"
    queue.type="LinkedList" queue.filename="fwd_central"
    queue.maxDiskSpace="1g" queue.saveOnShutdown="on"
    action.resumeRetryCount="-1"
)

수신 측 설정 예시 (중앙 서버, 예시 구성):

module(load="imtcp")
input(type="imtcp" port="514" ruleset="remote")
template(name="PerHost" type="string" string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")
ruleset(name="remote") { action(type="omfile" dynaFile="PerHost") }
# 문법 검증 → 재시작 → 연결 확인
rsyslogd -N1
systemctl restart rsyslog
ss -tnp | grep ':514'
logger -p authpriv.notice -t fwdtest "forward test $(hostname)"   # 중앙 서버에서 수신 확인

# 방화벽 (수신 측)
firewall-cmd --add-port=514/tcp --permanent && firewall-cmd --reload     # Rocky
# ufw allow from 10.0.0.0/24 to any port 514 proto tcp                   # Ubuntu

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — 원격 전송 설정 파일 (예시 구성)

위 이미지는 Rocky Linux 9.8 실습 환경의 원격 전송 설정 파일입니다(전송 대상 서버는 문서용 IP 192.0.2.10이므로 실제 수신은 없는 예시 구성).

같은 실습 환경에서 실제로 실행한 문법 검증 결과입니다. 정상 설정과, 파라미터 이름에 일부러 오타를 낸 사본을 비교했습니다.

[실제 실행 결과 · Rocky Linux 9.8 · rsyslog 8.2510]
$ rsyslogd -N1
rsyslogd: version 8.2510.0-2.el9_8.2, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

$ rsyslogd -N1 -f /tmp/test.conf        # protocol= 을 protocl= 로 바꾼 사본
rsyslogd: error during parsing file /tmp/bad.conf, on or before line 7: parameter 'protocl' not known -- typo in config file?

7. 로그 필드 분석

설정의미없으면
protocol="tcp"연결 기반 전송UDP로 유실 가능
queue.type="LinkedList" + queue.filename메모리 큐 + 디스크 보조원격 장애 시 로그 유실
queue.saveOnShutdown="on"종료 시 큐 저장재부팅 시 미전송분 소실
action.resumeRetryCount="-1"무한 재시도몇 번 실패 후 포기
selector authpriv.*;cron.*;*.warning전송 범위범위 밖 로그는 로컬에만

8. 보안관점

정상의심
중앙 서버에 모든 서버 로그가 연속 수신특정 서버 수신 중단 (전송 설정 삭제·방화벽 변경)
$fromhost-ip 와 $hostname 일치불일치 → 위조 로그 주입
큐 파일 없음(정상 전송)큐 파일 누적 → 전송 장애

중앙 서버는 로그 원본 보관소이므로 일반 서버보다 강한 접근통제가 필요합니다(관리자 분리, 쓰기 전용 수집 계정, 불변 스토리지 43편).

9. SOC 관점

  • 중앙 로그 서버는 SIEM의 수집 계층이 된다 (46편).
  • Detection: "호스트별 수신 이벤트 0건 N분 지속" 헬스 Alert.
  • Investigation: 로컬과 중앙 사본 비교로 변조 구간 확인 (44편 실측).

10. 실습 체크리스트

[ ] 중앙 수집 3가지 목적 설명
[ ] UDP / TCP / RELP / TLS 차이 설명
[ ] omfwd + 디스크 큐 설정 작성
[ ] rsyslogd -N1 으로 검증 (오타 탐지 확인)
[ ] 수신 측 호스트별 저장 템플릿 이해
[ ] 수신 중단 헬스 모니터링 설계

11. 핵심 정리

  • 중앙 수집은 로컬 로그 삭제·변조에 대한 가장 현실적인 대비책이다.
  • 보안 로그는 TCP 이상(가능하면 RELP/TLS)으로 전송한다.
  • 디스크 보조 큐와 무한 재시도로 원격 장애 시 유실을 줄인다.
  • 설정은 rsyslogd -N1 로 검증하며 오타도 여기서 잡힌다.
  • 중앙 서버 수신 중단 자체를 탐지 대상으로 삼는다.

12. 다음 편 연결

구분글
◀ 이전 글35. rsyslog 설정 파일 분석
▶ 다음 글37. auditd 구조 이해
시리즈Linux 로그 경로 정리 전체 보기
선행 시리즈리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글