Erinevus lehekülje "FreeBSD jail" redaktsioonide vahel
(→Jaili loomine) |
|||
28. rida: | 28. rida: | ||
'''jail kiirelt ja mustalt''' | '''jail kiirelt ja mustalt''' | ||
− | Esimesena | + | Esimesena tirime cvsupiga süsteemi source |
− | |||
− | |||
nüüd loome väikese skripti, mis meisterdab meile soovitud kohta jaili valmis. jaili asukoht määratakse süsteemis muutuja D abil | nüüd loome väikese skripti, mis meisterdab meile soovitud kohta jaili valmis. jaili asukoht määratakse süsteemis muutuja D abil |
Redaktsioon: 24. jaanuar 2008, kell 01:39
Sisukord
Sissejuhatus
Jail on loogiliselt võttes virtuaalmasin, millest selle sees olevad programmid-kasutajad kuidagi välja reaalsesse süsteemi ei näe. Reaalselt on sellisest võimalusest kasu eelkõige erinevate kriitiliste rakenduste oma sandboxidesse surumiseks. Näiteks levinud on Apache panek oma jaili, et mõnes weebirakenduses ilmnev auk, mis annab ründajale apachei õigustes shelli, ei viiks automaatselt kogu süsteemi nägemiseni. Jaile kasutatakse laialt ka virtuaalserverite puhul, kus kliendile antakse oma jail ja seal võib ta root õigustega tegutseda ilma, et see kuidagi ohustaks reaalse süsteemi turvalisust.
Jail erineb host süsteemist peamiselt selle poolest, et ta on selle limiteeritud osa. Näiteks pole võimalik lisada uusi IP aadresse võrgu liidestele, samuti pole võimalik luua uusi võrguseadmeid ( gif / lo ..etc ), ei ole v6imalik mountida asju.. jaili uptime on sama mis hosti oma, jaili kernel on sama mis hosti oma.. jne.
Ühte multifunktsionaalsesse serverisse mahutatakse seega mitu monofunktsionaalset.
Kuigi jaili kirjeldus kõlab nagu oleks tegu virtuaalmasinaga, on tegu siiski kõigest lisakoodiga turvakriitiliste syscallide juures, mis tähendab, et jailiga ei kaasne mitte mingit lisa mälu overheadi.
FreeBSD jails mainly aim at three goals :
Virtualization : Each jail is a virtual environment running on the host machine with its own files, processes, user and superuser accounts. From within a jailed process, the environment is (almost) indistinguishable from a real system.
Security : Each jail is sealed from the others thus providing an additional level of security.
Ease of delegation : Thanks to the limited scope of a jail, it allows administrators to painlessly delegate several tasks which require superuser access without handing out complete control over the system.
Those familiar with Unix will recognize the chroot jail method of restricting the scope of processes. The FreeBSD jail mechanism is more than that: each process is attached a specific kernel structure whose purpose is to limit its interaction with processes running in other jails and restrict the things they can do (for instance a jail is bound to only one IP address and cannot access raw, divert or routing sockets).
Minu arvuti ip on 172.17.0.183, jaili ip hakkab olema 172.17.0.184 ning jaili enda asukoht /usr/jail/jail1.
Jaili loomine
jail kiirelt ja mustalt
Esimesena tirime cvsupiga süsteemi source
nüüd loome väikese skripti, mis meisterdab meile soovitud kohta jaili valmis. jaili asukoht määratakse süsteemis muutuja D abil
#!/bin/bash D=/usr/jail/jail1 mkdir -p $D cd /usr/src make world DESTDIR=$D cd etc/ make distribution DESTDIR=$D mount_devfs devfs $D/dev
Jaili baasmasina seadistus
vajalik arvuti /etc/rc.conf lisada
# ip aadressid jailile ja masinale ifconfig_fxp0="inet 172.17.0.183 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 172.17.0.184 netmask 0xFFFFFFFF" # inetd kuulama vaid lokaalset soketid. Parem kui inetd üldse ei töötaks inetd_flags="-wW -a 172.17.0.183" # syslog kuulama lokaalset socketit syslogd_flags="-ss" # rpcbind võib põhjustada konflikte jailiga rpcbind_enable="NO" # globaalne jailid seadistus, jail list muutujale tuleb kirjutada kõik kasutavad jailid eraldades nende nimed tühikutega jail_enable="YES" jail_list="test" # loodava testnimelise jaili spetsiifilised parameetrid jail_test_hostname="test" jail_test_ip="172.17.0.184" jail_test_rootdir="/usr/jail/jail1" jail_test_devfs_enable="YES" jail_test_devfs_ruleset="test_ruleset"
masina /etc/ssh/sshd_config muudame selliselt
ListenAddress 172.17.0.183 UseDNS no
Jaili konf
Liigume kausta /usr/jail/jail1
jaili /etc/rc.conf
rpcbind_enable="NO" network_interfaces="" hostname="yhikas" sshd_enable="YES" sendmail_enable="NO" syslogd_flags="-ss" inetd_flags="-wW -a 172.17.0.184"
Jaili /etc/ssh/sshd_config muudame selliselt
ListenAddress 172.17.0.184 UseDNS no
Jaili tühi /etc/fstab
touch /usr/jail/jail1/etc/fstab
Jaili /etc/resolv.conf kirjutame enda nimeserveri, mida kasutame, mina kirjutasin sinna kadri.ut.ee
ln -s /var/run/log /usr/jail/jail1/dev/log
paneme jaili käima
jail /usr/jail/jail1 test 172.17.0.184 /bin/sh
nüüd võib luua userid seada root kasutaja parooli jms tegevused
Töötamine loodud jailiga
Töötavaid jaile näeme käsuga jls
- jls
JID IP Address Hostname Path 1 172.17.0.184 test /usr/jail/jail1
Jaile saab startida ja seisata käskudega
/etc/rc.d/jail start yhikas /etc/rc.d/jail stop yhikas
Lingid
http://phk.freebsd.dk/pubs/sane2000-jail.pdf
http://www.freebsd.org/cgi/man.cgi?query=jail&format=html
http://www.bsd.ee/dwiki/doku.php?id=freebsd_jail_loeng
NetBSD ja OpenBSD jaili analoog sysjail
http://www.nycbsdcon.org/2006/files/sysjail-nycbsdcon.pdf.gz