Aktivitätsprotokollierungsstufe in SFTP

7

Ich verwende CentOS. Ich habe bereits herausgefunden, wie die SFTP-Protokollierung aktiviert werden kann. Wenn ich es danach mit FileZilla (vom Benutzer) und tail -f /var/log/sftp.logvom Server teste, werden alle Aktivitäten der Benutzer sicher protokolliert. Arbeitet super!

Aber ich habe noch einige wichtige Fragen dazu:

  • In der Protokolldatei wird nichts über den USERNAME erwähnt. Die USERNAMES werden an keiner Stelle im LOGS für jede einzelne Aktivität protokolliert / erwähnt (nur die FTP-Anmelde- / Abmeldeaktivitäten werden als einzelne Zeile unter Millionen von Zeilen protokolliert. Es ist jedoch nicht effektiv, wenn ich mehr als 1 Benutzer habe).

Zum Beispiel:

Feb 27 02:59:31 myhostname sftp-server[13307]: session opened for local user michael from [10.xxx.xxx.xxx]
Feb 27 03:01:00 myhostname sftp-server[13312]: session opened for local user jimmy from [10.xxx.xxx.xxx]
...
...
Feb 27 04:00:34 myhostname sftp-server[13307]: mkdir name "/var/www/html/nnnnn" mode 0777
...
Feb 27 04:01:30 myhostname sftp-server[13307]: rmdir name "/var/www/html/nnnnn"
Feb 27 04:01:30 myhostname sftp-server[13307]: opendir "/var/www/html"
Feb 27 04:01:30 myhostname sftp-server[13307]: closedir "/var/www/html"

In den Zeilen selbst wird KEIN BENUTZERNAME erwähnt . (Mit Ausnahme der Anmelde- / Abmeldeaktionen)
Und die andere Frage lautet:

  • Wie lange kann ich diese Protokolle aufbewahren? Ich meine, ist es möglich, wenn ich möchte, dass die LOG-DATEI die Zeilen immer bis zu den letzten 6 Monaten im Inneren hält?

Irgendeine Idee bitte?

夏 期 劇場
quelle
Ich denke, weil Sie sich als Gastkonto anmelden?
Cuonglm
Nein, es ist ein CREATED USER von root useradd xxxxx(wie Sie sehen können session opened for local user). Ich werde den Benutzernamen in der Frage ändern, was verwirrend erscheint.
期 劇場

Antworten:

7

Hier sind einige Beispiele für die Ausgabe von Protokolldateien:

Feb 26 23:04:55 pegasus internal-sftp[32524]: session opened for local user joeuser from [123.123.123.123]
Feb 26 23:04:57 pegasus internal-sftp[32524]: opendir "/home/joeuser"
Feb 26 23:04:58 pegasus internal-sftp[32524]: closedir "/home/joeuser"
Feb 26 23:05:01 pegasus internal-sftp[32524]: opendir "/home/joeuser/"
Feb 26 23:05:01 pegasus internal-sftp[32524]: closedir "/home/joeuser/"
Feb 26 23:05:02 pegasus internal-sftp[32524]: opendir "/home/joeuser/upload"
Feb 26 23:05:02 pegasus internal-sftp[32524]: closedir "/home/joeuser/upload"
Feb 26 23:05:07 pegasus internal-sftp[32524]: opendir "/home/joeuser/upload"
Feb 26 23:05:07 pegasus internal-sftp[32524]: closedir "/home/joeuser/upload"
Feb 26 23:05:09 pegasus internal-sftp[32524]: session closed for local user joeuser from [123.123.123.123]

Welcher Benutzer ist welcher?

Wenn Sie die Ausgabe oben beachten, steht in eckigen Klammern eine Zahl internal-sftp[32524]. Die Nummer lautet 32524. Dies stellt die Sitzungs-ID für den Benutzer joeuser dar, sodass Sie diese Zeichenfolge zusammen verwenden können, welche Nachrichten sich auf die Anmeldung des Benutzers beziehen.

Protokolle drehen

Sie können den Protokollrotationsplan für verschiedene Protokolle unter ändern /etc/logrotate.d/*. Jede Protokolldatei enthält normalerweise eine entsprechende Datei in diesem Verzeichnis. So können Sie syslogbeispielsweise die Datei dort ändern oder eine eigene für Ihre sftp.logProtokolldatei erstellen .

Hat logrotateauch eine Konfigurationsdatei, /etc/logrotate.confdie diese Zeilen enthält:

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

Diese werden von den Dateien im /etc/logrotate.dVerzeichnis verwendet, wenn sie keine eigene Einstellung haben. Daher werden die meisten Dateien wöchentlich gedreht und 4 davon werden aufbewahrt. Wenn Sie 6 Monate behalten möchten, wäre es 4 * 6 = 24 für die rotateOption, ungefähr 6 Monate zu behalten.

Beispiel

Wenn Sie sich /var/log/sftp.logüber sysloganmelden, müssen Sie Ihre Änderungen in dieser Datei vornehmen /etc/logrotate.d/syslog. Ihre Datei sieht nach den erforderlichen Änderungen folgendermaßen aus:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
/var/log/sftp.log
{
    rotate 24
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Da Sie diese verwenden, müssen syslogSie auch alle diese Protokolldateien drehen. Bewahren Sie diese ebenfalls im Wert von 24 Wochen auf. Wenn dies nicht akzeptabel ist, besteht Ihre einzige andere Vorgehensweise darin, einen separaten Abschnitt in dieser Datei zu erstellen, syslogwie folgt:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

/var/log/sftp.log
{
    rotate 24
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Dies hat einige Nebenwirkungen. Eine davon ist, dass Sie den syslogDaemon 2 Mal pro Woche anstatt einmal neu starten . Die Logroate-Syntax ermöglicht jedoch keine genaue Steuerung des Rotationsplans für bestimmte Logdateien, während andere nicht rotiert werden, wenn die Logdateien von demselben Dienst generiert werden, d syslog. H.

Verweise

slm
quelle
1
Vielleicht habe ich ein Missverständnis über die Frage von @ 夏 期 劇場. Er möchte einen Benutzernamen vor der Aktivität eines Benutzers, kein Anmelde- und Abmeldeereignis.
Cuonglm
Oh mein Gott! Ich glaube ich weiß es!! Die Klammern []sind die Sitzungsnummern für jeden Benutzer !!!
期 劇場
Also ok! Ich denke, wir haben es verstanden. Aber gibt es keine Möglichkeit, die Nummer richtig in den Benutzernamen zu ändern? wenn möglich als Vorteil.
期 劇場
1
@ 夏 期 劇場 - schau hier, praktizierende Leistung.com/2012/09/16/… . Es gibt ein Wrapper-Skript, das Sie als Hook für den Beginn und das Ende einer Sitzung verwenden können. Ich denke, Sie könnten dies ändern, um eine benutzerdefinierte Start- / Endnachricht (für den Anfang) zu drucken. Die andere Idee wäre, die Ausgabe von zu leiten sftp-serverund das Schreiben selbst im laufenden Betrieb durchzuführen.
slm
Hallo slm, vielen Dank. create your own for your sftp.log logfilebedeutet, ich sollte das bearbeiten /etc/logrotate.d/syslogund dann ein neues Set einfügen, wie : /var/log/sftp.log { 24 weeks }? Es tut mir leid, dass ich es nicht vollständig verstehen kann :(
夏 期 劇場