Mudell tad-distribuzzjoni tad-drittijiet obbligatorji fil-FreeBSD

Introduzzjoni

Biex tipprovdi livell addizzjonali ta 'sigurtà tas-server, tista' tuża mudell tal-mandat distribuzzjoni tal-aċċess. Din il-pubblikazzjoni se tiddeskrivi kif tista 'taħdem apache f'ħabs b'aċċess biss għal dawk il-komponenti li jeħtieġu aċċess biex apache u php jaħdmu b'mod korrett. Billi tuża dan il-prinċipju, tista 'tillimita mhux biss Apache, iżda wkoll kwalunkwe munzell ieħor.

Taħriġ

Dan il-metodu huwa adattat biss għas-sistema tal-fajl ufs; f'dan l-eżempju, zfs se jintużaw fis-sistema prinċipali, u ufs fil-ħabs, rispettivament. L-ewwel pass huwa li terġa 'tinbena l-qalba; meta tinstalla FreeBSD, installa l-kodiċi tas-sors.
Wara li s-sistema tkun installata, editja l-fajl:

/usr/src/sys/amd64/conf/GENERIC

Għandek bżonn biss iżżid linja waħda ma' dan il-fajl:

options     MAC_MLS

It-tikketta mls/high se jkollha pożizzjoni dominanti fuq it-tikketta mls/baxxa, applikazzjonijiet li se jiġu mnedija bit-tikketta mls/baxxa ma jkunux jistgħu jaċċessaw fajls li għandhom it-tikketta mls/għoli. Aktar dettalji dwar it-tikketti kollha disponibbli fis-sistema FreeBSD jistgħu jinstabu f'dan tmexxija.
Sussegwentement, mur fid-direttorju /usr/src:

cd /usr/src

Biex tibda tibni l-qalba, mexxi (fil-ċavetta j, speċifika n-numru ta 'qlub fis-sistema):

make -j 4 buildkernel KERNCONF=GENERIC

Wara li l-kernel jiġi kkompilat, għandu jiġi installat:

make installkernel KERNCONF=GENERIC

Wara li tinstalla l-qalba, tgħaġġla biex terġa 'tibda s-sistema, peress li huwa meħtieġ li l-utenti jiġu trasferiti għall-klassi tal-login, wara li tkun ikkonfiguratha qabel. Editja l-fajl /etc/login.conf, f'dan il-fajl għandek bżonn teditja l-klassi tal-login default, ġibha fil-forma:

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:

Il-linja :label=mls/equal se tippermetti lill-utenti li huma membri ta' din il-klassi jaċċessaw fajls li huma mmarkati bi kwalunkwe tikketta (mls/low, mls/high). Wara dawn il-manipulazzjonijiet, għandek bżonn tibni mill-ġdid id-database u tpoġġi l-utent tal-għeruq (kif ukoll dawk li għandhom bżonnha) f'din il-klassi tal-login:

cap_mkdb /etc/login.conf
pw usermod root -L default

Sabiex il-politika tapplika biss għall-fajls, trid teditja l-fajl /etc/mac.conf, u tħalli linja waħda biss fiha:

default_labels file ?mls

Għandek bżonn ukoll li żżid il-modulu mac_mls.ko ma' l-autorun:

echo 'mac_mls_load="YES"' >> /boot/loader.conf

Wara dan, tista 'tibda mill-ġdid is-sistema b'mod sikur. Kif toħloq ħabs Tista' taqrah f'waħda mill-pubblikazzjonijiet tiegħi. Iżda qabel ma toħloq ħabs, għandek bżonn iżżid hard drive u toħloq sistema ta 'fajls fuqha u tippermetti multilabel fuqha, toħloq sistema ta' fajls ufs2 b'daqs ta 'cluster ta' 64kb:

newfs -O 2 -b 64kb /dev/ada1
tunefs -l enable /dev/ada1

Wara li toħloq is-sistema tal-fajls u żżid multilabel, trid iżżid il-hard drive ma' /etc/fstab, żid il-linja ma' dan il-fajl:

/dev/ada1               /jail  ufs     rw              0       1

F'Mountpoint, speċifika d-direttorju li fih se timmonta l-hard drive; f'Pass, kun żgur li tispeċifika 1 (f'liema sekwenza se tiġi ċċekkjata din il-hard drive) - dan huwa meħtieġ, peress li s-sistema tal-fajls ufs hija sensittiva għal qtugħ ta' enerġija f'daqqa . Wara dawn il-passi, arma d-disk:

mount /dev/ada1 /jail

Installa ħabs f'dan id-direttorju. Wara li l-ħabs tkun qed taħdem, trid tagħmel l-istess manipulazzjonijiet fiha bħal fis-sistema prinċipali bl-utenti u l-fajls /etc/login.conf, /etc/mac.conf.

aġġustament

Qabel ma ninstalla t-tikketti meħtieġa, nirrakkomanda li tinstalla l-pakketti kollha meħtieġa; fil-każ tiegħi, it-tikketti se jiġu ssettjati b'kont meħud ta 'dawn il-pakketti:

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 

F'dan l-eżempju, it-tikketti se jiġu stabbiliti b'kont meħud tad-dipendenzi ta' dawn il-pakketti. Naturalment, tista 'tagħmel dan aktar sempliċi: għall-folder /usr/local/lib u l-fajls li jinsabu f'dan id-direttorju, issettja t-tikketti mls/low u l-pakketti installati sussegwenti (per eżempju, estensjonijiet addizzjonali għal php) se jkunu jistgħu jaċċessaw il-libreriji f'dan id-direttorju, iżda jidhirli aħjar li jipprovdu aċċess biss għal dawk il-fajls li huma meħtieġa. Waqqaf il-ħabs u waqqaf mls/tikketti għoljin fuq il-fajls kollha:

setfmac -R mls/high /jail

Meta tissettja l-marki, il-proċess jitwaqqaf jekk setfmac jiltaqa' ma' links iebsin, fl-eżempju tiegħi ħassejt links iebsin fid-direttorji li ġejjin:

/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

Wara li t-tikketti jkunu ġew issettjati, għandek bżonn tissettja l-mls/tikketti baxxi għall-apache, l-ewwel ħaġa li trid tagħmel hu li ssib liema fajls huma meħtieġa biex tibda apache:

ldd /usr/local/sbin/httpd

Wara li tesegwixxi dan il-kmand, id-dipendenzi se jintwerew fuq l-iskrin, iżda l-issettjar tat-tikketti meħtieġa fuq dawn il-fajls mhux se jkun biżżejjed, peress li d-direttorji li fihom jinsabu dawn il-fajls għandhom it-tikketta mls/high, għalhekk dawn id-direttorji jeħtieġ ukoll li jiġu ttikkettjati. mls/baxxa. Meta jibda, apache joħroġ ukoll il-fajls li huma meħtieġa biex imexxuh, u għal PHP dawn id-dipendenzi jistgħu jinstabu fil-log httpd-error.log.

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

Din il-lista fiha mls/tags baxxi għall-fajls kollha li huma meħtieġa għat-tħaddim korrett tal-kombinazzjoni apache u php (għal dawk il-pakketti li huma installati fl-eżempju tiegħi).

Il-mess finali se jkun li jiġi kkonfigurat il-ħabs biex jaħdem fil-livell mls/equal, u apache fil-livell mls/baxx. Biex tibda l-ħabs, trid tagħmel bidliet fl-iskritt /etc/rc.d/jail, issib il-funzjonijiet jail_start f'dan l-iskritt, ibdel il-varjabbli tal-kmand għall-forma:

command="setpmac mls/equal $jail_program"

Il-kmand setpmac imexxi l-fajl eżekutibbli fil-livell ta 'kapaċità meħtieġ, f'dan il-każ mls/equal, sabiex ikollu aċċess għat-tikketti kollha. Fl-apache għandek bżonn teditja l-iskript tal-istartjar /usr/local/etc/rc.d/apache24. Ibdel il-funzjoni apache24_prestart:

apache24_prestart() {
        apache24_checkfib
        apache24_precmd
        eval "setpmac mls/low" ${command} ${apache24_flags}
}

В uffiċjal Il-manwal fih eżempju ieħor, imma ma stajtx nużah minħabba li bqajt nikseb messaġġ dwar l-inabbiltà li nuża l-kmand setpmac.

Output

Dan il-metodu ta 'distribuzzjoni tal-aċċess se jżid livell addizzjonali ta' sigurtà għall-apache (għalkemm dan il-metodu huwa adattat għal kwalunkwe munzell ieħor), li barra minn hekk jimxi f'ħabs, fl-istess ħin, għall-amministratur dan kollu se jiġri b'mod trasparenti u mingħajr attenzjoni.

Lista ta’ sorsi li għenuni nikteb din il-pubblikazzjoni:

https://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/mac.html

Sors: www.habr.com

Żid kumment