Zmienić lokalizację pliku dziennika sshd na CentOS?

14

Jak zmienić sshdlokalizację pliku dziennika w CentOS? sshdloguje się do /var/log/messageszamiast /var/log/secure. Jak mogę zmienić to ustawienie, aby sshdzatrzymać wysyłanie dzienników /var/log/messages?

Jidrick
źródło
1
Ciągle piszesz, /var/log/messageczy to naprawdę lokalizacja? Jest ogólnie /var/log/messages.
slm
1
@slm tutaj było /var/log/messages, może OP ma oba ;-)
Anthon
W moim systemie Ubuntu log ssh jest włączony/var/log/auth.log
Eric Wang

Odpowiedzi:

18

Prześlij swoje sshd_configcoś, co wydaje się być gotowe. Zapasowy system CentOS zawsze się loguje /var/log/secure.

Przykład

$ sudo tail -f /var/log/secure
Feb 18 23:23:34 greeneggs sshd[3545]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Feb 18 23:23:36 greeneggs sshd[3545]: Failed password for root from ::1 port 46401 ssh2
Feb 18 23:23:42 greeneggs unix_chkpwd[3555]: password check failed for user (root)
Feb 18 23:23:42 greeneggs sshd[3545]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Feb 18 23:23:43 greeneggs sshd[3545]: Failed password for root from ::1 port 46401 ssh2
Feb 18 23:23:48 greeneggs sshd[3545]: Accepted password for root from ::1 port 46401 ssh2
Feb 18 23:23:48 greeneggs sshd[3545]: pam_unix(sshd:session): session opened for user root by (uid=0)
Feb 18 23:24:05 greeneggs sshd[3545]: Received disconnect from ::1: 11: disconnected by user
Feb 18 23:24:05 greeneggs sshd[3545]: pam_unix(sshd:session): session closed for user root
Feb 18 23:27:15 greeneggs sudo:     saml : TTY=pts/3 ; PWD=/home/saml ; USER=root ; COMMAND=/bin/tail /var/log/secure

Jest to kontrolowane poprzez /etc/ssh/sshd_config:

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

Jak również zawartość /etc/rsyslog.conf:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

Twój problem

W jednym z komentarzy wspomniałeś, że rsyslogdplik konfiguracyjny został nazwany /etc/rsyslog.config. To nie jest prawidłowa nazwa tego pliku i prawdopodobnie jest to powód, dla którego twoje logowanie jest zepsute. Zmień nazwę tego pliku na, /etc/rsyslog.confa następnie uruchom ponownie usługę rejestrowania.

$ sudo service rsyslog restart
slm
źródło
Dzięki, zastanawiałem się, czy „SyslogFacility AUTHPRIV” jest komentowane. Skąd sshd wie, jakie są wartości domyślne? Czy wartości domyślne są przechowywane w miejscu, które można edytować?
Jidrick
Domyślne są w kodzie źródłowym, który został użyty do skompilowania sshdpliku wykonywalnego. Jeśli chcesz zastąpić ustawienia domyślne, możesz podać sshdopcje wiersza polecenia lub edytować jego plik konfiguracyjny.
Mark Plotnick
@MarkPlotnick - tak, jak zwykle dzieje się to w plikach konfiguracyjnych (jak pokazano powyżej), wartości domyślne są pokazane w pliku konfiguracyjnym, ale są następnie przetwarzane. Tak sshzostało skompilowane, aby LogLevelbyło ustawione INFOdomyślnie. Aby go pominąć, musisz odkomentować tę linię, a następnie zmienić jej wartość.
slm
3

Domyślna sshdfunkcja syslog to AUTH, więc będzie logowana w syslog do /var/log/messages.

Aby utworzyć sshddziennik w nowym pliku, możesz zmienić narzędzie syslog na coś innego, a następnie skonfigurować syslog, aby logował ten nowy obiekt do nowego pliku, tj .:

W sshd_config dodaj ten wiersz:

SyslogFacility AUTHPRIV

Następnie w syslog.conf:

authpriv.* /var/log/secure
Cuonglm
źródło
@Jidrick - coś jest nie tak z twoim urządzeniem. Wygląda na zepsute i brakujące rzeczy.
slm
@Jidrick: możesz sprawdzić inne podobne do rsyslog?
cuonglm
@Gnouc - SyslogFacility AUTHPRIVjest już domyślny w dystrybucjach RH. Zastępują go jako część opakowania.
slm
@Gnouc Tak, ale zmiana tego nie wydaje się działać.
Jidrick
@Jidrick - zmień nazwę pliku /etc/rsyslog.configna /etc/rsyslog.conf.
slm