Matus UHLAR - fantomas: > Hello, > > I have set up pam_abl to automatically block hosts and users from logging. > Unfortunately, the hostname seems not to be visible in pam logs: > > May 7 17:49:38 mail pam-abl[18692]: Blocking access from (null) to service > smtp, user xxx > > is it possible to pass connecting hostname to pam somehow?
Is ths Cyrus SASL or dovecot SASL? Postfix passes the client info to Dovecot and Cyrus. Wietse smtpd_sasl_glue.c: #define ADDR_OR_EMPTY(addr, unknown) (strcmp(addr, unknown) ? addr : "") #define REALM_OR_NULL(realm) (*(realm) ? (realm) : (char *) 0) if ((state->sasl_server = XSASL_SERVER_CREATE(smtpd_sasl_impl, &create_args, stream = state->client, addr_family = state->addr_family, server_addr = ADDR_OR_EMPTY(state->dest_addr, SERVER_ADDR_UNKNOWN), server_port = ADDR_OR_EMPTY(state->dest_port, SERVER_PORT_UNKNOWN), client_addr = ADDR_OR_EMPTY(state->addr, CLIENT_ADDR_UNKNOWN), client_port = ADDR_OR_EMPTY(state->port, CLIENT_PORT_UNKNOWN), service = var_smtpd_sasl_service, user_realm = REALM_OR_NULL(var_smtpd_sasl_realm), security_options = sasl_opts_val, tls_flag = tls_flag)) == 0) msg_fatal("SASL per-connection initialization failed"); xsasl_cyrus_server.c server_addr_port = (*args->server_addr && *args->server_port ? concatenate(args->server_addr, ";", args->server_port, (char *) 0) : 0); client_addr_port = (*args->client_addr && *args->client_port ? concatenate(args->client_addr, ";", args->client_port, (char *) 0) : 0); ... if ((sasl_status = SASL_SERVER_NEW(args->service, var_myhostname, args->user_realm ? args->user_realm : NO_AUTH_REALM, server_addr_port, client_addr_port, NO_SESSION_CALLBACKS, NO_SECURITY_LAYERS, &sasl_conn)) != SASL_OK) { msg_warn("SASL per-connection server initialization: %s", xsasl_cyrus_strerror(sasl_status)); XSASL_CYRUS_SERVER_CREATE_ERROR_RETURN(0); } xsasl_dovecot_server.c: server->client_addr = mystrdup(args->client_addr); .... vstream_fprintf(server->impl->sasl_stream, "AUTH\t%u\t%s\tservice=%s\tnologin\tlip=%s\trip=%s", server->last_request_id, sasl_method, server->service, server->server_addr, server->client_addr);