in openpam_load_module(): no pam_unix.so found
Victor Star
freebsd at victorstar.com
Tue Sep 25 11:06:01 PDT 2007
Hi Mike,
Now, before I got a chance to try it out it suddenly works again.
As good of a new as it is, I don't really like things fixing themselves without my knowledge of
what's going on... Looks like a good time to start learning about rootkits. Of course there is a
possibility of some resource-related issue, but I would expect at least to see something in
messages, or other log files....
I'll keep this email for future in case it happens again.
Thank you for your help!
Victor
> On Mon, Sep 24, 2007 at 09:29:08AM -0400, Victor Star wrote:
>> ==- 8< -========================================================================
>> fireball# ldd /usr/lib/pam_unix.so
>> /usr/lib/pam_unix.so:
>> libutil.so.5 => /lib/libutil.so.5 (0x28167000)
>> libcrypt.so.3 => /lib/libcrypt.so.3 (0x28173000)
>> libypclnt.so.2 => /usr/lib/libypclnt.so.2 (0x2818b000)
>> libpam.so.3 => /usr/lib/libpam.so.3 (0x2818f000)
>> fireball# ldd /usr/lib/pam_unix.so.3
>> /usr/lib/pam_unix.so.3:
>> libutil.so.5 => /lib/libutil.so.5 (0x28167000)
>> libcrypt.so.3 => /lib/libcrypt.so.3 (0x28173000)
>> libypclnt.so.2 => /usr/lib/libypclnt.so.2 (0x2818b000)
>> libpam.so.3 => /usr/lib/libpam.so.3 (0x2818f000)
> Hmm. That all looks ok.
> The relevant code inside openpam[1] does something like
> dlopen(OPENPAM_MODULES_DIR . "/pam_unix.so.3", RTLD_NOW)
> and if that fails, tries
> dlopen(OPENPAM_MODULES_DIR . "/pam_unix.so", RTLD_NOW)
> Both of these must have failed when su ran.
> It may be worth compiling the following:
> : mike at wafer:~ ; cat dlopentest.c
> #include <dlfcn.h>
> #include <stdio.h>
> int
> main (int argc, char **argv) {
> void *dlh;
> dlh = dlopen(argv[1], RTLD_NOW);
> if (dlh) {
> printf("dlopen %s worked\n", argv[1]);
> } else {
> printf("dlopen %s failed: %s\n", argv[1], dlerror());
> }
> return 0;
> }
> : mike at wafer:~ ; make dlopentest
> cc -O2 -fno-strict-aliasing -pipe -march="pentium3" dlopentest.c -o dlopentest
> : mike at wafer:~ ; ./dlopentest /usr/lib/pam_unix.so
> dlopen /usr/lib/pam_unix.so worked
> : mike at wafer:~ ; ./dlopentest /usr/lib/pam_unix.so.3
> dlopen /usr/lib/pam_unix.so.3 worked
> : mike at wafer:~ ; ./dlopentest /usr/lib/pam_kasjajsk.so
> dlopen /usr/lib/pam_kasjajsk.so failed: Cannot open "/usr/lib/pam_kasjajsk.so"
> : mike at wafer:~ ;
> this may give you a clue as to why the dlopen failed. If that
> doesn't point at a problem, then recompile su with _openpam_debug
> = 1, and setup syslog to log LOG_DEBUG messages somewhere and see
> what happens.
> [1] assuming a version of FreeBSD suitably similar to the one I
> have here, of course.
>>
>> ==- 8< -========================================================================
>>
>> As for when it stopped working - the first thing I did is trying to recall if I updated any ports.
>> I've even went so far as looking for all files in /usr/ modified within the date range, but no,
>> nothing.
>>
>> I did update php5 couple days before that. But it still worked for about two days after that.
>> And I don't have apache/php opened to outside anyway. Just mail ports and ssh on high port (closed
>> it for now for just in case anyway).
>>
>> Victor
>>
>> >> ====- 8< -===================================================
>> >> su: in openpam_load_module(): no pam_unix.so found
>> >> su: pam_start: system error
>> >> ====- 8< -===================================================
>> >>
>> >> pam_unix.so is in /usr/lib:
>> >> ====- 8< -===================================================
>> >> # ls -l /usr/lib/pam_unix*
>> >> lrwxr-xr-x 1 root wheel 13 Sep 25 2006 /usr/lib/pam_unix.so -> pam_unix.so.3
>> >> -r--r--r-- 1 root wheel 10240 Feb 19 2007 /usr/lib/pam_unix.so.3
>> >> # file /usr/lib/pam_unix.so
>> >> /usr/lib/pam_unix.so: symbolic link to `pam_unix.so.3'
>> >> ====- 8< -===================================================
>>
>> > First, this is how a problem should be described, great work.
>>
>> > When openpam can't load a module, it also print's the 'not found' message.
>> > With 'ldd /usr/lib/pam_unix.so.3' you can see if all the libraries that
>> > it needs are in place. On my systems it give's the following output:
>>
>> > $ ldd /usr/lib/pam_unix.so.3
>> > /usr/lib/pam_unix.so.3:
>> > libutil.so.5 => /lib/libutil.so.5 (0x28169000)
>> > libcrypt.so.3 => /lib/libcrypt.so.3 (0x28175000)
>> > libypclnt.so.2 => /usr/lib/libypclnt.so.2 (0x2818d000)
>> > libpam.so.3 => /usr/lib/libpam.so.3 (0x28191000)
>>
>> >> ====- 8< -===================================================
>> >> Sep 18 11:11:37 xxxxxx su: BAD SU <myloginname> to root on /dev/ttyp3
>> >> Sep 18 11:13:46 xxxxxx sshd[45047]: Bad protocol version identification '\377\364\377\375\006quit' from <some ip here>
>> >> Sep 18 11:15:08 xxxxxx sshd[45056]: Received disconnect from <some ip here>: 2: Bad packet length 710099706.
>> >> ====- 8< -===================================================
>>
>> > The first line is probably the result of the broken pam_unix.so, the
>> > other two lines look to me as ssh bruteforce attacks.
>>
>> > But, when did it stopped working. Did you tried to update the world or something like that?
>>
>>
>>
>> --
>> Best regards,
>> Victor
>>
>> _______________________________________________
>> freebsd-stable at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
--
Best regards,
Victor
More information about the freebsd-stable
mailing list