fampidirana
Mba hanomezana ambaratonga fanampiny amin'ny fiarovana ny mpizara dia azonao ampiasaina
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
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
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}
}
Π
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:
Source: www.habr.com