Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Feb 2003 07:16:15 -0800
From:      "Mooneer Salem" <mooneer@translator.cx>
To:        "Pawel Jakub Dawidek" <nick@garage.freebsd.pl>
Cc:        "FreeBSD Hackers" <freebsd-hackers@freebsd.org>
Subject:   RE: Jail seperation patch
Message-ID:  <FHEMJMOKKMJDGKFOHHEPMECPFDAA.mooneer@translator.cx>
In-Reply-To: <20030227094242.GJ330@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

Actually, I just gave it blah.lifeafterking.org in /etc/hosts. 10.0.0.4
really *is* in the same jail:

%ifconfig
lnc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 10.0.0.3 netmask 0xffffffff broadcast 10.0.0.3
        inet 10.0.0.4 netmask 0xffffffff broadcast 10.0.0.4
        ether 00:50:56:e0:26:54
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
%hostname
test.lifeafterking.org
%

As for the hide files code, I found a possible location for it, in
vfs_subr.c (extattr_check_cred()). I added
this block to it:

/* Check to make sure outside user can actually access jailed files */
if (cred->cr_prison && cred->cr_uid != 0 && jail_hide_files) {
                LIST_FOREACH(element, &firstjail, pointers) {
                                if (element->pr == cred->cr_prison) {
                                                break;
                                }
                }

                if (!strncmp(element->chroot_path,
vp->v_mount->mnt_stat.f_mntonname,
                    strlen(element->chroot_path)) {
                                return (EPERM);
                }
}

This ensures the check is only run if the sysctl variable equals 1.

Thanks,

--
Mooneer Salem
GPLTrans: http://www.translator.cx/
lifeafterking.org: http://www.lifeafterking.org/

-----Original Message-----
From: owner-freebsd-hackers@FreeBSD.ORG
[mailto:owner-freebsd-hackers@FreeBSD.ORG]On Behalf Of Pawel Jakub Dawidek
Sent: Thursday, February 27, 2003 1:43 AM
To: Mooneer Salem
Cc: FreeBSD Hackers
Subject: Re: Jail seperation patch


On Wed, Feb 26, 2003 at 02:48:25PM -0800, Mooneer Salem wrote:
+> 1. It handles at least case 1 just fine:
+>
+> %telnet 10.0.0.2 25
+> Trying 10.0.0.2...
+> Connected to pacific.lifeafterking.org.
[...]
+> %telnet 10.0.0.3 25
+> Trying 10.0.0.3...
+> Connected to test.lifeafterking.org..
[...]
+> %telnet 10.0.0.4 25
+> Trying 10.0.0.4...
+> Connected to blah.lifeafterking.org..

Nope, this is incorrect behaviour. INADDR_ANY in jail means: 10.1.1.2 or
10.1.1.3, but not 10.1.1.4.

+> 2. Neat. :) I'm going to add sysctls when I get a chance for the mount
+> hiding. Also, I'm going to take a look
+> at the VFS code and see if I can hide files from non-root non-jailed
users.

??? Everything that you can check IMHO is to check every parent directory
of opened file if it isn't equal to jail chroot directory.
But this is slow and stupid, because there could be many jails with shared
chroot directory.

+> 3. Does multi-level jailing add any further restrictions to the jails
within
+> the jails, besides the standard ones
+> imposed?

Nope, but jail runned in jail can't use IPs that aren't binded to parent
jail and securelevels are checked recursively.

--
Pawel Jakub Dawidek
UNIX Systems Administrator
http://garage.freebsd.pl
Am I Evil? Yes, I Am.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FHEMJMOKKMJDGKFOHHEPMECPFDAA.mooneer>