Már 3 napja próbálok összehozni egy működő freebsd-n egy jailt, de bevallom férfiasan nem értem ezt az egész jail-esdit.
A létrehozást így csinálom:
JAIL="/home/jail/osiris
mkdir -p $JAIL
cd /usr/src
make world DESTDIR=$JAIL -DNOCLEAN
cd etc
make distribution DESTDIR=$JAIL NO_MAKEDEV=yes
cd $JAIL/dev
mount_devfs dev $JAIL/dev
mount -t procfs proc $JAIL/proc
cd $JAIL
ln -sf dev/null kernel
touch $JAIL/etc/fstab
grep nameserver /etc/resolv.conf > $JAIL/etc/resolv.conf
echo "sendmail_enable=\"NONE\"" >> $JAIL/etc/rc.conf
echo "portmap_enable=\"NO\"" >> $JAIL/etc/rc.conf
echo "rpcbind_enable=\"NO\"" >> $JAIL/etc/rc.conf
echo "cron_enable=\"NO\"" >> $JAIL/etc/rc.conf
echo "syslogd_flags=\"-ss\"" >> $JAIL/etc/rc.conf
echo "sshd_enable=\"YES\"" >> $JAIL/etc/rc.conf
aztán ha ez megvan akkor
ifconfig rl0 inet alias 192.168.1.199/32 ( a host-é a 192.168.1.200)
mount_procfs procfs $JAIL/proc
mount_devfs devfs $JAIL/dev
majd:
jail /home/jail/osiris osiris 192.168.1.199 /bin/sh
itt beállítottam a root jelszavát, usereket, ssh-t stb.
végül:
jail /home/jail/osiris osiris 192.168.1.199 /bin/sh /etc/rc
A kérdéseim:
1. Menedzselni jail-t ssh-n kell/lehet csak?
2. Hogyan tudom a host rendszeren beállítani hogy automatikusan induljon a jail?
(mert ugye a host rendszerről kell az inet alias meg a mount stb. reboot után nem marad meg. irjam az rc.confba?)
3. Honnan látom a host rendszerről hogy fut e a jail?
4. Lehet-e csak a jail rendszert újraindítani?
5. Van-e ennél egyszerűbb módszer egy jail létrehozására?
- 3395 megtekintés
Hozzászólások
0. cp /etc/localtime $JAIL/etc
1. igen
2. rc.conf
3. jls
4. # /etc/rc.d/jail start
# /etc/rc.d/jail stop
# /etc/rc.d/jail start jail_name
# /etc/rc.d/jail stop jail_name
5. tudomásom szerint nincs
- A hozzászóláshoz be kell jelentkezni
5. talán ez, de nem próbáltam.
http://www.the-labs.com/FreeBSD/JailTools/fbsd_jails.html#introduction
- A hozzászóláshoz be kell jelentkezni
Ez erdekelne, hasznalta mar valaki?
- A hozzászóláshoz be kell jelentkezni
Hát izé. Ott van rc.conf-ban a lehetőség a jailt indítani stb.
man jail
grep jail /etc/defaults/rc.conf
man jls
man jexec
Mindenek előtt: http://www.onlamp.com/pub/a/bsd/2003/09/04/jails.html
Annó találtam egy jailes linket a handbookban, de most sehol sem lelem. :(
A jailbe a procfs folosleges imho.
- A hozzászóláshoz be kell jelentkezni
Én nemrég kezdtem el kísérletezni a portsban található ezjail-lel, ez különösen akkor jön jól, ha sok, egymástól nem túlságosan különböző jailt kell felhúzni. Előnye (persze adott esetben ez hátrány lehet), hogy igény szerint mount_nullfs-sel mountol ports és src fákat, így egy jail sokkal kevesebb helyet foglal.
Bővebben itt
- A hozzászóláshoz be kell jelentkezni
senki nem tiltja a sima jail-ben sem a nullfs-t...
(már ha kernelben van)
- A hozzászóláshoz be kell jelentkezni
Igen, de ha olvastal volna, akkor lathatnad, hogy itt az alaprendszer (/bin, /usr/bin, stb.)is csatolva van, raadasul read-only, igy egy frissen letrehozott jail alapbol csak nehany mega. Igaz, hogy ez is csak egy sh script, de nem akartam feltalalni a spanyolviaszt, es nekem pont megfelel.
- A hozzászóláshoz be kell jelentkezni
Mi úgy csináljuk, hogy van egy jail.sh ami gyakorlatilag egy init script:
#!/bin/sh
case "$1" in
start)
jail -u root /home/JAIL-3 acid.rain.hu 84.21.31.223 /initRC &
;;
esac
Az initRC scriptünk pedig igy néz ki:
#!/bin/sh
/bin/sh /etc/rc.d/syslogd start
/bin/sh /etc/rc.d/sshd start
/bin/sh /etc/rc.d/cron start
/bin/sh /usr/local/etc/rc.d/000.apache2libs.sh start
/bin/sh /usr/local/etc/rc.d/apache2.sh start
/bin/sh /usr/local/etc/rc.d/mysql-server.sh start
/bin/sh /usr/local/etc/rc.d/pure-ftpd.sh start
/usr/local/sbin/postfix start
while true ; do
sleep 3600
done
Ez nem a standard freebsds megoldás, de eddig hiba nélkül igy megy 20 szerverünkön.
Jailt managelni pedig vagy sshn keresztül tudod, vagy jexec -el.
elöször jls el megnézed a jail számát
aztán pl.: jexec 1 csh.
Ezt azért preferálom mert pl w -vel nem látszik, hogy éppen te is turkálsz a gépen, nem úgy, mint ssh esetében.
- A hozzászóláshoz be kell jelentkezni
És nem árt natolni, ha más tartományban van a jailed.
rdr halo_kartya publikus_ip/32 port xxx -> belső port xxx tcp
- A hozzászóláshoz be kell jelentkezni
Azt meg tudja valaki mondani, hogy ha portsban frissítek valamit a jail-en kívül, akkor a jail-en belüli változata is frissül? Tehát ha egy spamassassint frissítek, akkor a jail-es is frissül?
- A hozzászóláshoz be kell jelentkezni
Ha jailen belül is használod spamassassint, akkor nem.
- A hozzászóláshoz be kell jelentkezni
Akkor azt hogyan tudom frissíteni?
- A hozzászóláshoz be kell jelentkezni
Két lehetőséged van.
Felfrissíted a főgépet és teljes /bin /usr /lib cserét tartasz a jailekben.
Vagy a főgéphez hasonlóan hajtod végre az alkalmazás upgradet a portstreeböl.
- A hozzászóláshoz be kell jelentkezni
Jailben is kell frissíteni, mivel "független" rendeszer.
- A hozzászóláshoz be kell jelentkezni