Rsyslog 설치 및 설정
SplunkServer가 rsyslog server가 되고, 나머지는 로그를 전송하는 rsyslog client로 설정
=> 각 시스템에서 생긴 로그들을 서버에게 전송
=> 여기서 ZeekIDS나 WebServer는 리눅스 기반이기 때문에 Syslog가 돌아가고 있지만, Sysmon의 경우는 운영체제가 완전히 달라서 Agent를 설치해서 로그를 전송해야함
1. (Ubuntu : SplunkServer) rsyslog server 설치
0) 관리자로 들어가기
$ sudo su - root
1234
1) apt 업데이트 및 rsyslog 설치
# apt update
# apt-get install -y rsyslog # rsyslog 서버 설치
2) 환경설정(포트 활성화 : 514, 로그저장우치 지정)
# nano /etc/rsyslog/conf
=> 주석 해제
=> 새로운 코드 추가
=> 외부에서 들어오는 로그를 저장하는 저장소 지정
$template remote-incoming-logs, "/var/log/192.168.10.0/client.log"
*.*?remote-incoming-logs
#tail /etc/rsyslog.conf # 작성내용 확인
3) 방화벽 활성화
# ufw allow 514/tcp
# ufw allow 514/udp
# ufw reload
4) 서비스 활성화
#systemctl restart rsyslog
# systemctl status rsyslog
5) 설정확인
# cd /var/log
# ls -l
# cd /var/log/192.168.10.0
# cat client.log
2. (Ubuntu : ZeekIDS) rsyslog client 설치
0) 관리자로 들어가기
$ sudo su - root
1234
1) apt 업데이트 및 rsyslog 설치
# apt update
# apt-get install -y rsyslog
2) 환경설정(룰 생성)
# nano /etc/rsyslog/conf
=> 이곳은 클라이언트이기 때문에 udp, tcp 주석을 풀 필요가 없음
=> 새로운 코드 추가
*.* @@192.168.10.10:514
*.* @192.168.10.10:514
=> @은 udp, @@은 tcp
=> *.* @@192.168.10.10:514 - tcp 방식으로 전송
=> *.* @ 192.168.10.10:514 - udp 방식으로 전송
=> tcp는 실패하면 재전송함, udp는 실패하면 그냥 실패
#tail /etc/rsyslog.conf
3) 서비서 활성화
#systemctl restart rsyslog
# systemctl status rsyslog
=> 방화벽(ufw)은 서버만 여는 것
4) 설정 확인
Splunk로 이동하여 로그가 전송되었는지 확인
# cat client.log | grep zeekids
3. (Cent OS 7 : WebServer) rsyslog client 설치
1) rsyslog 설치 확인
# rpm -qa | grep rsyslog
2) hostname 설정
# hostname webserver
# systemctl restart rsyslog #설정 변경으로 인해 restart
3) 환경설정(룰 생성)
# nano /etc/rsyslog/conf
=> 이곳은 클라이언트이기 때문에 udp, tcp 주석을 풀 필요가 없음
=> 새로운 코드 추가
*.* @@192.168.10.10:514
*.* @192.168.10.10:514
#tail /etc/rsyslog.conf
4) 서비스 활성화
#systemctl restart rsyslog
# systemctl status rsyslog
5) 설정 확인
Splunk로 이동하여 로그가 전송되었는지 확인
# cat client.log | grep webserver