Giunsa pagtrabaho ang mga log sa Zimbra OSE

Ang pag-log sa tanan nga mga panghitabo usa sa labing hinungdanon nga gimbuhaton sa bisan unsang sistema sa korporasyon. Gitugotan ka sa mga log nga masulbad ang mga nag-uswag nga mga problema, pag-audit sa operasyon sa mga sistema sa kasayuran, ug pag-imbestiga usab sa mga insidente sa seguridad sa kasayuran. Gitipigan usab sa Zimbra OSE ang detalyado nga mga log sa operasyon niini. Naglakip sila sa tanan nga datos gikan sa pasundayag sa server hangtod sa pagpadala ug pagdawat sa mga email sa mga tiggamit. Bisan pa, ang pagbasa sa mga troso nga gihimo sa Zimbra OSE usa ka dili hinungdanon nga buluhaton. Sa kini nga artikulo, gamit ang usa ka piho nga pananglitan, isulti namon kanimo kung giunsa pagbasa ang mga log sa Zimbra OSE, ingon man kung giunsa kini paghimo nga sentralisado.

Giunsa pagtrabaho ang mga log sa Zimbra OSE
Gitipigan sa Zimbra OSE ang tanang lokal nga log sa /opt/zimbra/log folder, ug ang mga log makita usab sa /var/log/zimbra.log file. Ang labing importante niini mao ang mailbox.log. Girekord niini ang tanan nga mga aksyon nga nahitabo sa mail server. Naglakip kini sa pagpadala sa mga email, datos sa pag-authenticate sa gumagamit, napakyas nga pagsulay sa pag-login, ug uban pa. Ang mga entry sa mailbox.log usa ka text string nga naglangkob sa oras kung diin nahitabo ang panghitabo, ang lebel sa panghitabo, ang numero sa thread diin nahitabo ang panghitabo, ang user name ug IP address, ingon man usa ka text description sa panghitabo. .

Giunsa pagtrabaho ang mga log sa Zimbra OSE

Ang lebel sa log nagpakita sa lebel sa impluwensya sa panghitabo sa operasyon sa server. Sa kasagaran adunay 4 nga lebel sa panghitabo: INFO, WARN, ERROR ug FATAL. Atong tan-awon ang tanang lebel sa nagkadaghang han-ay sa kagrabe.

  • INFO - Ang mga panghitabo sa kini nga lebel sagad gituyo aron mahibal-an ang bahin sa pag-uswag sa Zimbra OSE. Ang mga mensahe sa kini nga lebel naglakip sa mga taho sa paghimo o pagtangtang sa usa ka mailbox, ug uban pa.
  • WARN - ang mga panghitabo sa kini nga lebel nagpahibalo bahin sa mga sitwasyon nga mahimo’g peligro, apan dili makaapekto sa operasyon sa server. Pananglitan, ang lebel sa WARN nagtimaan sa usa ka mensahe bahin sa usa ka napakyas nga pagsulay sa pag-login sa gumagamit.
  • ERROR - kini nga lebel sa panghitabo sa log nagpahibalo bahin sa pagkahitabo sa usa ka sayup nga lokal sa kinaiyahan ug dili makabalda sa operasyon sa server. Kini nga lebel mahimong mag-flag sa usa ka sayup diin ang data sa indeks sa indibidwal nga tiggamit nahimo’g dunot.
  • FATAL - kini nga lebel nagpaila sa mga sayup nga tungod niini ang server dili makapadayon sa pag-operate nga normal. Pananglitan, ang lebel sa FATAL alang sa usa ka rekord nga nagpakita sa kawalay katakus sa pagkonektar sa DBMS.

Ang mail server log file gi-update kada adlaw. Ang pinakabag-o nga bersyon sa file kanunay adunay ngalan nga Mailbox.log, samtang ang mga log alang sa usa ka piho nga petsa adunay petsa sa ngalan ug naa sa archive. Pananglitan mailbox.log.2020-09-29.tar.gz. Gipadali niini ang pag-back up sa mga log sa kalihokan ug pagpangita pinaagi sa mga troso.

Alang sa kasayon ​​sa tigdumala sa sistema, ang /opt/zimbra/log/ folder adunay ubang mga log. Naglakip ra sila sa mga entri nga adunay kalabotan sa piho nga mga elemento sa Zimbra OSE. Pananglitan, ang audit.log naglangkob lamang sa mga rekord mahitungod sa user authentication, clamd.log adunay mga datos mahitungod sa operasyon sa antivirus, ug uban pa. Pinaagi sa dalan, ang usa ka maayo kaayo nga pamaagi sa pagpanalipod sa usa ka Zimbra OSE server gikan sa mga intruder mao proteksyon sa server gamit ang Fail2Ban, nga naglihok lang base sa audit.log. Maayo usab nga praktis ang pagdugang usa ka buluhaton sa cron aron ipatuman ang mando grep -ir "dili balido nga password" /opt/zimbra/log/audit.logaron makadawat adlaw-adlaw nga kasayuran sa kapakyasan sa pag-login.

Giunsa pagtrabaho ang mga log sa Zimbra OSE
Usa ka pananglitan kung giunsa ang audit.log nagpakita sa usa ka password nga gisulod sa makaduha nga sayup ug usa ka malampuson nga pagsulay sa pag-login.

Ang mga log sa Zimbra OSE mahimong labi ka mapuslanon sa pag-ila sa mga hinungdan sa lainlaing mga kritikal nga kapakyasan. Sa higayon nga mahitabo ang usa ka kritikal nga sayup, ang tagdumala kasagaran walay panahon sa pagbasa sa mga troso. Gikinahanglan nga ibalik ang server sa labing dali nga panahon. Bisan pa, sa ulahi, kung ang server na-back up ug nagpatunghag daghang mga troso, mahimong lisud nga makit-an ang gikinahanglan nga pagsulod sa usa ka dako nga file. Aron dali nga makit-an ang usa ka rekord sa sayup, igo na nga mahibal-an ang oras kung diin gi-restart ang server ug makit-an ang usa ka entry sa mga log nga napetsahan gikan niini nga panahon. Ang miaging entry mahimong usa ka rekord sa sayup nga nahitabo. Makita usab nimo ang mensahe sa sayup pinaagi sa pagpangita sa keyword nga FATAL.

Gitugotan ka usab sa mga log sa Zimbra OSE nga mahibal-an ang dili kritikal nga mga kapakyasan. Pananglitan, aron makit-an ang mga eksepsiyon sa handler, mahimo nimong pangitaon ang eksepsiyon sa handler. Kasagaran, ang mga sayup nga nahimo sa mga tigdumala giubanan sa usa ka stack trace nga nagpatin-aw kung unsa ang hinungdan sa eksepsiyon. Kung adunay mga sayup sa pagpadala sa mail, kinahanglan nimo nga sugdan ang imong pagpangita gamit ang keyword nga LmtpServer, ug aron pangitaon ang mga sayup nga may kalabotan sa mga protocol sa POP o IMAP, mahimo nimong gamiton ang mga keyword nga ImapServer ug Pop3Server.

Makatabang usab ang mga log kung mag-imbestiga sa mga insidente sa seguridad sa impormasyon. Atong tan-awon ang usa ka espesipikong pananglitan. Kaniadtong Setyembre 20, usa sa mga empleyado nagpadala usa ka sulat nga nataptan sa virus sa usa ka kliyente. Ingon usa ka sangputanan, ang datos sa kompyuter sa kliyente na-encrypt. Apan, ang empleyado nanumpa nga wala siya nagpadala bisan unsa. Isip kabahin sa imbestigasyon sa insidente, ang enterprise security service naghangyo gikan sa system administrator sa mail server logs alang sa Septiyembre 20 nga may kalabutan sa user nga giimbestigahan. Salamat sa time stamp, ang administrador sa sistema nakakaplag sa gikinahanglan nga log file, gikuha ang gikinahanglan nga impormasyon ug gibalhin kini sa mga espesyalista sa seguridad. Kadtong, sa baylo, tan-awa kini ug makita nga ang IP address diin kini nga sulat gipadala katumbas sa IP address sa kompyuter sa tiggamit. Gikumpirma sa CCTV footage nga didto sa iyang trabahoan ang empleyado dihang gipadala ang sulat. Kini nga datos igo na aron akusahan siya nga nakalapas sa mga lagda sa seguridad sa kasayuran ug gipapahawa siya. 

Giunsa pagtrabaho ang mga log sa Zimbra OSE
Usa ka pananglitan sa pagkuha sa mga rekord mahitungod sa usa sa mga account gikan sa Mailbox.log log ngadto sa usa ka bulag nga file

Ang tanan nahimong labi ka komplikado kung bahin sa imprastraktura sa multi-server. Tungod kay ang mga troso gikolekta sa lokal, ang pagtrabaho uban kanila sa usa ka multi-server nga imprastraktura dili kaayo kombenyente ug busa adunay panginahanglan sa pagsentro sa pagkolekta sa mga troso. Mahimo kini pinaagi sa pagpahimutang sa usa ka host aron mangolekta og mga troso. Wala'y partikular nga panginahanglan sa pagdugang sa usa ka dedikado nga host sa imprastraktura. Ang bisan unsang mail server mahimong molihok isip usa ka node alang sa pagkolekta sa mga troso. Sa among kaso, kini ang Mailstore01 node.

Sa kini nga server kinahanglan namon nga mosulod sa ubos nga mga mando:

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

I-edit ang /etc/sysconfig/rsyslog file, ug itakda ang SYSLOGD_OPTIONS=”-r -c 2″

I-edit ang /etc/rsyslog.conf ug i-uncomment ang mosunod nga mga linya:
$ModLoad imudp
$UDPServerRun 514

Pagsulod sa mosunod nga mga sugo:

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

Mahimo nimong susihon nga ang tanan nagtrabaho gamit ang command zmprov gacf | grep zimbraLogHostname. Human sa pagpatuman sa sugo, ang ngalan sa host nga nagkolekta og mga troso kinahanglang ipakita. Aron mabag-o kini, kinahanglan nimong isulod ang command zmprov mcf zimbraLogHostname mailstore01.company.ru.

Sa tanan nga uban pang mga server sa imprastraktura (LDAP, MTA ug uban pang mga tindahan sa mail), padagana ang command zmprov gacf |grep zimbraLogHostname aron makita ang ngalan sa host diin gipadala ang mga log. Aron mausab kini, mahimo ka usab nga mosulod sa command zmprov mcf zimbraLogHostname mailstore01.company.ru

Kinahanglan ka usab nga mosulod sa mosunod nga mga sugo sa matag 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

Pagkahuman niini, ang tanan nga mga troso irekord sa server nga imong gitakda, diin kini dali nga makita. Usab, sa Zimbra OSE administrator console, sa screen nga adunay impormasyon mahitungod sa status sa mga server, ang running Logger nga serbisyo ipakita lamang alang sa mailstore01 server.

Giunsa pagtrabaho ang mga log sa Zimbra OSE

Ang laing labad sa ulo alang sa usa ka administrador mahimo nga pagsubay sa usa ka piho nga email. Tungod kay ang mga email sa Zimbra OSE nag-agi sa daghang lainlaing mga panghitabo sa usa ka higayon: pag-scan pinaagi sa antivirus, antispam, ug uban pa, sa wala pa dawaton o ipadala, alang sa tagdumala, kung ang email dili moabut, mahimo’g medyo problema ang pagsubay sa unsang yugto. nawala kini.

Aron masulbad kini nga problema, mahimo nimong gamiton ang usa ka espesyal nga script, nga gimugna sa espesyalista sa seguridad sa impormasyon nga si Viktor Dukhovny ug girekomenda nga gamiton sa mga developer sa Postfix. Kini nga script nagdugtong sa mga entry gikan sa mga troso alang sa usa ka piho nga proseso ug, tungod niini, nagtugot kanimo nga dali nga ipakita ang tanan nga mga entri nga may kalabutan sa pagpadala sa usa ka partikular nga sulat base sa identifier niini. Ang trabaho niini gisulayan sa tanang bersyon sa Zimbra OSE, sugod sa 8.7. Ania ang teksto sa script.

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

Ang script gisulat sa Perl ug sa pagdagan niini kinahanglan nimo nga i-save kini sa usa ka file collate.pl, himoa kini nga ma-executable, ug dayon padagana ang file nga nagtino sa log file ug gamit ang pgrep aron makuha ang impormasyon sa pag-ila sa sulat nga imong gipangita collate.pl /var/log/zimbra.log | pgrep '[protektado sa email]>'. Ang resulta usa ka sunod-sunod nga output sa mga linya nga adunay kasayuran bahin sa paglihok sa sulat sa 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

Para sa tanang pangutana nga may kalabotan sa Zextras Suite, mahimo nimong kontakon ang Representante sa Zextras Ekaterina Triandafilidi pinaagi sa e-mail [protektado sa email]

Source: www.habr.com