L-illoggjar tal-avvenimenti kollha li jseħħu hija waħda mill-aktar funzjonijiet importanti ta' kwalunkwe sistema korporattiva. Iċ-zkuk jippermettulek issolvi problemi emerġenti, tivverifika l-operat tas-sistemi tal-informazzjoni, u tinvestiga wkoll inċidenti tas-sigurtà tal-informazzjoni. Zimbra OSE iżżomm ukoll reġistri dettaljati tal-operat tagħha. Dawn jinkludu d-dejta kollha mill-prestazzjoni tas-server sa tibgħat u tirċievi emails mill-utenti. Madankollu, il-qari tar-zkuk ġġenerati minn Zimbra OSE huwa kompitu pjuttost mhux trivjali. F'dan l-artikolu, bl-użu ta 'eżempju speċifiku, aħna ngħidulek kif taqra zkuk Zimbra OSE, kif ukoll kif tagħmilhom ċentralizzati.
Zimbra OSE jaħżen ir-zkuk lokali kollha fil-folder /opt/zimbra/log, u zkuk jistgħu jinstabu wkoll fil-fajl /var/log/zimbra.log. L-aktar importanti minn dawn huwa mailbox.log. Jirreġistra l-azzjonijiet kollha li jseħħu fuq is-server tal-posta. Dawn jinkludu t-trażmissjoni ta' emails, data ta' awtentikazzjoni tal-utent, tentattivi ta' login falluti, u oħrajn. L-entrati f'mailbox.log huma sekwenza ta' test li fiha l-ħin li fih seħħ l-avveniment, il-livell tal-avveniment, in-numru tal-fil li fih seħħ l-avveniment, l-isem tal-utent u l-indirizz IP, kif ukoll deskrizzjoni tat-test tal-avveniment .
Il-livell ta' log jindika l-grad ta' influwenza tal-avveniment fuq l-operat tas-server. B'mod awtomatiku hemm 4 livelli ta' avveniment: INFO, WARN, ERROR u FATAL. Ejja nħarsu lejn il-livelli kollha f'ordni dejjem tiżdied ta' severità.
- INFORMAZZJONI - L-avvenimenti f'dan il-livell huma ġeneralment maħsuba biex jinfurmaw dwar il-progress ta 'Zimbra OSE. Messaġġi f'dan il-livell jinkludu rapporti dwar il-ħolqien jew it-tħassir ta 'kaxxa postali, eċċ.
- WARN - avvenimenti ta 'dan il-livell jinfurmaw dwar sitwazzjonijiet li huma potenzjalment perikolużi, iżda ma jaffettwawx l-operat tas-server. Pereżempju, il-livell WARN jimmarka messaġġ dwar tentattiv ta' login tal-utent fallut.
- ŻBALL - dan il-livell ta 'avveniment fil-log jinforma dwar l-okkorrenza ta' żball li huwa ta 'natura lokali u ma jinterferixxix mal-operat tas-server. Dan il-livell jista' jimmarka żball li fih id-dejta tal-indiċi ta' utent individwali tkun saret korrotta.
- FATAL - dan il-livell jindika żbalji li minħabba fihom is-server ma jistax ikompli jaħdem b'mod normali. Pereżempju, il-livell FATAL se jkun għal rekord li jindika l-inabbiltà li tikkonnettja mad-DBMS.
Il-fajl log tas-server tal-posta jiġi aġġornat kuljum. L-aħħar verżjoni tal-fajl dejjem għandha l-isem Mailbox.log, filwaqt li zkuk għal ċerta data għandhom data fl-isem u jinsabu fl-arkivju. Per eżempju mailbox.log.2020-09-29.tar.gz. Dan jagħmilha ferm aktar faċli li tagħmel backup ta' zkuk ta' attività u tfittex permezz ta' zkuk.
Għall-konvenjenza tal-amministratur tas-sistema, il-folder /opt/zimbra/log/ fih zkuk oħra. Huma jinkludu biss entrati li għandhom x'jaqsmu ma' elementi speċifiċi ta' Zimbra OSE. Pereżempju, audit.log fih biss rekords dwar l-awtentikazzjoni tal-utent, clamd.log fih data dwar l-operat tal-antivirus, eċċ. Mill-mod, metodu eċċellenti ta 'protezzjoni ta' server Zimbra OSE minn intrużi huwa
Eżempju ta' kif audit.log juri password mdaħħla darbtejn ħażin u tentattiv ta' login b'suċċess.
Zkuk f'Zimbra OSE jistgħu jkunu estremament utli fl-identifikazzjoni tal-kawżi ta 'fallimenti kritiċi varji. Fil-mument meta jseħħ żball kritiku, l-amministratur normalment ma jkollux ħin biex jaqra r-zkuk. Huwa meħtieġ li jirrestawra s-server kemm jista 'jkun malajr. Madankollu, aktar tard, meta s-server ikun lura u jiġġenera ħafna zkuk, jista 'jkun diffiċli li ssib l-entrata meħtieġa f'fajl kbir. Sabiex issib malajr rekord ta 'żbalji, huwa biżżejjed li tkun taf il-ħin li fih is-server reġa' nbeda u ssib entrata fir-zkuk li tmur minn dan iż-żmien. Id-dħul preċedenti se jkun rekord tal-iżball li seħħ. Tista' ssib ukoll il-messaġġ ta' żball billi tfittex il-kelma prinċipali FATAL.
Żkuk Zimbra OSE jippermettu wkoll li tidentifika fallimenti mhux kritiċi. Pereżempju, biex issib eċċezzjonijiet ta' handler, tista' tfittex eċċezzjoni ta' handler. Ħafna drabi, l-iżbalji ġġenerati mill-handlers huma akkumpanjati minn traċċa ta 'munzell li tispjega x'ikkawża l-eċċezzjoni. F'każ ta' żbalji fil-kunsinna tal-posta, għandek tibda t-tfittxija tiegħek bil-kelma prinċipali LmtpServer, u biex tfittex żbalji relatati mal-protokolli POP jew IMAP, tista' tuża l-kliem prinċipali ImapServer u Pop3Server.
Iċ-zkuk jistgħu jgħinu wkoll meta jiġu investigati inċidenti tas-sigurtà tal-informazzjoni. Ejja nħarsu lejn eżempju speċifiku. Fl-20 ta’ Settembru, wieħed mill-impjegati bagħat ittra infettata bil-virus lil klijent. Bħala riżultat, id-data fuq il-kompjuter tal-klijent kienet encrypted. Madankollu, l-impjegat jaħlef li ma bagħat xejn. Bħala parti mill-investigazzjoni tal-inċident, is-servizz tas-sigurtà tal-intrapriża jitlob mingħand l-amministratur tas-sistema l-logs tas-server tal-posta għall-20 ta’ Settembru assoċjati mal-utent li qed jiġi investigat. Grazzi għat-timbru tal-ħin, l-amministratur tas-sistema jsib il-fajl tal-ġurnal meħtieġ, jiġbed l-informazzjoni meħtieġa u jittrasferiha lil speċjalisti tas-sigurtà. Dawk, min-naħa tagħhom, iħarsu minnha u jsibu li l-indirizz IP minn fejn intbagħtet din l-ittra jikkorrispondi għall-indirizz IP tal-kompjuter tal-utent. Filmati tas-CCTV ikkonfermaw li l-impjegat kien fuq il-post tax-xogħol tiegħu meta ntbagħtet l-ittra. Din id-dejta kienet biżżejjed biex takkużah li kiser ir-regoli tas-sigurtà tal-informazzjoni u keċċieh.
Eżempju ta 'estrazzjoni ta' rekords dwar wieħed mill-kontijiet mill-log Mailbox.log f'fajl separat
Kollox isir ħafna aktar ikkumplikat meta niġu għall-infrastruttura multi-server. Peress li z-zkuk jinġabru lokalment, il-ħidma magħhom f'infrastruttura b'ħafna servers hija inkonvenjenti ħafna u għalhekk hemm bżonn li tiġi ċentralizzata l-ġbir ta 'zkuk. Dan jista' jsir billi jitwaqqaf host biex jiġbor zkuk. M'hemm l-ebda ħtieġa partikolari li jiżdied host dedikat għall-infrastruttura. Kull server tal-posta jista 'jaġixxi bħala node għall-ġbir ta' zkuk. Fil-każ tagħna, dan se jkun in-node Mailstore01.
Fuq dan is-server għandna bżonn nidħlu l-kmandi hawn taħt:
sudo su – zimbra
zmcontrol stop
exit
sudo /opt/zimbra/libexec/zmfixperms -e -v
Editja l-fajl /etc/sysconfig/rsyslog, u waqqaf is-SYSLOGD_OPTIONS="-r -c 2″
Editja /etc/rsyslog.conf u neħħi l-kumment tal-linji li ġejjin:
$ModLoad imudp
$UDPServerRun 514
Daħħal il-kmandi li ġejjin:
sudo /etc/init.d/rsyslog stop
sudo /etc/init.d/rsyslog start
sudo su – zimbra
zmcontrol start
exit
sudo /opt/zimbra/libexec/zmloggerinit
sudo /opt/zimbra/bin/zmsshkeygen
sudo /opt/zimbra/bin/zmupdateauthkeys
Tista' tiċċekkja li kollox qed jaħdem billi tuża l-kmand zmprov gacf | grep zimbraLogHostname. Wara l-eżekuzzjoni tal-kmand, l-isem tal-host li jiġbor zkuk għandu jintwera. Sabiex tibdelha, trid tidħol fil-kmand zmprov mcf zimbraLogHostname mailstore01.company.ru.
Fuq is-servers l-oħra kollha tal-infrastruttura (LDAP, MTA u ħwienet tal-posta oħra), ħaddem il-kmand zmprov gacf |grep zimbraLogHostname biex tara l-isem tal-host li lejh jintbagħtu r-logs. Biex tibdelha, tista 'wkoll tidħol fil-kmand zmprov mcf zimbraLogHostname mailstore01.company.ru
Trid iddaħħal ukoll il-kmandi li ġejjin fuq kull server:
sudo su - zimbra
/opt/zimbra/bin/zmsshkeygen
/opt/zimbra/bin/zmupdateauthkeys
exit
sudo /opt/zimbra/libexec/zmsyslogsetup
sudo service rsyslog restart
sudo su - zimbra
zmcontrol restart
Wara dan, ir-reġistri kollha jiġu rreġistrati fuq is-server li speċifikajt, fejn ikunu jistgħu jaraw b'mod konvenjenti. Ukoll, fil-console ta 'l-amministratur ta' Zimbra OSE, fuq l-iskrin b'informazzjoni dwar l-istatus tas-servers, is-servizz Logger li qed jaħdem se jintwera biss għas-server mailstore01.
Uġigħ ta 'ras ieħor għal amministratur jista' jkun li jżomm rekord ta 'email speċifika. Peress li l-emails f'Zimbra OSE jgħaddu minn diversi avvenimenti differenti f'daqqa: skanjar b'antivirus, antispam, eċċ, qabel ma jiġu aċċettati jew mibgħuta, għall-amministratur, jekk l-email ma tasalx, jista' jkun pjuttost problematiku li jiġi rintraċċat f'liema stadju intilfet.
Sabiex issolvi din il-problema, tista 'tuża skript speċjali, li ġie żviluppat mill-ispeċjalista tas-sigurtà tal-informazzjoni Viktor Dukhovny u rakkomandat għall-użu mill-iżviluppaturi ta' Postfix. Din l-iskrittura tikkonkatena entrati minn zkuk għal proċess speċifiku u, minħabba dan, jippermettilek turi malajr l-entrati kollha assoċjati mal-bgħit ta 'ittra partikolari bbażata fuq l-identifikatur tagħha. Ix-xogħol tiegħu ġie ttestjat fuq il-verżjonijiet kollha ta 'Zimbra OSE, li jibda minn 8.7. Hawn hu t-test tal-iskrittura.
#! /usr/bin/perl
use strict;
use warnings;
# Postfix delivery agents
my @agents = qw(discard error lmtp local pipe smtp virtual);
my $instre = qr{(?x)
A # Absolute line start
(?:S+ s+){3} # Timestamp, adjust for other time formats
S+ s+ # Hostname
(postfix(?:-[^/s]+)?) # Capture instance name stopping before first '/'
(?:/S+)* # Optional non-captured '/'-delimited qualifiers
/ # Final '/' before the daemon program name
};
my $cmdpidre = qr{(?x)
G # Continue from previous match
(S+)[(d+)]:s+ # command[pid]:
};
my %smtpd;
my %smtp;
my %transaction;
my $i = 0;
my %seqno;
my %isagent = map { ($_, 1) } @agents;
while (<>) {
next unless m{$instre}ogc; my $inst = $1;
next unless m{$cmdpidre}ogc; my $command = $1; my $pid = $2;
if ($command eq "smtpd") {
if (m{Gconnect from }gc) {
# Start new log
$smtpd{$pid}->{"log"} = $_; next;
}
$smtpd{$pid}->{"log"} .= $_;
if (m{G(w+): client=}gc) {
# Fresh transaction
my $qid = "$inst/$1";
$smtpd{$pid}->{"qid"} = $qid;
$transaction{$qid} = $smtpd{$pid}->{"log"};
$seqno{$qid} = ++$i;
next;
}
my $qid = $smtpd{$pid}->{"qid"};
$transaction{$qid} .= $_
if (defined($qid) && exists $transaction{$qid});
delete $smtpd{$pid} if (m{Gdisconnect from}gc);
next;
}
if ($command eq "pickup") {
if (m{G(w+): uid=}gc) {
my $qid = "$inst/$1";
$transaction{$qid} = $_;
$seqno{$qid} = ++$i;
}
next;
}
# bounce(8) logs transaction start after cleanup(8) already logged
# the message-id, so the cleanup log entry may be first
#
if ($command eq "cleanup") {
next unless (m{G(w+): }gc);
my $qid = "$inst/$1";
$transaction{$qid} .= $_;
$seqno{$qid} = ++$i if (! exists $seqno{$qid});
next;
}
if ($command eq "qmgr") {
next unless (m{G(w+): }gc);
my $qid = "$inst/$1";
if (defined($transaction{$qid})) {
$transaction{$qid} .= $_;
if (m{Gremoved$}gc) {
print delete $transaction{$qid}, "n";
}
}
next;
}
# Save pre-delivery messages for smtp(8) and lmtp(8)
#
if ($command eq "smtp" || $command eq "lmtp") {
$smtp{$pid} .= $_;
if (m{G(w+): to=}gc) {
my $qid = "$inst/$1";
if (defined($transaction{$qid})) {
$transaction{$qid} .= $smtp{$pid};
}
delete $smtp{$pid};
}
next;
}
if ($command eq "bounce") {
if (m{G(w+): .*? notification: (w+)$}gc) {
my $qid = "$inst/$1";
my $newid = "$inst/$2";
if (defined($transaction{$qid})) {
$transaction{$qid} .= $_;
}
$transaction{$newid} =
$_ . $transaction{$newid};
$seqno{$newid} = ++$i if (! exists $seqno{$newid});
}
next;
}
if ($isagent{$command}) {
if (m{G(w+): to=}gc) {
my $qid = "$inst/$1";
if (defined($transaction{$qid})) {
$transaction{$qid} .= $_;
}
}
next;
}
}
# Dump logs of incomplete transactions.
foreach my $qid (sort {$seqno{$a} <=> $seqno{$b}} keys %transaction) {
print $transaction{$qid}, "n";
}
L-iskrittura hija miktuba bil-Perl u biex titħaddem jeħtieġ li tissejvjah f'fajl kollate.pl, agħmilha eżekutibbli, u mbagħad mexxi l-fajl li tispeċifika l-fajl tal-ġurnal u tuża pgrep biex tiġbed l-informazzjoni ta 'identifikazzjoni tal-ittra li qed tfittex collate.pl /var/log/zimbra.log | pgrep'[protett bl-email]>'. Ir-riżultat se jkun output sekwenzjali ta 'linji li jkun fihom informazzjoni dwar il-moviment tal-ittra fuq is-server.
# collate.pl /var/log/zimbra.log | pgrep '<[email protected]>'
Oct 13 10:17:00 mail postfix/pickup[4089]: 4FF14284F45: uid=1034 from=********
Oct 13 10:17:00 mail postfix/cleanup[26776]: 4FF14284F45: message-id=*******
Oct 13 10:17:00 mail postfix/qmgr[9946]: 4FF14284F45: from=********, size=1387, nrcpt=1 (queue active)
Oct 13 10:17:00 mail postfix/smtp[7516]: Anonymous TLS connection established to mail.*******[168.*.*.4]:25: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Oct 13 10:17:00 mail postfix/smtp[7516]: 4FF14284F45: to=*********, relay=mail.*******[168.*.*.4]:25, delay=0.25, delays=0.02/0.02/0.16/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 878833424CF)
Oct 13 10:17:00 mail postfix/qmgr[9946]: 4FF14284F45: removed
Oct 13 10:17:07 mail postfix/smtpd[21777]: connect from zimbra.******[168.*.*.4]
Oct 13 10:17:07 mail postfix/smtpd[21777]: Anonymous TLS connection established from zimbra.******[168.*.*.4]: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Oct 13 10:17:08 mail postfix/smtpd[21777]: 0CB69282F4E: client=zimbra.******[168.*.*.4]
Oct 13 10:17:08 mail postfix/cleanup[26776]: 0CB69282F4E: message-id=zimbra.******
Oct 13 10:17:08 mail postfix/qmgr[9946]: 0CB69282F4E: from=zimbra.******, size=3606, nrcpt=1 (queue active)
Oct 13 10:17:08 mail postfix/virtual[5291]: 0CB69282F4E: to=zimbra.******, orig_to=zimbra.******, relay=virtual, delay=0.03, delays=0.02/0/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)
Oct 13 10:17:08 mail postfix/qmgr[9946]: 0CB69282F4E: removed
Għall-mistoqsijiet kollha relatati ma' Zextras Suite, tista' tikkuntattja lir-Rappreżentant ta' Zextras Ekaterina Triandafilidi bl-email [protett bl-email]
Sors: www.habr.com