<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Freebsd-jail</id>
	<title>Freebsd-jail - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Freebsd-jail"/>
	<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Freebsd-jail&amp;action=history"/>
	<updated>2026-05-30T12:53:07Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Freebsd-jail&amp;diff=1353&amp;oldid=prev</id>
		<title>\dev\null 16:20, 28 kovo 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Freebsd-jail&amp;diff=1353&amp;oldid=prev"/>
		<updated>2006-03-28T16:20:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Jail labai puikus FreeBSD sistemos featuras kuris leidžia apsaugoti virtualios sistemos procesus bei padidinti bendą sistemos saugumą. Jail'as tai ne paprastas chroot'as jail'as tai neperlaužiama sistema kuri leidžia vartotojui išnaudoti maksimalų efektyvumą kartu ir didelio saugumo pojutį.&lt;br /&gt;
&lt;br /&gt;
Kol kas jail'as palaiko tik ipv4 ir reikalauja unikalaus adreso, bet įmanoma sukčiauti ir jail'ą statyti ant loopback'o paskui pranatinus į išorę. Tai mes ir pamėginsime padaryti.&lt;br /&gt;
&lt;br /&gt;
Šis straipsnis (HowTO) tinka [[FreeBSD]] '''5.X''', '''6.X''' ir '''7.0-Current''' versijoms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Laikinas /etc/make.conf kuris bus reikalingas naujam jail'o world'ui bildint (Prieš pradėdami redaguoti seną make.conf nukopijuokite į make.conf.bak):&lt;br /&gt;
&lt;br /&gt;
 NO_ACPI=       true    # do not build acpiconf(8) and related programs&lt;br /&gt;
 NO_BOOT=       true    # do not build boot blocks and loader&lt;br /&gt;
 NO_BLUETOOTH=  true    # do not build Bluetooth related stuff&lt;br /&gt;
 NO_FORTRAN=    true    # do not build g77 and related libraries&lt;br /&gt;
 NO_GDB=        true    # do not build GDB&lt;br /&gt;
 NO_GPIB=       true    # do not build GPIB support&lt;br /&gt;
 NO_I4B=        true    # do not build isdn4bsd package&lt;br /&gt;
 NO_IPFILTER=   true    # do not build IP Filter package&lt;br /&gt;
 NO_PF=         true    # do not build PF firewall package&lt;br /&gt;
 NO_AUTHPF=     true    # do not build and install authpf (setuid/gid)&lt;br /&gt;
 NO_KERBEROS=   true    # do not build and install Kerberos 5 (KTH Heimdal)&lt;br /&gt;
 NO_LPR=        true    # do not build lpr and related programs&lt;br /&gt;
 NO_MAILWRAPPER=true    # do not build the mailwrapper(8) MTA selector&lt;br /&gt;
 NO_MODULES=    true    # do not build modules with the kernel&lt;br /&gt;
 NO_NETCAT=     true    # do not build netcat&lt;br /&gt;
 NO_NIS=        true    # do not build NIS support and related programs&lt;br /&gt;
 NO_SENDMAIL=   true    # do not build sendmail and related programs&lt;br /&gt;
 NO_SHAREDOCS=  true    # do not build the 4.4BSD legacy docs&lt;br /&gt;
 NO_USB=        true    # do not build usbd(8) and related programs&lt;br /&gt;
 NO_VINUM=      true    # do not build Vinum utilities&lt;br /&gt;
 NOATM=         true    # do not build ATM related programs and libraries&lt;br /&gt;
 NOCRYPT=       true    # do not build any crypto code&lt;br /&gt;
 NOGAMES=       true    # do not build games (games/ subdir)&lt;br /&gt;
 NOINFO=        true    # do not make or install info files&lt;br /&gt;
 NOMAN=         true    # do not build manual pages&lt;br /&gt;
 NOPROFILE=     true    # Avoid compiling profiled libraries &lt;br /&gt;
 # BIND OPTIONS&lt;br /&gt;
 NO_BIND=               true    # Do not build any part of BIND&lt;br /&gt;
 NO_BIND_DNSSEC=        true    # Do not build dnssec-keygen, dnssec-signzone&lt;br /&gt;
 NO_BIND_ETC=           true    # Do not install files to /etc/namedb&lt;br /&gt;
 NO_BIND_LIBS_LWRES=    true    # Do not install the lwres library&lt;br /&gt;
 NO_BIND_MTREE=         true    # Do not run mtree to create chroot directories&lt;br /&gt;
 NO_BIND_NAMED=         true    # Do not build named, rndc, lwresd, etc.&lt;br /&gt;
&lt;br /&gt;
Jail darymo shell skriptas:&lt;br /&gt;
&lt;br /&gt;
 # Sukuriame direktorijas&lt;br /&gt;
 JAILDIR=/usr/jail&lt;br /&gt;
 mkdir -p $JAILDIR/dev&lt;br /&gt;
 mkdir -p $JAILDIR/etc&lt;br /&gt;
 mkdir -p $JAILDIR/usr/tmp&lt;br /&gt;
 chmod 777 $JAILDIR/usr/tmp&lt;br /&gt;
 cd /usr/src/&lt;br /&gt;
 # Galite išmesti make buildworld jei prieš tai jis buvo sukompiliuotas&lt;br /&gt;
 make buildworld&lt;br /&gt;
 make installworld DESTDIR=$JAILDIR&lt;br /&gt;
 cd /usr/src/etc&lt;br /&gt;
 cp /etc/resolv.conf $JAILDIR&lt;br /&gt;
 make distribution DESTDIR=$JAILDIR NO_OPENSSH=YES NO_OPENSSL=YES&lt;br /&gt;
 cd $JAILDIR&lt;br /&gt;
 # Primontuojame devfs ir paslepiame nereikalingus devaisus.&lt;br /&gt;
 mount_devfs devfs $JAILDIR/dev&lt;br /&gt;
 devfs -m $JAILDIR/dev rule -s 4 applyset&lt;br /&gt;
 # Darome null kernel&lt;br /&gt;
 ln -s dev/null kernel&lt;br /&gt;
 # fstab'as&lt;br /&gt;
 touch $JAILDIR/etc/fstab&lt;br /&gt;
 # Panaudosime jau egzistuojantį resolv.conf&lt;br /&gt;
 cp /etc/resolv.conf $JAILDIR/etc/resolv.conf&lt;br /&gt;
 # Kopijuojame ssl nustatymus&lt;br /&gt;
 mkdir -p $JAILDIR/etc/ssl&lt;br /&gt;
 mkdir -p $JAILDIR/usr/local/openssl&lt;br /&gt;
 cp /etc/ssl/openssl.cnf $JAILDIR/etc/ssl&lt;br /&gt;
 cd $JAILDIR/usr/local/openssl/&lt;br /&gt;
 ln -s ../../../etc/ssl/openssl.cnf openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Dabar galite atstatyti make.conf:&lt;br /&gt;
&lt;br /&gt;
 mv /etc/make.conf.bak /etc/make.conf&lt;br /&gt;
&lt;br /&gt;
Keičiame jail'o rc.conf&lt;br /&gt;
&lt;br /&gt;
 hostname=&amp;quot;jail.example.com&amp;quot;    # Butinai pakeisti&lt;br /&gt;
 ifconfig_em0=&amp;quot;inet 127.0.0.2 netmask 255.255.255.255&amp;quot;&lt;br /&gt;
 defaultrouter=&amp;quot;127.0.0.1&amp;quot;        # Gateway'us&lt;br /&gt;
 clear_tmp_enable=&amp;quot;YES&amp;quot;  # Clear /tmp at startup.&lt;br /&gt;
 # Taip pat nepagailėkit uždėti didžiausią secure levelį&lt;br /&gt;
 kern_securelevel_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 kern_securelevel=&amp;quot;3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Pridedame ip prie loopback'o&lt;br /&gt;
&lt;br /&gt;
 ifconfig lo0 add 127.0.0.2&lt;br /&gt;
&lt;br /&gt;
Kad veiktų devfs pirmą kartą turime padaryti taip:&lt;br /&gt;
&lt;br /&gt;
 mount_devfs devfs $JAILDIR/devfs&lt;br /&gt;
&lt;br /&gt;
== Jail naudojimas ==&lt;br /&gt;
&lt;br /&gt;
Jei norite pasinaudoti portais ir įdiegti kai kurias programas savo jail'ą turėsite prisimontuoti portų direktoriją su nullfs tas pats galioja ir /usr/src:&lt;br /&gt;
&lt;br /&gt;
mount_nullfs /usr/ports $JAILDIR&lt;br /&gt;
mount_nullfs /usr/src $JAILDIR&lt;br /&gt;
&lt;br /&gt;
Ir pagaliau startuojame jail:&lt;br /&gt;
&lt;br /&gt;
 jail $JAILDIR jail.example.com 127.0.0.2 /bin/sh&lt;br /&gt;
jei jail'e nebus paleista servisų, demonų parašius exit jail'as išsijungs.&lt;br /&gt;
&lt;br /&gt;
Kai tik pateksite į jail galite krauti sistemos servisus:&lt;br /&gt;
&lt;br /&gt;
 /bin/sh /etc/rc&lt;br /&gt;
&lt;br /&gt;
Slaptažodžio keitimas ir nereikalingų vartotojų pašalinimas:&lt;br /&gt;
&lt;br /&gt;
 vipw&lt;br /&gt;
 passwd root&lt;br /&gt;
&lt;br /&gt;
Dabar lasvai galite diegti openssh iš portų:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/security/openssh&lt;br /&gt;
 make install clean&lt;br /&gt;
&lt;br /&gt;
'''Automatinis jail'o startavimas sistemos krovimosi metu'''.&lt;br /&gt;
&lt;br /&gt;
į /etc/rc.local įrašykite:&lt;br /&gt;
&lt;br /&gt;
 ifconfig lo0 add 127.0.0.2&lt;br /&gt;
&lt;br /&gt;
į /etc/rc.conf įrašykite:&lt;br /&gt;
&lt;br /&gt;
 jail_enable=&amp;quot;YES&amp;quot;        # pakeiskite į no jei nenorite, kad automatiškai startuotų jail'as&lt;br /&gt;
 jail_list=&amp;quot;cell&amp;quot;            # tarpais atskirti jail'ų pavadinimai kuriuos įkrauti&lt;br /&gt;
 jail_set_hostname_allow=&amp;quot;NO&amp;quot; # Ar leisti jail'o root'ui keisti hostneimą&lt;br /&gt;
 jail_socket_unixiproute_only=&amp;quot;YES&amp;quot; # Routinti tiktai TCP/IP jail'ui &lt;br /&gt;
 jail_cell_rootdir=&amp;quot;/usr/jail&amp;quot;&lt;br /&gt;
 jail_cell_hostname=&amp;quot;cell.example.com&amp;quot;&lt;br /&gt;
 jail_cell_ip=&amp;quot;127.0.0.2&amp;quot;&lt;br /&gt;
 jail_cell_exec_start=&amp;quot;/bin/sh /etc/rc&amp;quot;&lt;br /&gt;
 jail_cell_devfs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 jail_cell_devfs_ruleset=&amp;quot;devfsrules_jail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Valdymas ==&lt;br /&gt;
&lt;br /&gt;
Reiktų primontuoti sistemos portus ir išeitinius kodos vėlesiam jail'o atnaujinimui, portų įdiegimui:&lt;br /&gt;
&lt;br /&gt;
mount_nullfs /usr/ports $JAILDIR&lt;br /&gt;
mount_nullfs /usr/src $JAILDIR&lt;br /&gt;
&lt;br /&gt;
jls komanda parodo kokie jail'ai yra paleisti:&lt;br /&gt;
&lt;br /&gt;
 #jls&lt;br /&gt;
    JID  IP Address      Hostname                      Path&lt;br /&gt;
     1  127.0.0.2       cell.example.com              /usr/jail&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie jail'o ar komandų vykdymas jame vyksta pasitelkiant jexec komanda.&lt;br /&gt;
pvz: startuojame sh shell'ą.&lt;br /&gt;
&lt;br /&gt;
 jexec 1 /bin/sh&lt;br /&gt;
&lt;br /&gt;
Išėjimas iš jail'o:&lt;br /&gt;
&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Jail'o panaikinimas, vykdomas jail'o root'e.&lt;br /&gt;
&lt;br /&gt;
 kill -KILL -1, arba kill -TERM -1 tada exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tinklas ==&lt;br /&gt;
&lt;br /&gt;
'''Dėmesio!''' Jei norite, kad jail'e veiktų internet'as reikia iš pradžių prasinatinti pasinaudojus pvz packet filteriu:&lt;br /&gt;
į /etc/pf.conf įrašome:&lt;br /&gt;
&lt;br /&gt;
 nat on išorinis_iface from 127.0.0.2 to any -&amp;gt; išorinis_ip&lt;br /&gt;
&lt;br /&gt;
perkrauname packet filterio taisykles &lt;br /&gt;
&lt;br /&gt;
 pfctl -f /etc/pf.conf&lt;br /&gt;
&lt;br /&gt;
Taip pat jei jail'e norite naudoti tinklo servisus kurie interaktyvaus su išorinio pasaulio vartotojais reikia atsiforwardinti portus pvz praforwardinsime ssh:&lt;br /&gt;
&lt;br /&gt;
 rdr on išorinis_iface proto tcp from any to išorinis_ip port 21 -&amp;gt; 127.0.0.2&lt;br /&gt;
&lt;br /&gt;
irašome į /etc/pf.conf ir perkrauname:&lt;br /&gt;
&lt;br /&gt;
 pfctl -f /etc/pf.conf&lt;br /&gt;
&lt;br /&gt;
== Problemos ==&lt;br /&gt;
&lt;br /&gt;
Jei neveikia tam tikri įrankiai pvz: telnet'as reikalauja papildomų bibliotekų kurių nėra jūsų jail'e jas rasite savo sistemos /lib ir /usr/lib direktorijose. Jas galite iškarto persikopijuoti į jail'ą, kad nekiltu problemų:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/lib&lt;br /&gt;
 cp * /usr/jail/usr/lib&lt;br /&gt;
 cd /lib&lt;br /&gt;
 cp * /usr/jail/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD]]&lt;/div&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
</feed>