Rsyslog kasutamine operatsioonisüsteemiga Debian: erinevus redaktsioonide vahel
(Uus lehekülg: '===Sissejuhatus=== Rsyslog http://www.rsyslog.com/ v. 8.4 on Debian v. 8 Jessie operatsioonisüsteemis vaikimisi logimise tarkvara. Kui tarkvara mingil põhjusel süsteemis ei ole, nt süsteem moodustati Debian Etch -> Lenny uuendamisel, siis saab Rsyslogi paigaldada öeldes # apt-get install rsyslog rsyslog-doc Rsyslogil on sellised omadused * tcp/udp tugi * oskab kasutada sql andmebaasi (nt PostgreSQL, Oracle, MySQL) * failisüsteemi puhverdamine (nt juhtumil kui and...') |
|||
| 32. rida: | 32. rida: | ||
| | | | | | |
| | | | | | |
||
|_____| |_____| |_____| |
|_____| |_____| |_____| |
||
| + | |||
| − | |||
smtp www dns |
smtp www dns |
||
Viimane redaktsioon: 30. juuli 2026, kell 03:10
Sissejuhatus
Rsyslog http://www.rsyslog.com/ v. 8.4 on Debian v. 8 Jessie operatsioonisüsteemis vaikimisi logimise tarkvara. Kui tarkvara mingil põhjusel süsteemis ei ole, nt süsteem moodustati Debian Etch -> Lenny uuendamisel, siis saab Rsyslogi paigaldada öeldes
# apt-get install rsyslog rsyslog-doc
Rsyslogil on sellised omadused
- tcp/udp tugi
- oskab kasutada sql andmebaasi (nt PostgreSQL, Oracle, MySQL)
- failisüsteemi puhverdamine (nt juhtumil kui andmebaasi ei saa mingil põhjusel kirjutada)
- RELP protokolli tugi
Tarkvara juhib seadistusfail /etc/rsyslogd.conf, mis on süntaksiliselt tagasiühilduv seni Debianis kasutuses olnud Syslog tarkvara seadistusfailiga. Tundub, et uuemal ajal tuleb arvestada, millist rsyslog versiooni kasutatakse
- rsyslog v. 3 - Debian v. 5 Lenny
- rsyslog v. 5 - Debian v. 7 Wheezy
- rsyslog v. 8 - Debian v. 8 Jessie
Logiserveri kasutamine
Reeglina soovitatakse seadistada arvutid logima võrgus töötavasse logiserverisse, nt turvalisuse ja logitöötluse kaalutlustel
_____ logiserver
| | :514/tcp
|_____| :514/udp
|
|
-|---------|----------|----....---|--
| | |
__|__ __|__ __|__
| | | | | |
|_____| |_____| |_____|
smtp www dns
kus
- logiseveri kuulab ühedusi oma 514/tcp ja 514/udp soketitel
- smtp, www ja dns arvutid logivad oma andmed logiserverisse
Rsyslogi käivitamisel tuleb arvestada, kas protsess töötab logiseverina või logiserveri kliendina.
- Logiserveris tuleb öelda, et teenindatakse kliente
# cat /etc/rsyslog.conf .. # provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
# provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
- Logiserveri kliendis on oluline näidata logiserveri asukoht (kusjuures @192.168.1.247 kopeerib logi üle UDP), praktiliselt piisab järgnev rida lisada vaikimisi toodud seadistusfaili lõppu, tulemusena logitakse endiselt ja lisaks võrku
*.* @@192.168.1.247
SSL/TLS ühenduse kasutamine
Eesmärgiks on saavutada olukord, kus
- serveri ei võtaks kelleltki peale seadistatud klientide logi vastu
- kliendid ei saaks saata kellelegi peale seadistatud serveri logi
SSL/TLS toe lisamiseks tuleb süsteemi paigaldada pakett rsyslog-gnutls
# apt-get install rsyslog-gnutls
Tulemusena tekib failisüsteemi muu hulgas teek
/usr/lib/rsyslog/lmnsd_gtls.so
Serveri seadistamine
Serveris võiks seadistuse koondada faili /etc/rsyslog.d/tls.conf
# cat /etc/rsyslog.d/tls.conf # make gtls driver the default $DefaultNetstreamDriver gtls
# certificate files $DefaultNetstreamDriverCAFile /etc/ssl/certs/auul-ca-chain.pem $DefaultNetstreamDriverCertFile /etc/ssl/certs/rsyslog.loomaaed.tartu.ee.crt $DefaultNetstreamDriverKeyFile /etc/ssl/private/rsyslog.loomaaed.tartu.ee.key
$InputTCPServerStreamDriverAuthMode x509/name $InputTCPServerStreamDriverPermittedPeer *.loomaaed.tartu.ee $InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode $InputTCPServerRun 10514 # start up listener at port 10514
kus
- $DefaultNetstreamDriver gtls - lülitab TLS mooduli sisse
- näidatakse, millist CA ahelat, sertifikaati ja võtit server kasutab
- $InputTCPServerStreamDriverPermittedPeer - milliste subjecti nimedega sertifikaatidega varustatud kliente teenindatakse
Kliendi seadistamine
Serveris võiks seadistuse koondada faili /etc/rsyslog.d/tls.conf
# cat /etc/rsyslog.d/tls.conf # make gtls driver the default $DefaultNetstreamDriver gtls
# certificate files $DefaultNetstreamDriverCAFile /etc/ssl/certs/auul-ca-chain.pem $DefaultNetstreamDriverCertFile /etc/ssl/certs/rsyslog-client-loomaaed.loomaaed.tartu.ee.crt $DefaultNetstreamDriverKeyFile /etc/ssl/private/rsyslog-client-loomaaed.loomaaed.tartu.ee.key
$ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer rsyslog.loomaaed.tartu.ee $ActionSendStreamDriverMode 1 # run driver in TLS-only mode
*.* @@(o)rsyslog.loomaaed.tartu.ee:10514
kus
- *.* @@(o)rsyslog.loomaaed.tartu.ee:10514 - kuhu logi saata, (o) ka vajalik, liiklus logimise jaoks optimaalsem
Tulemuse kontrollimine
- veenduda, et logitakse üle seadistatud pordi ja andmevahetus on ilmselt krüpteeritud (nt wireshark abil)
- proovida pöörduda kasutades mingit suvalist kliendi serti ja veenduda, et logida ei saa (või muuta serveris ja kliendis kordamööda InputTCPServerStreamDriverPermittedPeer väärtus ära)
Nt kirjutatakse ebasobiva kliendi pöördumisel serveri logisse klienti rsyslog protsessi startimisel
May 4 20:32:58 rsyslog rsyslogd-2088: error: peer name not authorized - not permitted to talk to it. \ Names: CN: rsyslog-client-auul.lloomaaed.tartu.ee;
Kasulikud lisamaterjalid
Logimine failisüsteemi
Failisüsteemi moodustatakse logiserverit kasutavate arvutite ja programmide nö puu lisades logiserveri rsyslog.conf faili muude logi salvestamist juhtivate kirjete ette
.. ############### #### RULES #### ###############
$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n" $template DailyPerHostLogs,"/srv/logs/%HOSTNAME%/%programname%.%$YEAR%-%$MONTH%-%$DAY%.log" # *.* -?DailyPerHostLogs;TraditionalFormat if $fromhost-ip startswith '10.1.1.' then -?DailyPerHostLogs;TraditionalFormat & ~
# # First some standard log files. Log by facility. # auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog ...
kus
- - - syncida failisüsteemi puhvrid maha
- ? - tähistab asjaolu, et järgneb nn dünaamiline failinimi
- ; järel on template nimi, kust võetakse logikirje formaat
- %msg% - algne logi sissekanne, millele kirjutatakse ette ja taha juurde
- if $fromhost-ip startswith '10.1.1.' then ... näitab, millisel tingimusel näidatud viisil logida
- & ~ - tähistab, et logides järgmiseid reegleid ei käsitleta; vastasel korral kirjutatakse üle võrgu tulnud logi lisaks ka nö kohalikesse logifailidesse (/var/log/syslog jt)
Postinduse logimisel on praktiliselt mõistlik logida samasse faili kokku amavis-postfix-spamd-jms programmid, nt sedasi
$template TraditionalFormat,"%timegenerated% %FROMHOST-IP% %syslogtag%%msg:::drop-last-lf%\n" $template DailyPerHostLogs,"/srv/data/logs/%FROMHOST-IP%/%programname%.%$YEAR%-%$MONTH%-%$DAY%.log" $template DailyPerHostLogsMail,"/srv/data/logs/%FROMHOST-IP%/mail.%$YEAR%-%$MONTH%-%$DAY%.log"
if $fromhost-ip startswith '192.168.1.250' and ( $programname == 'spamd' or $programname == 'clamav-milter' or $programname == 'postfix' ) \ then -? DailyPerHostLogsMail;TraditionalFormat & ~
if $fromhost-ip startswith '192.168.' then -?DailyPerHostLogs;TraditionalFormat & ~
kus
- esmalt kirjeldatakse template'd - formaadi kohta üks ja kaks failinimede jaoks
- esimene if tingimus määrab mail faili kirjutamise tingimused
- teine if tingimus ülejäänud
ning
-?DailyPerHostLogs;TraditionalFormat
kus
- - - kirjutada puhvrid maha
- ?DailyPerHostLogs - failinimed moodustatakse dünaamiliselt (st saavad sisaldada kuupäeva jms)
- TraditionalFormat - kirje formaat
Rsyslogi mitte kasutava programmi logifaili muudatuste logimine Rsyslogi
Rsyslog võimaldab töötada nö iseseisvalt oma logifaile kirjutavate programmidega, nt Tomcat. Enne allkirjeldatud viisi rakendamist tasub uurida alternatiivseid võimalusi, nt PostgreSQL puhul on võimalik kirjutada logi samaaegselt mitmesse kohta.
Logi klient
Logi kliendi arvutis tuleb kasutada /etc/rsyslog.conf failis nt ridu
$ModLoad imfile ... # RULES if $programname == 'tomcat' then @@10.100.1.19 & ~ ... $InputFileName /usr/local/tomcat/logs/catalina.out $InputFileTag tomcat: $InputFileStateFile stat-file-tomcat $InputRunFileMonitor ... *.* @@10.100.1.19
kus
- if ... then .. - tingimus suunab tomcat nimelise logi logiserverisse aadressi 10.100.1.19
- & ~ - järgnedes vahetult eelmisele tähendab see, et kõnealuse logikirjega enam rohkem ei tegelda
- *.* - kõik logi saadetakse logiserverisse
Kui if .. then tingimust mitte kasutada, siis salvestatakse tomcat logi nii kohaliku süsteemi logifailidesse kui ka logiserverisse
Logiserver
Logiserver salvestab muude seadmete poolt üle võrgu talle saadetud logi, nt oma failisüsteemi
$ModLoad imudp.so $UDPServerRun 514
Logimine PostgreSQL andmebaasi
Mõnel juhtumil, nt LogAnalyzer http://loganalyzer.adiscon.com/ tarkvara kasutamisel võib olla asjakohane logida andmebaasi, selleks tuleb paigadalda PostgreSQL andmebaasi puhul rsyslog-pgsql pakett
# apt-get install rsyslog-pgsql
Baasi logimisel kasutatakse kahte tabelit, tõenäoliselt on mõistlik moodustada eraldi andmebaas ja tekitada tabelid
$ psql -h 127.0.0.1 -U rsyslog rsyslog < /usr/share/dbconfig-common/data/rsyslog-pgsql/install/pgsql
Ligipääs andmebaasile tuleb näidata /etc/rsyslog.d/pgsql.conf failis, nt
$ModLoad ompgsql *.* :ompgsql:ip,baasinimi, kasutajanimi, parool;
Muudatuste kehtestamiseks tuleb teha Rsyslogile stop ja start
# /etc/init.d/rsyslog stop ... start
Kui mingil juhtumil ei peaks andmebaas töötama, siis Rsyslog võimaldab logi kohalikus arvutis puhverdada ning see kopeeritakse andmebaasi järgmisel võimalusel, selleks sobib kasutada seadistusfailis
$WorkDirectory /var/spool/rsyslog # default location for work (spool) files $ActionQueueType LinkedList # use asynchronous processing $ActionQueueFileName dbq # set file name, also enables disk mode $ActionResumeRetryCount -1 # infinite retries on insert failure
ning moodustada kataloog /var/spool/rsyslog
# mkdir /var/spool/rsyslog
LogAnalyzeri kasutamine
LogAnalyzer http://loganalyzer.adiscon.com/ on veebipõhine PHP rakendus, mis võimaldab töötada andmebaasi salvestatud logiga. Lisaks nö vanilla Apache veebiserverile peavad olema paigaldatud php5-gd ja php5-pgsql paketid
# apt-get install php5-gd php5-pgsql
Tarkvara tuleb lahti pakkida veebiserveri dokumendijuurika alla, rakendus asub src alamkataloogis. Rakenduse seadistamine, sh andmebaasi ligipääsu kirjeldamine toimub veebiliideses (andmed salvestatakse faili config.php).
LogAnalyzeri kasutajaliides näeb välja selline
kus
- üleval ääres olevate linkide abil saab liikuda otsingu, statistika jt sektsioonide vahel
- üleval keskel on filter, antud juhul kuvatakse kõigi logiserverit kasutavate arvutite viimase tunni sissekandeid
- sissekanded esitatakse ridadena, antud juhtumil on näha, et arvuti 192.168.1.210 on tegelenud dhcp'ga
- veebilehele on määratud kord minutis automaatne värskendus
Kuna logis võivad esineda tundlikud andmed, nt kasutaja sisestas oma kasutaja nime asemele kogemata parooli, siis ei peaks logile saama juurde kõrvalised tegelased.
Märkused
- OpenBSD baaskomplekti syslogd oskab ainult UDP protokolli, kui seda arvestada, siis saab logida sealt Rsyslogi.
- Tundub, et igasuguste Rsyslogi seadistusfaili tehtud muudatuste kehtestamiseks tuleb öelda Rsyslogile stop ja start.
- osutub, et logger programm ei sobib tcp peal logimiseks; või teisipidi, lõpus peab olema reavahetus
$ logger -n 192.168.10.85 -p local3.info "test" $ logger -n 192.168.10.85 -T -P 514 -p local3.info "test"
paistab, et netcat toimib
$ echo "test" | netcat -q 0 10.0.9.45 514
- selleks, et kõik kirjed eraldi ridadele kantaks
$RepeatedMsgReduction off
Rsyslog v. 8 kasutamise iseärasused
- Logiserveris erinevatesse failidesse logimiseks sobib kasutada
.. template(name="DailyPerHostLogsMail" type="string" string="/srv/logs/%FROMHOST-IP%/mail.%$YEAR%-%$MONTH%-%$DAY%.log")
if $fromhost-ip startswith '192.168.1.250' and ( $programname == 'spamd' or $programname == 'clamav-milter' ) then
{
action(type="omfile" DynaFile="DailyPerHostLogsMail")
stop
}
...
- Tundub, et rsyslog v. 8 toetab otse elasticsearch andmebaasi sissekannete tegemist, http://www.rsyslog.com/output-to-elasticsearch-in-logstash-format-kibana-friendly/ (iseasi, kas see 2015 aasta alguses on nii kasutatav kui Logstash, nt GeoIP paistab puuduvat)
# apt-get install rsyslog-elasticsearch
- rainerscriptiga TLS serveris kasutada /etc/rsyslog.conf failis kõige lõpus (ees vaikimisi olev 'module(type="imtcp")' kommenteerida välja)
.. $DefaultNetstreamDriverCAFile /var/tmp/s/syslog-ca-cert.crt $DefaultNetstreamDriverCertFile /var/tmp/s/syslog-server-cert.crt $DefaultNetstreamDriverKeyFile /var/tmp/s/syslog-server-key.key $DefaultNetstreamDriver gtls module(load="imtcp" streamdriver.mode="1" streamdriver.authmode="x509/certvalid") input(type="imtcp" port="10514" name="tcp-tls")
- legacy direktiividega TLS serveris kasutada /etc/rsyslog.conf failis kõige lõpus (ees vaikimisi olev 'module(type="imtcp")' kommenteerida välja)
$DefaultNetstreamDriverCAFile /var/tmp/s/syslog-ca-cert.crt $DefaultNetstreamDriverCertFile /var/tmp/s/syslog-server-cert.crt $DefaultNetstreamDriverKeyFile /var/tmp/s/syslog-server-key.key $DefaultNetstreamDriver gtls $ModLoad imtcp $InputTCPServerStreamDriverMode 1 $InputTCPServerStreamDriverAuthMode anon $InputTCPServerRun 10514 # start up listener at port 10514
- TLS kliendis kasutada /etc/rsyslog.conf failis kõige lõpus
$ModLoad lmnsd_gtls # certificate files $DefaultNetstreamDriverCAFile /etc/rsyslog.ca.pem $DefaultNetstreamDriverCertFile /etc/rsyslog.crt $DefaultNetstreamDriverKeyFile /etc/rsyslog.key $DefaultNetstreamDriver gtls $ActionSendStreamDriverMode 1 # run driver in TLS-only mode $ActionSendStreamDriverAuthMode x509/certvalid # $ActionSendStreamDriverPermittedPeer rsyslog.moraal.ee *.* @@rsyslog.moraal.ee:10514 # forward everything to remote server
Testimiseks peab nö tavaline ssl klient saama vastuse, nt
# openssl s_client -connect 10.80.102.35:1999 ... Start Time: 1496000983 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate) ---
või
# gnutls-cli -p 1999 logi.moraal.ee --x509cafile /etc/rsyslog-ca.crt .. - Status: The certificate is trusted. - Description: (TLS1.0)-(RSA)-(AES-128-CBC)-(SHA1) - Session ID: BA:3A:80:16:79:F2:F6:8B:1A:E9:C1:87:D9:52:D6:53:28:3B:EC:3C:45:52:5A:76:C4:4D:09:F6:D1:B1:5C:A2 - Version: TLS1.0 - Key Exchange: RSA - Cipher: AES-128-CBC - MAC: SHA1 - Compression: NULL - Options: safe renegotiation, - Handshake was completed - Simple Client Mode:
Kasulikud lisamaterjalid
