Modely fizarana zo tsy maintsy atao ao amin'ny FreeBSD

fampidirana

Mba hanomezana ambaratonga fanampiny amin'ny fiarovana ny mpizara dia azonao ampiasaina modely mandat fizarana fidirana. Ity publication ity dia mamaritra ny fomba ahafahanao mitantana apache ao am-ponja miaraka amin'ireo singa mila fidirana amin'ny apache sy php mba hiasa tsara. Amin'ny fampiasana an'io fitsipika io dia azonao atao ny mametra tsy ny Apache ihany, fa ny stack hafa koa.

Fiomanana

Ity fomba ity dia mety amin'ny rafi-drakitra ufs ihany; Amin'ity ohatra ity, ny zfs dia ampiasaina amin'ny rafitra fototra, ary ny ufs ao amin'ny fonja. Ny dingana voalohany dia ny fananganana indray ny kernel; rehefa mametraka FreeBSD, apetraho ny code source.
Aorian'ny fametrahana ny rafitra dia ovay ny rakitra:

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

Mila manampy andalana iray fotsiny amin'ity rakitra ity ianao:

options     MAC_MLS

Ny mari-pamantarana mls / avo dia hanana toerana ambony eo amin'ny marika mls / ambany, ny fampiharana izay hatomboka miaraka amin'ny marika mls / ambany dia tsy afaka miditra amin'ny rakitra misy ny marika mls / avo. Ny antsipiriany bebe kokoa momba ny marika rehetra misy ao amin'ny rafitra FreeBSD dia azo jerena ato mpitarika.
Manaraka, mandehana any amin'ny / usr / src lahatahiry:

cd /usr/src

Mba hanombohana ny fananganana kernel dia mihazakazaka (ao amin'ny fanalahidy j, mamaritra ny isan'ny cores ao amin'ny rafitra):

make -j 4 buildkernel KERNCONF=GENERIC

Aorian'ny fanangonana ny kernel dia tsy maintsy apetraka:

make installkernel KERNCONF=GENERIC

Aorian'ny fametrahana ny kernel dia aza maika ny reboot ny rafitra, satria ilaina ny mamindra ny mpampiasa amin'ny kilasy fidirana, izay efa namboarina teo aloha. Amboary ny rakitra /etc/login.conf, amin'ity rakitra ity dia mila manitsy ny kilasy fidirana default ianao, ento amin'ny endrika:

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:

Ny tsipika :label=mls/equal dia ahafahan'ny mpampiasa izay mpikambana ao amin'ity kilasy ity hiditra amin'ny rakitra voamarika amin'ny marika rehetra (mls/ambany, mls/avo). Aorian'ireo fanodinkodinana ireo dia mila manangana indray ny angon-drakitra ianao ary mametraka ny mpampiasa root (ary koa ireo izay mila izany) ao amin'ity kilasy fidirana ity:

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

Mba hampiharana ny politika amin'ny rakitra ihany dia mila manitsy ny rakitra /etc/mac.conf ianao, ka tsy misy afa-tsy andalana iray ao anatiny:

default_labels file ?mls

Mila ampidirinao amin'ny autorun koa ny maody mac_mls.ko:

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

Rehefa afaka izany, dia afaka soa aman-tsara reboot ny rafitra. Ahoana ny famoronana am-ponja Azonao atao ny mamaky azy io ao amin'ny iray amin'ireo bokintsika. Fa alohan'ny hamoronana fonja dia mila manampy kapila mafy ianao ary mamorona rafitra fichier eo aminy ary avelao ny multilabel eo aminy, mamorona rafitra fichier ufs2 miaraka amin'ny haben'ny cluster 64kb:

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

Rehefa avy namorona ny rafitra fichier sy manampy multilabel ianao dia mila ampidirinao ny kapila mafy amin'ny /etc/fstab, ampio ny tsipika amin'ity rakitra ity:

/dev/ada1               /jail  ufs     rw              0       1

Ao amin'ny Mountpoint, mamaritra ny lahatahiry izay hametrahanao ny kapila mafy; ao amin'ny Pass, tandremo tsara ny mamaritra ny 1 (amin'ny filaharana inona no hojerena ity fiara mafy ity) - ilaina izany, satria ny rafi-drakitra ufs dia saro-pady amin'ny fahatapahan-jiro tampoka . Aorian'ireto dingana ireto, apetaho ny kapila:

mount /dev/ada1 /jail

Mametraka fonja amin'ity lahatahiry ity. Rehefa mandeha ny fonja dia mila manao fanodinkodinana mitovy amin'ny ao amin'ny rafitra fototra miaraka amin'ireo mpampiasa sy ny rakitra /etc/login.conf, /etc/mac.conf.

fanitsiana

Alohan'ny hametrahana ireo marika ilaina dia manoro hevitra ny hametraka ny fonosana ilaina rehetra aho; Raha ny amiko, ny marika dia hapetraka amin'ireto fonosana ireto:

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 

Amin'ity ohatra ity, ny etikety dia hapetraka amin'ny fiheverana ny fiankinan'ireo fonosana ireo. Mazava ho azy fa azonao atao tsotra kokoa izany: ho an'ny fampirimana / usr / local / lib sy ny rakitra hita ao amin'ity lahatahiry ity, apetraho ny marika mls / ambany sy ny fonosana napetraka manaraka (ohatra, fanitarana fanampiny ho an'ny php) dia afaka miditra. ny trano famakiam-boky ao amin'ity lahatahiry ity, fa toa tsara kokoa amiko ny manome fidirana amin'ireo rakitra ilaina ihany. Atsaharo ny fonja ary asio marika mls/avo amin'ny rakitra rehetra:

setfmac -R mls/high /jail

Rehefa mametraka marika dia hajanona ny dingana raha sendra rohy mafy ny setfmac, amin'ny ohatra nataoko dia nofafako ny rohy mafy tao amin'ireto lahatahiry manaraka ireto:

/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

Aorian'ny fametrahana ny labels dia mila mametraka ny labels mls/low ho an'ny apache ianao, ny zavatra voalohany tokony hataonao dia ny mamantatra izay rakitra ilaina hanombohana apache:

ldd /usr/local/sbin/httpd

Aorian'ny fanatanterahana io baiko io dia hiseho eo amin'ny efijery ny fiankinan-doha, fa ny fametrahana ny etikety ilaina amin'ireo rakitra ireo dia tsy ho ampy, satria ny lahatahiry misy ireo rakitra ireo dia manana marika mls / avo, ka mila asiana marika koa ireo lahatahiry ireo. mls / ambany. Rehefa manomboka dia hamoaka ny rakitra ilaina amin'ny fampandehanana azy ihany koa ny apache, ary ho an'ny php dia hita ao amin'ny log httpd-error.log ireo fiankinan-doha ireo.

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

Ity lisitra ity dia misy marika mls / ambany ho an'ny rakitra rehetra ilaina amin'ny fampandehanana marina ny apache sy ny php combinaison (ho an'ireo fonosana napetraka ao amin'ny ohatra aho).

Ny fikasihana farany dia ny manamboatra ny fonja mba hihazakazaka amin'ny mls / mitovy ambaratonga, ary apache amin'ny mls / ambany. Mba hanombohana ny fonja dia mila manova ny script /etc/rc.d/jail ianao, tadiavo ny fiasan'ny jail_start amin'ity script ity, ovay amin'ny endrika ny baiko baiko:

command="setpmac mls/equal $jail_program"

Ny baiko setpmac dia mitantana ny rakitra azo tanterahina amin'ny haavon'ny fahaiza-manao ilaina, amin'ity tranga ity mls/equal, mba hahazoana fidirana amin'ny labels rehetra. Ao amin'ny apache dia mila manitsy ny script fanombohana /usr/local/etc/rc.d/apache24 ianao. Ovay ny asa apache24_prestart:

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

Π’ ofisialy Ny boky dia misy ohatra iray hafa, saingy tsy afaka nampiasa izany aho satria nahazo hafatra momba ny tsy fahafahana mampiasa ny baiko setpmac.

famaranana

Ity fomba fitsinjarana ny fidirana ity dia hanampy fiarovana fanampiny amin'ny apache (na dia mety ho an'ny stack hafa aza ity fomba ity), izay mandeha any am-ponja, miaraka amin'izay koa, ho an'ny mpitantana izany rehetra izany dia hitranga amin'ny fomba mangarahara sy tsy hita maso.

Lisitry ny loharano nanampy ahy tamin'ny fanoratana ity publication ity:

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

Source: www.habr.com

Add a comment