Добрый день. На FreeBSD 5.4 из портов установлен popa3d. Запускается посредством inetd. Логи собираются с помощью syslog-а. Проблема в том, что в логи не попадает информация относительно ip адреса и имени хоста обратившегося на сервер. Если запускать inetd с ключем -l, то в auth.log падает информация о имени хоста. Однако, такой вариант не устраивает, поскольку через inetd запускается много других сервисов и в логах оказывается много лишнего. Подскажите, пожалуйста, как можно уговорить popa3d логировать ip адрес хоста, обратившегося на сервер.
Как заставить popa3d писать в лог ip-шник юзера
В /etc/hosts.allow в самом начале!!!(man hosts_access;man hosts_options):
# IP в REMOTE_ADDR
popa3d: ALL : setenv REMOTE_ADDR %a : allow
# имя хоста в REMOTE_ADDR
popa3d: ALL : setenv REMOTE_ADDR %h : allow
--- pop_auth_old.c Thu Sep 6 05:52:35 2001
+++ pop_auth.c Mon Oct 7 13:52:18 2002
@@ -6,6 +6,7 @@
#include <unistd.h>
#include <string.h>
#include <syslog.h>
+#include <stdlib.h>#include "misc.h"
#include "params.h"
@@ -83,7 +84,7 @@
}
#endif
syslog(result == AUTH_OK ? SYSLOG_PRI_LO : SYSLOG_PRI_HI,
- "Authentication %s for %s",
+ "Authentication %s for %s (%s)",
result == AUTH_OK ? "passed" : "failed",
- user ? user : "UNKNOWN USER");
+ user ? user : "UNKNOWN USER", getenv("REMOTE_ADDR"));
}
lexleo, спасибо тебе добрый человек все работает в лучшем виде. Мне чтобы такой трюк самому осилить знаний бы не хватило :)