Hvernig á að vinna með Zimbra OSE logs

Skráning allra atburða sem eiga sér stað er ein mikilvægasta aðgerð hvers fyrirtækjakerfis. Dagskrár gera þér kleift að leysa vandamál sem koma upp, endurskoða rekstur upplýsingakerfa og einnig rannsaka upplýsingaöryggisatvik. Zimbra OSE heldur einnig ítarlegar skrár yfir starfsemi sína. Þau innihalda öll gögn frá frammistöðu miðlara til að senda og taka á móti tölvupósti frá notendum. Hins vegar er frekar lítið verkefni að lesa annálana sem Zimbra OSE býr til. Í þessari grein, með því að nota tiltekið dæmi, munum við segja þér hvernig á að lesa Zimbra OSE logs, svo og hvernig á að gera þá miðlæga.

Hvernig á að vinna með Zimbra OSE logs
Zimbra OSE geymir alla staðbundna annála í /opt/zimbra/log möppunni og annála er einnig að finna í /var/log/zimbra.log skránni. Það mikilvægasta af þessu er mailbox.log. Það skráir allar aðgerðir sem eiga sér stað á póstþjóninum. Þetta felur í sér sendingu tölvupósta, notendavottunargögn, misheppnaðar innskráningartilraunir og fleira. Færslur í mailbox.log eru textastrengur sem inniheldur tímann sem atburðurinn átti sér stað, stig atburðarins, þráðarnúmerið þar sem atburðurinn átti sér stað, notandanafn og IP-tölu, auk textalýsingu á atburðinum. .

Hvernig á að vinna með Zimbra OSE logs

Logstigið gefur til kynna hversu mikil áhrif atburðurinn hefur á rekstur netþjónsins. Sjálfgefið eru 4 atburðarstig: INFO, WARN, ERROR og FATAL. Við skulum skoða öll stig í vaxandi alvarleikaröð.

  • UPPLÝSINGAR - Viðburðir á þessu stigi eru venjulega ætlaðir til að upplýsa um framvindu Zimbra OSE. Skilaboð á þessu stigi innihalda skýrslur um stofnun eða eyðingu pósthólfs og svo framvegis.
  • VARNA - atburðir á þessu stigi upplýsa um aðstæður sem eru hugsanlega hættulegar, en hafa ekki áhrif á rekstur netþjónsins. Til dæmis, WARN stigið merkir skilaboð um misheppnaða notandainnskráningartilraun.
  • VILLA - þetta atviksstig í skránni upplýsir um tilvik villu sem er staðbundin í eðli sínu og truflar ekki rekstur netþjónsins. Þetta stig getur flaggað villu þar sem vísitölugögn einstaks notanda hafa verið skemmd.
  • FATAL - þetta stig gefur til kynna villur sem valda því að þjónninn getur ekki haldið áfram að starfa eðlilega. Til dæmis mun FATAL stigið vera fyrir skrá sem gefur til kynna vanhæfni til að tengjast DBMS.

Notkunarskrá póstþjónsins er uppfærð á hverjum degi. Nýjasta útgáfan af skránni ber alltaf nafnið Mailbox.log, en annálar fyrir ákveðna dagsetningu hafa dagsetningu í nafninu og eru í skjalasafninu. Til dæmis mailbox.log.2020-09-29.tar.gz. Þetta gerir það miklu auðveldara að taka öryggisafrit af athafnaskrám og leita í annálum.

Til þæginda fyrir kerfisstjórann inniheldur /opt/zimbra/log/ möppan aðra annála. Þau innihalda aðeins færslur sem tengjast sérstökum Zimbra OSE þáttum. Til dæmis, audit.log inniheldur aðeins færslur um auðkenningu notenda, clamd.log inniheldur gögn um virkni vírusvarnarsins og svo framvegis. Við the vegur, frábær aðferð til að vernda Zimbra OSE miðlara fyrir boðflenna er netþjónsvörn með Fail2Ban, sem virkar bara byggt á audit.log. Það er líka góð venja að bæta við cron verkefni til að framkvæma skipunina grep -ir „ógilt lykilorð“ /opt/zimbra/log/audit.logtil að fá daglegar upplýsingar um bilun í innskráningu.

Hvernig á að vinna með Zimbra OSE logs
Dæmi um hvernig audit.log sýnir lykilorð sem er slegið inn tvisvar rangt og árangursríka innskráningartilraun.

Skrár í Zimbra OSE geta verið mjög gagnlegar til að bera kennsl á orsakir ýmissa mikilvægra bilana. Á því augnabliki þegar mikilvæg villa kemur upp hefur stjórnandinn venjulega ekki tíma til að lesa annálana. Nauðsynlegt er að endurheimta þjóninn eins fljótt og auðið er. Hins vegar, seinna, þegar þjónninn er afritaður og býr til mikið af annálum, getur verið erfitt að finna nauðsynlega færslu í stórri skrá. Til þess að finna villuskrá fljótt er nóg að vita hvenær þjónninn var endurræstur og finna færslu í annálunum frá þessum tíma. Fyrri færslan mun vera skrá yfir villuna sem átti sér stað. Þú getur líka fundið villuboðin með því að leita að lykilorðinu FATAL.

Zimbra OSE logs gera þér einnig kleift að bera kennsl á ekki mikilvægar bilanir. Til dæmis, til að finna undantekningar meðhöndlunar, getur þú leitað að undantekningu meðhöndlunar. Oft fylgja villum sem framleiddar eru af meðhöndlum staflarekja sem útskýrir hvað olli undantekningunni. Ef upp koma villur í póstsendingu ættir þú að hefja leitina með LmtpServer lykilorðinu og til að leita að villum sem tengjast POP eða IMAP samskiptareglum geturðu notað ImapServer og Pop3Server lykilorðin.

Dagskrár geta einnig hjálpað til við að rannsaka upplýsingaöryggisatvik. Við skulum líta á ákveðið dæmi. Þann 20. september sendi einn starfsmanna vírussmitað bréf til viðskiptavinar. Fyrir vikið voru gögnin á tölvu viðskiptavinarins dulkóðuð. Hins vegar sver starfsmaðurinn að hann hafi ekki sent neitt. Sem hluti af rannsókninni á atvikinu biður öryggisþjónusta fyrirtækisins um frá kerfisstjóra póstþjónsskránna fyrir 20. september sem tengist notandanum sem verið er að rannsaka. Þökk sé tímastimplinum finnur kerfisstjóri nauðsynlega annálaskrá, dregur út nauðsynlegar upplýsingar og flytur þær til öryggissérfræðinga. Þeir líta aftur á móti í gegnum það og komast að því að IP-talan sem þetta bréf var sent frá samsvarar IP-tölu tölvu notandans. Upptökur úr eftirlitsmyndavélum staðfestu að starfsmaðurinn var á vinnustað sínum þegar bréfið var sent. Þessi gögn nægðu til að saka hann um brot á upplýsingaöryggisreglum og reka hann. 

Hvernig á að vinna með Zimbra OSE logs
Dæmi um að draga færslur um einn af reikningunum úr Mailbox.log innskráningu í sérstaka skrá

Allt verður miklu flóknara þegar kemur að innviðum margra netþjóna. Þar sem annálum er safnað á staðnum er mjög óþægilegt að vinna með þá í innviðum margra netþjóna og því er þörf á að miðstýra söfnun annála. Þetta er hægt að gera með því að setja upp hýsil til að safna annálum. Það er engin sérstök þörf á að bæta sérstökum gestgjafa við innviðina. Hvaða póstþjónn sem er getur virkað sem hnút til að safna annálum. Í okkar tilviki mun þetta vera Mailstore01 hnúturinn.

Á þessum netþjóni þurfum við að slá inn eftirfarandi skipanir:

sudo su – zimbra 
zmcontrol stop
exit
sudo /opt/zimbra/libexec/zmfixperms -e -v

Breyttu /etc/sysconfig/rsyslog skránni og stilltu SYSLOGD_OPTIONS=”-r -c 2″

Breyttu /etc/rsyslog.conf og afskrifaðu eftirfarandi línur:
$ModLoad imudp
$UDPServerRun 514

Sláðu inn eftirfarandi skipanir:

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

Þú getur athugað hvort allt sé að virka með skipuninni zmprov gacf | grep zimbraLogHostname. Eftir að skipunin hefur verið framkvæmd ætti að birta nafn hýsilsins sem safnar annálum. Til að breyta því verður þú að slá inn skipunina zmprov mcf zimbraLogHostname mailstore01.company.ru.

Á öllum öðrum innviðaþjónum (LDAP, MTA og öðrum póstverslunum) skaltu keyra skipunina zmprov gacf |grep zimbraLogHostname til að sjá nafn hýsilsins sem annálarnir eru sendir til. Til að breyta því geturðu líka slegið inn skipunina zmprov mcf zimbraLogHostname mailstore01.company.ru

Þú verður einnig að slá inn eftirfarandi skipanir á hverjum netþjóni:

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

Eftir þetta verða allir annálar skráðir á netþjóninn sem þú tilgreindir, þar sem hægt er að skoða þá á þægilegan hátt. Einnig, í Zimbra OSE stjórnborðinu, á skjánum með upplýsingum um stöðu netþjóna, mun hlaupandi Logger þjónustan aðeins birtast fyrir mailstore01 netþjóninn.

Hvernig á að vinna með Zimbra OSE logs

Annar höfuðverkur fyrir stjórnanda getur verið að halda utan um tiltekinn tölvupóst. Þar sem tölvupóstur í Zimbra OSE fer í gegnum nokkra mismunandi viðburði í einu: skanna með vírusvörn, ruslpóstsvörn og svo framvegis, áður en hann er samþykktur eða sendur, fyrir stjórnandann, ef tölvupósturinn berst ekki, getur verið ansi erfitt að rekja á hvaða stigi það var glatað.

Til að leysa þetta vandamál er hægt að nota sérstakt handrit sem var þróað af upplýsingaöryggissérfræðingnum Viktor Dukhovy og mælt með því að Postfix hönnuðir noti það. Þetta handrit tengir saman færslur úr annálum fyrir tiltekið ferli og gerir þér kleift að birta fljótt allar færslur sem tengjast sendingu tiltekins bréfs á grundvelli auðkennis þess. Verk þess hefur verið prófað á öllum útgáfum af Zimbra OSE, frá og með 8.7. Hér er texti handritsins.

#! /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";
}

Handritið er skrifað í Perl og til að keyra það þarf að vista það í skrá collate.pl, gerðu hana keyranlega og keyrðu síðan skrána sem tilgreinir annálaskrána og notaðu pgrep til að draga út auðkennisupplýsingar bréfsins sem þú ert að leita að collate.pl /var/log/zimbra.log | pgrep '[netvarið]>'. Niðurstaðan verður raðúttak af línum sem innihalda upplýsingar um hreyfingu bréfsins á þjóninum.

# 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

Fyrir allar spurningar sem tengjast Zextras Suite geturðu haft samband við fulltrúa Zextras Ekaterina Triandafilidi með tölvupósti [netvarið]

Heimild: www.habr.com