Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Sep 2013 10:22:35 -0500 (CDT)
From:      "Valeri Galtsev" <galtsev@kicp.uchicago.edu>
To:        "olevole" <olevole@olevole.ru>
Cc:        freebsd-doc@freebsd.org, freebsd-jail@freebsd.org
Subject:   Re: handbook chapter for jail best practices needs for security  remark
Message-ID:  <23025.128.135.70.2.1378308155.squirrel@cosmo.uchicago.edu>
In-Reply-To: <2169287.FiyytKgDHO@gizmo.nevosoft.local>
References:  <2169287.FiyytKgDHO@gizmo.nevosoft.local>

next in thread | previous in thread | raw e-mail | index | archive | help
Nice observation!

Yet: for that to work both rw and ro portions mounted inside the same jail
have to be on the same filesystem. For hardlinks to work, both parts of
hardlink ("source" and "destination") should be on the same filesystem.
Even though I'm not considering myself an expert in security, I will never
have ro and rw filesystem (mounted inside the same jail) to live
physically on the same filesystem...

That said, I'm never using ezjail or some other scripts to lay out jails
for me. So, apart from making a warning in handbook (which is always
instructive and educational!), one may need to audit jail creating
scripts. I'm certain, they are good about that (and my great respects to
authors!), but taking an extra look at specific thing never hurts.

Thanks.
Valeri

On Wed, September 4, 2013 4:40 am, olevole wrote:
> Mounting directory via nullfs when RW part mounted above RO from one
> filesystem
> is insecure for RO location,
> because it allows you to edit a file by hardlink on RO place, due to the
> fact
> that the files have one inode.
>
> For example (by root user):
>
> % mkdir /usr/chroot
> % bsdinstall jail /usr/chroot
> % mount_nullfs -oro /bin /usr/chroot/bin
> % mkdir /rw
> % mount_nullfs /rw /usr/chroot/root
>
> % chroot /usr/chroot
> % touch /bin/date
> touch: /bin/date: Read-only file system
>
> % cd ~
> % ln /bin/date
> % ls -i /bin/date /root/date
> 58182 /bin/date         58182 /root/date
>
> (open /root/date in vi editor and change something)
> % vi date
> dd
> :wq!
>
> (logout from chroot)
> % exit
>
> (now /bin/date is corrupted)
> % /bin/date
> /bin/date: Exec format error. Binary file not executable.
>
> Such scheme when the RW data is overlaid above RO data is popular for jail
> hosting and described in Handbook:
>
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails-application.html
>
> Perhaps it is worth mentioning in the article about
> the need to separate base to cross-device storage or place it on a
> read-only
> system.
>
> _______________________________________________
> freebsd-jail@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-jail
> To unsubscribe, send any mail to "freebsd-jail-unsubscribe@freebsd.org"
>


++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev
Sr System Administrator
Department of Astronomy and Astrophysics
Kavli Institute for Cosmological Physics
University of Chicago
Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++



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