Múnla dáilte cearta éigeantacha i FreeBSD

Réamhrá

Chun leibhéal breise slándála freastalaí a sholáthar, is féidir leat é a úsáid múnla sainordú dáileadh rochtana. Déanfaidh an foilseachán seo cur síos ar conas is féidir leat apache a rith i bpríosún le rochtain amháin ar na comhpháirteanna sin a dteastaíonn rochtain ar apache agus php chun oibriú i gceart. Ag baint úsáide as an bprionsabal seo, is féidir leat teorainn a chur ní hamháin Apache, ach freisin aon chairn eile.

Oiliúint

Níl an modh seo oiriúnach ach amháin do chóras comhaid ufs; sa sampla seo, úsáidfear zfs sa phríomhchóras, agus ufs sa phríosún, faoi seach. Is é an chéad chéim ná an eithne a atógáil; nuair a shuiteáil FreeBSD, suiteáil an cód foinse.
Tar éis an córas a bheith suiteáilte, cuir an comhad in eagar:

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

Ní gá duit ach líne amháin a chur leis an gcomhad seo:

options     MAC_MLS

Beidh suíomh ceannasach ag an lipéad mls/ard ar an lipéad mls/íseal, ní bheidh feidhmchláir a sheolfar leis an lipéad mls/íseal in ann rochtain a fháil ar chomhaid a bhfuil an lipéad mls/ard orthu. Is féidir tuilleadh sonraí a fháil faoi na clibeanna go léir atá ar fáil sa chóras FreeBSD anseo treoir.
Ansin, téigh chuig an eolaire / usr / src:

cd /usr/src

Chun tosú ar an eithne a thógáil, rith (san eochair j, sonraigh líon na gcroíthe sa chóras):

make -j 4 buildkernel KERNCONF=GENERIC

Tar éis don eithne a bheith tiomsaithe, ní mór é a shuiteáil:

make installkernel KERNCONF=GENERIC

Tar éis duit an t-eithne a shuiteáil, ná déan deifir chun an córas a atosú, ós rud é go bhfuil sé riachtanach úsáideoirí a aistriú chuig an rang logáil isteach, tar éis é a chumrú roimhe seo. Cuir an comhad /etc/login.conf in eagar, sa chomhad seo ní mór duit an rang logáil isteach réamhshocraithe a chur in eagar, tabhair chuig an bhfoirm é:

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:

Ceadóidh an líne :label=mls/equal d'úsáideoirí atá ina mbaill den aicme seo rochtain a fháil ar chomhaid atá marcáilte le lipéad ar bith (mls/íseal, mls/ard). Tar éis na n-ionramhálacha seo, ní mór duit an bunachar sonraí a atógáil agus an t-úsáideoir fréimhe (chomh maith leo siúd a dteastaíonn sé) a chur sa rang logála isteach seo:

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

Le go mbeidh feidhm ag an bpolasaí maidir le comhaid amháin, ní mór duit an comhad /etc/mac.conf a chur in eagar, ag fágáil ach líne amháin ann:

default_labels file ?mls

Ní mór duit freisin an modúl mac_mls.ko a chur le autorun:

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

Tar éis seo, is féidir leat an córas a atosú go sábháilte. Conas a chruthú jail Is féidir leat é a léamh i gceann de mo chuid foilseachán. Ach sula gcruthaítear jail, ní mór duit tiomántán crua a chur leis agus córas comhaid a chruthú air agus multilabel a chumasú air, córas comhaid ufs2 a chruthú le braisle de 64kb:

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

Tar éis duit an córas comhaid a chruthú agus multilabel a chur leis, ní mór duit an tiomántán crua a chur le /etc/fstab, cuir an líne leis an gcomhad seo:

/dev/ada1               /jail  ufs     rw              0       1

I Mountpoint, sonraigh an t-eolaire ina mbeidh tú suite ar an tiomántán crua; i Pas, bí cinnte a shonrú 1 (cén seicheamh a sheiceáil an tiomántán crua) - tá sé seo riachtanach, ós rud é go bhfuil an córas comhaid ufs íogair do laghduithe tobann cumhachta . Tar éis na céimeanna seo, mount an diosca:

mount /dev/ada1 /jail

Suiteáil jail san eolaire seo. Tar éis don phríosún a bheith ag rith, ní mór duit na manipulations céanna a dhéanamh ann agus atá sa phríomhchóras le húsáideoirí agus na comhaid /etc/login.conf, /etc/mac.conf.

coigeartú

Sula ndéantar na clibeanna riachtanacha a shuiteáil, molaim na pacáistí riachtanacha go léir a shuiteáil; i mo chás, socrófar na clibeanna agus na pacáistí seo á gcur san áireamh:

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 

Sa sampla seo, socrófar lipéid ag cur spleáchais na bpacáistí sin san áireamh. Ar ndóigh, is féidir leat é a dhéanamh níos simplí: don fhillteán / usr / local / lib agus na comhaid atá suite san eolaire seo, socraigh na mls / lipéid íseal agus beidh na pacáistí suiteáilte ina dhiaidh sin (mar shampla, síntí breise le haghaidh php) in ann rochtain a fháil ar na leabharlanna san eolaire seo, ach dealraíonn sé gur fearr dom rochtain a sholáthar ar na comhaid sin amháin atá riachtanach. Cuir stop leis an bpríosún agus socraigh mls/lipéid arda ar gach comhad:

setfmac -R mls/high /jail

Agus marcanna á socrú, cuirfear stop leis an bpróiseas má thagann setfmac ar naisc chrua, i mo shampla scrios mé naisc chrua sna heolairí seo a leanas:

/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

Tar éis duit na lipéid a shocrú, ní mór duit na mls/lipéid íseal a shocrú le haghaidh apache, is é an chéad rud a chaithfidh tú a dhéanamh ná a fháil amach cad iad na comhaid is gá chun apache a thosú:

ldd /usr/local/sbin/httpd

Tar éis an t-ordú seo a fheidhmiú, taispeánfar spleáchais ar an scáileán, ach ní leor na lipéid riachtanacha a shocrú ar na comhaid seo, toisc go bhfuil an lipéad mls/ard ag na heolairí ina bhfuil na comhaid seo suite, mar sin ní mór na heolairí seo a lipéadú freisin mls/íseal. Nuair a bheidh tú ag tosú, aschuirfidh apache na comhaid atá riachtanach chun é a rith, agus le haghaidh php is féidir na spleáchais seo a fháil sa logáil 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

Tá mls / clibeanna ísle sa liosta seo do gach comhad atá riachtanach chun an teaglaim apache agus php a oibriú i gceart (do na pacáistí sin atá suiteáilte i mo shampla).

Is é an teagmháil dheireanach ná jail a chumrú chun rith ag an leibhéal mls/comhionann, agus apache ag an leibhéal mls/íseal. Chun jail a thosú, ní mór duit athruithe a dhéanamh ar an script /etc/rc.d/jail, aimsigh na feidhmeanna jail_start sa script seo, athraigh an athróg ordú go dtí an fhoirm:

command="setpmac mls/equal $jail_program"

Ritheann an t-ordú setpmac an comhad inrite ag an leibhéal cumais riachtanach, sa chás seo mls/equal, chun rochtain a bheith agat ar gach lipéad. In apache ní mór duit an script tosaithe a chur in eagar /usr/local/etc/rc.d/apache24. Athraigh an fheidhm apache24_prestart:

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

В oifigiúil Tá sampla eile sa lámhleabhar, ach ní raibh mé in ann é a úsáid toisc go raibh mé fós ag fáil teachtaireachta faoin neamhábaltacht an t-ordú setpmac a úsáid.

Aschur

Cuirfidh an modh seo chun rochtain a dháileadh ar leibhéal breise slándála apache (cé go bhfuil an modh seo oiriúnach d'aon chairn eile), a ritheann i bpríosún, ag an am céanna, don riarthóir, tarlóidh sé seo go léir go trédhearcach agus gan aird.

Liosta de na foinsí a chabhraigh liom an foilseachán seo a scríobh:

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

Foinse: will.com

Add a comment