tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: chrooted ftpd?
> As Christos pointed out, the traditional ftp is intended to run as
> root so it can itself do chroot() calls. Otherwise, ftpchroot isn't
> going to accomplish much.
Yeah, I came to that conclusion myself. I added code so that it
doesn't bother doing the chroot call if the string that would be passed
to it is "/", so it doesn't get gratuitous errors, but that's a frill.
For my purposes I abandoned making the user a chroot user.
>> (Turns out an entry in ftpchroot doesn't allow access without an
>> entry in ftpusers too.)
> That sounds like a condition that should be logged, because it's a
> config error. But probably it never gets as far as even opening
> ftpchroot.
I'm not sure - I no longer have the trace file - but I think ktrace
said it did.
>> Turns out getpwent() refuses to even _try_ to read spwd.db unless
>> geteuid() returns zero!!
> I expect the intent was to protect fools who write their own code
> using getpwent, run it unprivileged, and try to chmod 644 to make it
> work without thought for the consequences.
Hm, possibly. It's the first scenario I've seen mentioned where that
bit of code actually protects against something.
> Seems misguided though as that grade of fool will just do chmod +s
> instead.
True, but then the attacker is restricted to finding holes in said
fool's code, rather than being able to just waltz off with a copy of
spwd.db. (Admittedly, finding holes in code written by that grade of
fool is probably about as difficult as copying a mode 644 file.)
> You might be able to use nsswitch.conf to have it get passwords from
> elsewhere, although I don't think there any of the currently
> supported alternate methods are simple.
Possibly. But, as I think I mentioned upthread, I realized on reading
the code that spwd.db and pwd.db have the same structure - the code to
read the db doesn't know or care which it's reading - so I just renamed
spwd.db to pwd.db and made it mode 644. It's an additional step every
time something needs to change the ftp root's master.passwd, but that's
acceptable in this case.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index