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