Ievads
Lai nodroÅ”inÄtu papildu servera droŔības lÄ«meni, varat izmantot
TreniÅÅ”
Å Ä« metode ir piemÄrota tikai ufs failu sistÄmai; Å”ajÄ piemÄrÄ zfs tiks izmantots attiecÄ«gi galvenajÄ sistÄmÄ un ufs attiecÄ«gi cietumÄ. Pirmais solis ir kodola atjaunoÅ”ana; instalÄjot FreeBSD, instalÄjiet avota kodu.
Kad sistÄma ir instalÄta, rediÄ£Äjiet failu:
/usr/src/sys/amd64/conf/GENERIC
Å im failam jÄpievieno tikai viena rinda:
options MAC_MLS
MarÄ·Äjumam mls/high bÅ«s dominÄjoÅ”s stÄvoklis pÄr marÄ·Äjumu mls/low, lietojumprogrammas, kas tiks palaistas ar marÄ·Äjumu mls/low, nevarÄs piekļūt failiem, kuriem ir marÄ·Äjums mls/high. SÄ«kÄku informÄciju par visiem FreeBSD sistÄmÄ pieejamajiem tagiem var atrast Å”eit
PÄc tam dodieties uz direktoriju /usr/src:
cd /usr/src
Lai sÄktu kodola veidoÅ”anu, palaidiet (taustiÅÄ j norÄdiet sistÄmas kodolu skaitu):
make -j 4 buildkernel KERNCONF=GENERIC
PÄc kodola kompilÄÅ”anas tas jÄinstalÄ:
make installkernel KERNCONF=GENERIC
PÄc kodola instalÄÅ”anas nesteidzieties pÄrstartÄt sistÄmu, jo ir nepiecieÅ”ams pÄrsÅ«tÄ«t lietotÄjus uz pieteikÅ”anÄs klasi, iepriekÅ” to konfigurÄjot. RediÄ£Äjiet failu /etc/login.conf, Å”ajÄ failÄ ir jÄrediÄ£Ä noklusÄjuma pieteikÅ”anÄs klase, ievadiet to formÄ:
default:
:passwd_format=sha512:
:copyright=/etc/COPYRIGHT:
:welcome=/etc/motd:
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:
:path=/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:
:nologin=/var/run/nologin:
:cputime=unlimited:
:datasize=unlimited:
:stacksize=unlimited:
:memorylocked=64K:
:memoryuse=unlimited:
:filesize=unlimited:
:coredumpsize=unlimited:
:openfiles=unlimited:
:maxproc=unlimited:
:sbsize=unlimited:
:vmemoryuse=unlimited:
:swapuse=unlimited:
:pseudoterminals=unlimited:
:kqueues=unlimited:
:umtxp=unlimited:
:priority=0:
:ignoretime@:
:umask=022:
:label=mls/equal:
Rinda :label=mls/equal ļaus lietotÄjiem, kuri ir Ŕīs klases dalÄ«bnieki, piekļūt failiem, kas ir marÄ·Äti ar jebkuru etiÄ·eti (mls/low, mls/high). PÄc Ŕīm manipulÄcijÄm jums ir jÄpÄrveido datu bÄze un jÄievieto root lietotÄjs (kÄ arÄ« tie, kuriem tas ir nepiecieÅ”ams) Å”ajÄ pieteikÅ”anÄs klasÄ:
cap_mkdb /etc/login.conf
pw usermod root -L default
Lai politika attiektos tikai uz failiem, jums ir jÄrediÄ£Ä /etc/mac.conf fails, atstÄjot tajÄ tikai vienu rindiÅu:
default_labels file ?mls
AutomÄtiskajai palaiÅ”anai ir jÄpievieno arÄ« modulis mac_mls.ko:
echo 'mac_mls_load="YES"' >> /boot/loader.conf
PÄc tam jÅ«s varat droÅ”i restartÄt sistÄmu. KÄ izveidot
newfs -O 2 -b 64kb /dev/ada1
tunefs -l enable /dev/ada1
PÄc failu sistÄmas izveides un vairÄku etiÄ·eÅ”u pievienoÅ”anas cietais disks jÄpievieno /etc/fstab, pievienojiet Å”im failam rindiÅu:
/dev/ada1 /jail ufs rw 0 1
Mountpoint norÄdiet direktoriju, kurÄ uzstÄdÄ«sit cieto disku; Pass noteikti norÄdiet 1 (kÄdÄ secÄ«bÄ Å”is cietais disks tiks pÄrbaudÄ«ts) - tas ir nepiecieÅ”ams, jo ufs failu sistÄma ir jutÄ«ga pret pÄkÅ”Åiem strÄvas padeves pÄrtraukumiem. . PÄc Ŕīm darbÄ«bÄm uzstÄdiet disku:
mount /dev/ada1 /jail
InstalÄjiet cietumu Å”ajÄ direktorijÄ. PÄc tam, kad cietums darbojas, tajÄ ir jÄveic tÄdas paÅ”as manipulÄcijas kÄ galvenajÄ sistÄmÄ ar lietotÄjiem un failiem /etc/login.conf, /etc/mac.conf.
koriÄ£ÄÅ”ana
Pirms nepiecieÅ”amo tagu instalÄÅ”anas iesaku instalÄt visas nepiecieÅ”amÄs pakotnes, manÄ gadÄ«jumÄ tagi tiks iestatÄ«ti, Åemot vÄrÄ Å”Ä«s pakotnes:
mod_php73-7.3.4_1 PHP Scripting Language
php73-7.3.4_1 PHP Scripting Language
php73-ctype-7.3.4_1 The ctype shared extension for php
php73-curl-7.3.4_1 The curl shared extension for php
php73-dom-7.3.4_1 The dom shared extension for php
php73-extensions-1.0 "meta-port" to install PHP extensions
php73-filter-7.3.4_1 The filter shared extension for php
php73-gd-7.3.4_1 The gd shared extension for php
php73-gettext-7.3.4_1 The gettext shared extension for php
php73-hash-7.3.4_1 The hash shared extension for php
php73-iconv-7.3.4_1 The iconv shared extension for php
php73-json-7.3.4_1 The json shared extension for php
php73-mysqli-7.3.4_1 The mysqli shared extension for php
php73-opcache-7.3.4_1 The opcache shared extension for php
php73-openssl-7.3.4_1 The openssl shared extension for php
php73-pdo-7.3.4_1 The pdo shared extension for php
php73-pdo_sqlite-7.3.4_1 The pdo_sqlite shared extension for php
php73-phar-7.3.4_1 The phar shared extension for php
php73-posix-7.3.4_1 The posix shared extension for php
php73-session-7.3.4_1 The session shared extension for php
php73-simplexml-7.3.4_1 The simplexml shared extension for php
php73-sqlite3-7.3.4_1 The sqlite3 shared extension for php
php73-tokenizer-7.3.4_1 The tokenizer shared extension for php
php73-xml-7.3.4_1 The xml shared extension for php
php73-xmlreader-7.3.4_1 The xmlreader shared extension for php
php73-xmlrpc-7.3.4_1 The xmlrpc shared extension for php
php73-xmlwriter-7.3.4_1 The xmlwriter shared extension for php
php73-xsl-7.3.4_1 The xsl shared extension for php
php73-zip-7.3.4_1 The zip shared extension for php
php73-zlib-7.3.4_1 The zlib shared extension for php
apache24-2.4.39
Å ajÄ piemÄrÄ etiÄ·etes tiks iestatÄ«tas, Åemot vÄrÄ Å”o pakotÅu atkarÄ«bas. Protams, jÅ«s varat to izdarÄ«t vienkÄrÅ”Äk: mapei /usr/local/lib un failiem, kas atrodas Å”ajÄ direktorijÄ, iestatiet mls/low etiÄ·etes un turpmÄkÄs instalÄtÄs pakotnes (piemÄram, papildu paplaÅ”inÄjumi php) varÄs piekļūt. bibliotÄkas Å”ajÄ direktorijÄ, bet man Ŕķiet labÄk nodroÅ”inÄt piekļuvi tikai tiem failiem, kas ir nepiecieÅ”ami. ApturÄt cietumu un visiem failiem iestatÄ«t mls/high etiÄ·etes:
setfmac -R mls/high /jail
Iestatot atzÄ«mes, process tiks apturÄts, ja setfmac saskarsies ar cietajÄm saitÄm, manÄ piemÄrÄ es izdzÄsu cietÄs saites Å”Ädos direktorijos:
/var/db/etcupdate/current/
/var/db/etcupdate/current/etc
/var/db/etcupdate/current/usr/share/openssl/man/en.ISO8859-15
/var/db/etcupdate/current/usr/share/man/en.ISO8859-15
/var/db/etcupdate/current/usr/share/man/en.UTF-8
/var/db/etcupdate/current/usr/share/nls
/etc/ssl
/usr/local/etc
/usr/local/etc/fonts/conf.d
/usr/local/openssl
Kad etiÄ·etes ir iestatÄ«tas, jums ir jÄiestata mls/low etiÄ·etes apache, vispirms ir jÄnoskaidro, kÄdi faili ir nepiecieÅ”ami, lai palaistu apache:
ldd /usr/local/sbin/httpd
PÄc Ŕīs komandas izpildes ekrÄnÄ tiks parÄdÄ«tas atkarÄ«bas, taÄu ar nepiecieÅ”amo etiÄ·eÅ”u iestatÄ«Å”anu Å”iem failiem nepietiks, jo direktorijiem, kuros Å”ie faili atrodas, ir mls/high etiÄ·ete, tÄpÄc arÄ« Å”ie direktoriji ir jÄmarÄ·Ä mls/mazs. StartÄjot, apache izvadÄ«s arÄ« failus, kas ir nepiecieÅ”ami tÄ palaiÅ”anai, un php Ŕīs atkarÄ«bas var atrast httpd-error.log žurnÄlÄ.
setfmac mls/low /
setfmac mls/low /usr/local/lib/libpcre.so.1
setfmac mls/low /usr/local/lib/libaprutil-1.so.0
setfmac mls/low /usr/local/lib/libdb-5.3.so.0
setfmac mls/low /usr/local/lib/libgdbm.so.6
setfmac mls/low /usr/local/lib/libexpat.so.1
setfmac mls/low /usr/local/lib/libapr-1.so.0
setfmac mls/low /lib/libcrypt.so.5
setfmac mls/low /lib/libthr.so.3
setfmac mls/low /lib/libc.so.7
setfmac mls/low /usr/local/lib/libintl.so.8
setfmac mls/low /var
setfmac mls/low /var/run
setfmac mls/low /var/log
setfmac mls/low /var/log/httpd-access.log
setfmac mls/low /var/log/httpd-error.log
setfmac mls/low /var/run/httpd.pid
setfmac mls/low /lib
setfmac mls/low /lib/libcrypt.so.5
setfmac mls/low /usr/local/lib/db5/libdb-5.3.so.0
setfmac mls/low /usr/local/lib/db5/libdb-5.3.so.0.0.0
setfmac mls/low /usr/local/lib/db5
setfmac mls/low /usr/local/lib
setfmac mls/low /libexec
setfmac mls/low /libexec/ld-elf.so.1
setfmac mls/low /dev
setfmac mls/low /dev/random
setfmac mls/low /usr/local/libexec
setfmac mls/low /usr/local/libexec/apache24
setfmac mls/low /usr/local/libexec/apache24/*
setfmac mls/low /etc/pwd.db
setfmac mls/low /etc/passwd
setfmac mls/low /etc/group
setfmac mls/low /etc/
setfmac mls/low /usr/local/etc
setfmac -R mls/low /usr/local/etc/apache24
setfmac mls/low /usr
setfmac mls/low /usr/local
setfmac mls/low /usr/local/sbin
setfmac mls/low /usr/local/sbin/*
setfmac -R mls/low /usr/local/etc/rc.d/
setfmac mls/low /usr/local/sbin/htcacheclean
setfmac mls/low /var/log/httpd-access.log
setfmac mls/low /var/log/httpd-error.log
setfmac -R mls/low /usr/local/www
setfmac mls/low /usr/lib
setfmac mls/low /tmp
setfmac -R mls/low /usr/local/lib/php
setfmac -R mls/low /usr/local/etc/php
setfmac mls/low /usr/local/etc/php.conf
setfmac mls/low /lib/libelf.so.2
setfmac mls/low /lib/libm.so.5
setfmac mls/low /usr/local/lib/libxml2.so.2
setfmac mls/low /lib/libz.so.6
setfmac mls/low /usr/lib/liblzma.so.5
setfmac mls/low /usr/local/lib/libiconv.so.2
setfmac mls/low /usr/lib/librt.so.1
setfmac mls/low /lib/libthr.so.3
setfmac mls/low /usr/local/lib/libpng16.so.16
setfmac mls/low /usr/lib/libbz2.so.4
setfmac mls/low /usr/local/lib/libargon2.so.0
setfmac mls/low /usr/local/lib/libpcre2-8.so.0
setfmac mls/low /usr/local/lib/libsqlite3.so.0
setfmac mls/low /usr/local/lib/libgd.so.6
setfmac mls/low /usr/local/lib/libjpeg.so.8
setfmac mls/low /usr/local/lib/libfreetype.so
setfmac mls/low /usr/local/lib/libfontconfig.so.1
setfmac mls/low /usr/local/lib/libtiff.so.5
setfmac mls/low /usr/local/lib/libwebp.so.7
setfmac mls/low /usr/local/lib/libjbig.so.2
setfmac mls/low /usr/lib/libssl.so.8
setfmac mls/low /lib/libcrypto.so.8
setfmac mls/low /usr/local/lib/libzip.so.5
setfmac mls/low /etc/resolv.conf
Å ajÄ sarakstÄ ir ietverti mls/low tagi visiem failiem, kas nepiecieÅ”ami pareizai apache un php kombinÄcijas darbÄ«bai (pakotnÄm, kas ir instalÄtas manÄ piemÄrÄ).
PÄdÄjais pieskÄriens bÅ«s konfigurÄt cietumu, lai tas darbotos mls/vienÄdÄ lÄ«menÄ« un apache mls/zemÄ lÄ«menÄ«. Lai sÄktu cietumu, jums ir jÄveic izmaiÅas skriptÄ /etc/rc.d/jail, jÄatrod Å”ajÄ skriptÄ jail_start funkcijas, jÄmaina komandas mainÄ«gais uz formu:
command="setpmac mls/equal $jail_program"
Komanda setpmac palaiž izpildÄmo failu vajadzÄ«gajÄ iespÄju lÄ«menÄ«, Å”ajÄ gadÄ«jumÄ mls/equal, lai varÄtu piekļūt visÄm etiÄ·etÄm. ProgrammÄ apache ir jÄrediÄ£Ä starta skripts /usr/local/etc/rc.d/apache24. Mainiet funkciju apache24_prestart:
apache24_prestart() {
apache24_checkfib
apache24_precmd
eval "setpmac mls/low" ${command} ${apache24_flags}
}
Š
secinÄjums
Å Ä« piekļuves sadales metode pieŔķirs papildu droŔības lÄ«meni apache (lai gan Ŕī metode ir piemÄrota jebkuram citam stekam), kas turklÄt darbojas cietumÄ, tajÄ paÅ”Ä laikÄ administratoram tas viss notiks caurspÄ«dÄ«gi un nemanÄmi.
Avotu saraksts, kas man palÄ«dzÄja Ŕīs publikÄcijas tapÅ”anÄ:
Avots: www.habr.com