📘 Day 15 (2025.07.09.WED) - rsyslog, syslog 페이지 구축
🖥️ 95번 백업 서버 (backup.geumsol.kr - 192.168.0.95)
CentOS 기반 서버에서 rsyslog를 사용해 GNS 내부 로그를 수집하여 저장합니다.
🔧 Xshell - @IP100
cat /etc/rsyslog.conf | grep @192.168.0.95
# 포트 번호 514 → rsyslog 동작 확인
🔐 UTM 로그 설정(로깅 및 보고 - 로그 설정)
- 로컬 로깅: 디스크 공간이 부족하지 않으면 자동 삭제 안 됨
- 제한선: 디스크 임계값 이하일 때 추가 동작 설정 가능
원격 Syslog 서버 설정 필요
1.1 : Ubuntu2 / 1.3 : Ubuntu1 → 1.3에 DB 설치 필요
📡 로그 전달 → 데이터베이스 저장
514 포트 통해 로그 전달, rsyslog가 DB에 저장되도록 설정 필요
📁 Syslog 페이지 구축
- public_html/syslog/index.php 생성
- header.php에 Syslog 메뉴 추가
🔑 Kali 설정 (ssh -p 2222 master@geumsol.kr)
nano /etc/rsyslog.conf
# Send logs to remote syslog server over UDP
auth,authpriv.* @192.168.1.3:514
*.* @@192.168.1.3:514
netstat -ant | grep 514
systemctl restart rsyslog
📥 로그 수신 측 설정 (ssh -l master geumsol.kr -p 22003)
nano /etc/rsyslog.conf
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
systemctl restart rsyslog
systemctl status rsyslog
netstat -ant | grep 514
📂 로그 확인
cd /var/log
tail -f syslog
🎯 미션 1: DB에 로그 저장
MySQL 설치 후 rsyslog 설정:
show databases;
create database rsyslog;
CREATE USER 'rsyslog'@'192.168.1.1' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON rsyslog.* TO 'rsyslog'@'192.168.1.1';
flush privileges;
sudo systemctl restart mysql
rsyslog → MySQL 연동:
nano /etc/rsyslog.conf
module(load="ommysql")
*.* :ommysql:192.168.1.3,rsyslog,rsyslog,123456
sudo systemctl restart rsyslog
🖥️ IP118 서버
tail -f syslog로 로그 확인
cat /etc/rsyslog.d/mysql.conf
mysql
show databases;
use Syslog;
show tables;
desc SystemEvents;
select FromHost,ReceivedAt,Message from SystemEvents order by ID desc limit 0,10;
⚙️ 기타 설정
mysqld.conf
bind-address = 127.0.0.1 → 0.0.0.0 (※ 실제 운영환경에서는 주의 필요)
100 -> 118(tcp/udp 풀어줌) - 데이터베이스에 저장된 로그 기록을 웹에서 볼 수 있도록 해주기
로그는 이메일에 남음
🔐 사용자 생성 예시
create database geumsol;
CREATE USER 'geumsol'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON geumsol.* TO 'geumsol'@'localhost';
flush privileges;
CREATE USER 'geumsol'@'192.168.0.2' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON geumsol.* TO '192.168.0.2';
flush privileges;
127.0.0.1
Syslog
rsyslog
rsyslog12!@
CREATE USER 'rsyslog'@'192.168.0.100' IDENTIFIED BY 'rsyslog12!@';
GRANT ALL PRIVILEGES ON rsyslog.* TO 'rsyslog'@'192.168.0.100';
flush privileges;
cd /etc/mysql
ls
cat mysql.cnf
🔍 로그 예시 분석
2025-07-09T17:40:01+00:00 st CRON[4306]: (smmsp) CMD
(test -x /etc/init.d/sendmail && test -x /usr/share/sendmail/sendmail && test -x /usr/libexec/sendmail/sendmail && /usr/share/sendmail/sendmail cron-msp)
→ CRON[4306]: 프로세스 ID 4306의 CRON 작업
→ (smmsp) CMD: smmsp 유저가 실행한 명령어
📦 Kali 서버 - MySQL 설치 (NAT 환경)
sudo apt update
sudo apt install mysql-server