Day 15(2025.07.09.WED) - rsyslog, syslog 페이지 구축



- 95번 백업(backup.geumsol.kr(192.168.0.95)) -


192.168.0.95 - CentOS



- rsyslog -

GNS 안에 있는 로그들을 모아서 backup.geumsol.kr에 쌓이게 해주기


- xshell -

@IP100:

cat /etc/rsyslog.conf | grep @192.168.0.95
- 1번 서버 -> 3번 서버로 로그 보내기
- 포트 번호 514 : rsyslog 작동됨을 알 수 있음




- UTM -

로깅 및 보고 - 로그 설정

- 로컬 로깅 : 특정 기간이 지나면 로그 파일이 자동으로 삭제되도록 할 수 있음. 디스크 공간이 부족하지 않는 한, 기본적으로 로그 파일이 삭제되지 않도록 설정됨.

- 제한선 : 로깅 파티션의 디스크 공간이 특정 임계값 미만으로 저하되면 다른 작업을 수행할 수 있음


로깅 및 보고 - 로그 설정 - 원격 Syslog 서버

- 아무것도 없으므로 원격에 서버 구축 후 연결

syslog 서버 추가(1.3이 rsyslog라는 걸 알려줌)




1.1 : Ubuntu2   1.3 : Ubuntu1


- 1.1에서 어디로 보낼지 설정 -


514를 통해서 1.3(데이터베이스 설치해야함)으로 데이터가 들어오면 저장이 안되어있어서 데이터베이스에 저장해야함
로그가 들어오면 데이터베이스에 넣을 거임

header.php - Syslog 추가

public_html/syslog 만들고 index.php 만들기


- Kali -

- 위(ssh -p 2222 master@geumsol.kr) -

su

nano /etc/rsyslog.conf(xshell @IP100에도 접속해서 내용 맞춰주기)

# Send logs to remote syslog server over UDP
auth,authpriv.* @192.168.1.3:514
*.* @@192.168.1.3:514

netstat -ant | grep 514 - 포트가 안열려있으므로 1.3하고 연결 안되어있음

3. netstat -ant | grep 514
systemctl restart rsyslog

6. 새 터미널 ssh -p 2222 master@geumsol.kr 접속하고 로그 확인



- 아래(ssh -l master geumsol.kr -p 22003) -

2. su
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

4. netstat -ant | grep 514



5. cd /var/log
tail -f syslog




미션!

1. 서버 구축해서 syslog 514로 들어오는 로그를 데이터베이스에 저장하라
mysql 설치

2. 웹으로 1.1에서 검색할 수 있도록 설정하라


118로 로그가 쌓일건데 1.3에 데이터베이스를 설치해서 1.1로 들어오는 로그들을 웹에서 보게 하기(mysql 설치)
들어오는 데이터를 데이터베이스에 넣기


mysql

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

nano /etc/rsyslog.conf

module(load="ommysql")
*.* :ommysql:192.168.1.3,rsyslog,rsyslog,123456   

sudo systemctl restart rsyslog



- xshell(192.168.0.118) - 

- 왼 -

root@IP118

cd /var/log
tail -f syslog


- 오 -

root@IP118

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;


- 아래(@IP100) -

mysqld.conf

bind-address = 127.0.0.1 -> 0.0.0.0(실제로는 풀면 안됨)



-  -

100 -> 118(tcp/udp 풀어줌) - 데이터베이스에 저장된 로그 기록을 웹에서 볼 수 있도록 해주기
로그는 이메일에 남음

mysql
show databases;
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 'geumsol'@'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




- syslog 분석 -



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 -

- 위(ssh -p 2222 master@geumsol.kr) -

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

- 아래(ssh -l master geumsol.kr -p 22003) -

mysql 설치(NAT) - sudo apt update
sudo apt install mysql-server