๐งฑ Linux Rsyslog ้ไธญๆฅ่ช็ฎก็่ๅๆๆๅญธ
ๅจไผๆฅญ็ฐๅขไธญ,้ไธญๅผๆฅ่ช็ฎก็(Centralized Logging)่ฝๅๅฉ็ณป็ตฑ็ฎก็ๅกๅณๆ็ฃๆงๅคๅฐไผบๆๅจ็ๆ 。Rsyslog ๆฏ Linux ไธๆๅธธ็จ็ๆฅ่ช็ณป็ตฑไนไธ,ๅ ทๅ้ซ้、ๆจก็ตๅ่ๅฎๅ จๅณ่ผธ็นๆง,ๆฌๆๅฐ่ชชๆๅฆไฝๆถ่จญ่ๆดๅ Rsyslog ไผบๆๅจ。
๐ ไธ、Rsyslog ่ง่ฒ่้ไฝๅ็
Rsyslog ๆฏ syslog ็้ฒ้็ๆฌ,ๆฏๆด TCP、UDP ๅณ่ผธ่ TLS ๅ ๅฏ。ๅธธ่ฆๆถๆงๅฆไธ:
- Client(Sender):ๅฐๆฌๅฐ็ณป็ตฑๆฅ่ช้้็ถฒ่ทฏๅณ้่ณ้ไธญไผบๆๅจ。
- Server(Receiver):ๆฅๆถไธฆๅ้กๅฒๅญๅคๅฐไธปๆฉ็ๆฅ่ช。
ๆฅ่ช่จๆฏ็ๅบๆฌ็ตๆง:
<PRI>Timestamp Hostname Process[PID]: Message
---
⚙️ ไบ、ๅฎ่ฃ่ๅ็จ Rsyslog
# Rocky / CentOS / RHEL
sudo dnf install rsyslog -y
sudo systemctl enable --now rsyslog
# Ubuntu / Debian
sudo apt install rsyslog -y
sudo systemctl enable --now rsyslog
็ขบ่ชๆๅ็ๆ :
sudo systemctl status rsyslog
---
๐ ไธ、่จญๅฎ Rsyslog ็บ้ไธญๆฅๆถ็ซฏ(Server)
็ทจ่ผฏไธป่จญๅฎๆช:
sudo nano /etc/rsyslog.conf
ๅๆถ่จป่งฃไธฆ้ๅ UDP / TCP ๆฅๆถๅ่ฝ:
# ๆฅๆถ UDP ๆฅ่ช
module(load="imudp")
input(type="imudp" port="514")
# ๆฅๆถ TCP ๆฅ่ช
module(load="imtcp")
input(type="imtcp" port="514")
# ่จญๅฎๅฒๅญ่ทฏๅพ
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~
ๅฒๅญๅพ้ๅๆๅ:
sudo systemctl restart rsyslog
้ฒ็ซ็้ๆพๅ ๅฃ:
sudo firewall-cmd --permanent --add-port=514/tcp
sudo firewall-cmd --permanent --add-port=514/udp
sudo firewall-cmd --reload
---
๐ป ๅ、่จญๅฎ็จๆถ็ซฏ(Client)ๅณ้ๆฅ่ช
ๅจ้ ็ซฏไธปๆฉไธญ็ทจ่ผฏ /etc/rsyslog.conf:
*.* @@192.168.1.10:514 # TCP
# ๆ
*.* @192.168.1.10:514 # UDP
้ๆฐๅๅๆๅ:
sudo systemctl restart rsyslog
ๆญคๆ,ไผบๆๅจ็ซฏๆ่ฝๅจ /var/log/remote/ ไธ็ๅฐๅฐๆไธปๆฉ่ณๆๅคพ。
๐ ไบ、ๅฎๅ จๅผทๅ่ TLS ๅ ๅฏ
่ฅ่ฆๅจ่ทจ็ถฒๆฎต็ฐๅขไธญๅณ้ๆๆ่ณๆ,ๅปบ่ญฐๅ็จ TLS:
module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.AuthMode="anon")
input(type="imtcp" port="6514" StreamDriver="gtls")
ไธฆๅจ /etc/rsyslog.d/ssl.conf ไธญๆๅฎๆ่ญไฝ็ฝฎ:
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca.crt
$DefaultNetstreamDriverCertFile /etc/rsyslog.d/server.crt
$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/server.key
---
๐ ๅ ญ、ๆดๅ GoAccess / Fail2Ban ๅๆ
- ไฝฟ็จ GoAccess ๅณๆ่ฆ่ฆบๅๅๆ nginx / squid ็ๅญๅๆฅ่ช。
- ้ ๅ Fail2Ban ๅฏไพๆ Rsyslog ๅฏๅ ฅ็ SSH / Proxy ๆปๆ็ด้่ชๅๅฐ้ไพๆบ。
- ๅฏๆญ้ systemd journal-gatewayd,ๆดๅ็บ Web Log ๆชข่ฆไป้ข。
๐ ไธ、ๅธธ่ฆ็้ฃๆ่งฃ
- ็ขบ่ช SELinux ๆฏๅฆๅ ่จฑ rsyslog ๆฅๆถๅค้จ้ฃ็ท:
sudo setsebool -P nis_enabled on
logger ๆธฌ่ฉฆๅณ้:logger "Test message from $(hostname)"
/var/log/messages ๆ /var/log/syslog๐ ็ต่ช
Rsyslog ็บ Linux ไธ็ไธญไธๅฏๆ็ผบ็ๆฅ่ช้ชจๅนน。้้้ไธญๅผๆถๆง,ๆๅ่ฝๅจๅคๅฐไผบๆๅจ้็ตฑไธ็ฃๆง่ๅๆไบไปถ,้ฒ่ๅฟซ้็ผ็พ็ฐๅธธ、่ฟฝ่นคๆปๆไพๆบ,ไธฆ่่ชๅๅ้ฒ่ญท็ณป็ตฑ(ๅฆ Fail2Ban)ๅๅ้ไฝ,้ๆ้ซๆ็็ๅฎๅ จ็ถญ้。
๐ ๅปถไผธ้ฑ่ฎ
- ๐ Linux Log ่ชๅๅๅๆ่ GoAccess + Fail2Ban ๆดๅๅฏฆไฝ
- ๐งฉ Linux systemd ๆทฑๅ ฅ่งฃๆ่ๅๅๆต็จ็ฎก็
- ๐งฑ Linux Firewall + Fail2Ban ๅฎๅ จๅผทๅ่่ชๅๅฐ้่จญๅฎ
— WWFandy・็ณป็ตฑ็ถญ้็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ