МодСл Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€Π°Π²Π° във FreeBSD

въвСдСниС

Π—Π° Π΄Π° осигуритС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° сигурност Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΌΠ°Π½Π΄Π°Ρ‚Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ°. Π’Π°Π·ΠΈ публикация Ρ‰Π΅ опишС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° стартиратС apache Π² Π·Π°Ρ‚Π²ΠΎΡ€ с Π΄ΠΎΡΡ‚ΡŠΠΏ само Π΄ΠΎ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ изискват Π΄ΠΎΡΡ‚ΡŠΠΏ, Π·Π° Π΄Π° работят ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ apache ΠΈ php. Използвайки Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ Π½Π΅ само Apache, Π½ΠΎ ΠΈ всСки Π΄Ρ€ΡƒΠ³ стСк.

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΅ подходящ само Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ufs; Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ zfs Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π² основната систСма ΠΈ ufs Π² Π·Π°Ρ‚Π²ΠΎΡ€Π°. ΠŸΡŠΡ€Π²Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ ядрото; ΠΊΠΎΠ³Π°Ρ‚ΠΎ инсталиратС FreeBSD, инсталирайтС изходния ΠΊΠΎΠ΄.
Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ систСмата Π΅ инсталирана, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Π°:

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

Врябва само Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π΅Π΄ΠΈΠ½ Ρ€Π΅Π΄ към Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ»:

options     MAC_MLS

Π•Ρ‚ΠΈΠΊΠ΅Ρ‚ΡŠΡ‚ mls/high Ρ‰Π΅ ΠΈΠΌΠ° Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€Π°Ρ‰Π° позиция Π½Π°Π΄ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° mls/low, прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ стартирани с Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° mls/low, няма Π΄Π° ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° mls/high. ΠŸΠΎΠ²Π΅Ρ‡Π΅ подробности Π·Π° всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ Ρ‚Π°Π³ΠΎΠ²Π΅ Π² систСмата FreeBSD ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ.
Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π² дирСкторията /usr/src:

cd /usr/src

Π—Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ядрото, стартирайтС (Π² клавиша j, посочСтС броя Π½Π° ядрата Π² систСмата):

make -j 4 buildkernel KERNCONF=GENERIC

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ядрото Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΎ, Ρ‚ΠΎ трябва Π΄Π° бъдС инсталирано:

make installkernel KERNCONF=GENERIC

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ инсталиратС ядрото, Π½Π΅ Π±ΡŠΡ€Π·Π°ΠΉΡ‚Π΅ Π΄Π° рСстартиратС систСмата, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ към класа Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ стС Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π»ΠΈ. Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Π° /etc/login.conf, Π² Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» трябва Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ класа Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, прСнСсСтС Π³ΠΎ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:

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:

Π Π΅Π΄ΡŠΡ‚ :label=mls/equal Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ клас, Π΄Π° ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ (mls/low, mls/high). Π‘Π»Π΅Π΄ Ρ‚Π΅Π·ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ трябва Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° поставитС root потрСбитСля (ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС нуТдаят ΠΎΡ‚ Π½Π΅Π³ΠΎ) Π² Ρ‚ΠΎΠ·ΠΈ клас Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅:

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

Π—Π° Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΡ‚ΠΎ само Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, трябва Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° /etc/mac.conf, ΠΊΠ°Ρ‚ΠΎ оставитС само Π΅Π΄ΠΈΠ½ Ρ€Π΅Π΄ Π² Π½Π΅Π³ΠΎ:

default_labels file ?mls

Врябва ΡΡŠΡ‰ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π° mac_mls.ko към Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ стартиранС:

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

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ спокойно Π΄Π° рСстартиратС систСмата. Как Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π·Π°Ρ‚Π²ΠΎΡ€ ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π² Π΅Π΄Π½Π° ΠΎΡ‚ ΠΌΠΎΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Но ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ jail, трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ‚Π²ΡŠΡ€Π΄ диск ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ ΠΈ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ multilabel Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ, Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ufs2 Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма с Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΎΡ‚ 64kb:

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

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ multilabel, трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ‚Π²ΡŠΡ€Π΄ΠΈΡ диск към /etc/fstab, Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Ρ€Π΅Π΄Π° към Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ»:

/dev/ada1               /jail  ufs     rw              0       1

Π’ Mountpoint посочСтС дирСкторията, Π² която Ρ‰Π΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π²ΡŠΡ€Π΄ΠΈΡ диск; Π² Pass Π½Π΅ забравяйтС Π΄Π° посочитС 1 (Π² ΠΊΠ°ΠΊΠ²Π° послСдоватСлност Ρ‰Π΅ сС провСрява Ρ‚ΠΎΠ·ΠΈ Ρ‚Π²ΡŠΡ€Π΄ диск) - Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ufs Π΅ чувствитСлна към Π²Π½Π΅Π·Π°ΠΏΠ½ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡ Π½Π° Π·Π°Ρ…Ρ€Π°Π½Π²Π°Π½Π΅Ρ‚ΠΎ . Π‘Π»Π΅Π΄ Ρ‚Π΅Π·ΠΈ ΡΡ‚ΡŠΠΏΠΊΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ диска:

mount /dev/ada1 /jail

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ jail Π² Ρ‚Π°Π·ΠΈ дирСктория. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π·Π°Ρ‚Π²ΠΎΡ€ΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ, трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ Π² Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ Π² основната систСма с ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ /etc/login.conf, /etc/mac.conf.

Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€Π°Π½Π΅

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° инсталиратС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ‚Π°Π³ΠΎΠ²Π΅, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° инсталиратС всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ; Π² моя случай Ρ‚Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ‚Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ:

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 

Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ зависимоститС Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎ-просто: Π·Π° ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° /usr/local/lib ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² Ρ‚Π°Π·ΠΈ дирСктория, Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ mls/low ΠΈ слСдващитС инсталирани ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π·Π° php) Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π² Ρ‚Π°Π·ΠΈ дирСктория, Π½ΠΎ ΠΌΠΈ сС струва ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° прСдоставят Π΄ΠΎΡΡ‚ΡŠΠΏ само Π΄ΠΎ ΠΎΠ½Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ. Π‘ΠΏΡ€Π΅Ρ‚Π΅ Π·Π°Ρ‚Π²ΠΎΡ€Π° ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ mls/high Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π½Π° всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅:

setfmac -R mls/high /jail

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Ρ‰Π΅ бъдС спрян, Π°ΠΊΠΎ setfmac срСщнС Ρ‚Π²ΡŠΡ€Π΄ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π² моя ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ·Ρ‚Ρ€ΠΈΡ… Ρ‚Π²ΡŠΡ€Π΄ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² слСднитС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

/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

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ, трябва Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ mls/low Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π·Π° apache, ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅, Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° стартиранС Π½Π° apache:

ldd /usr/local/sbin/httpd

Π‘Π»Π΅Π΄ изпълнСниС Π½Π° Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π° Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ зависимости, Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ няма Π΄Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠΌΠ°Ρ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ mls/high, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡΡŠΡ‰ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½ΠΈ mls/ниско. ΠŸΡ€ΠΈ стартиранС apache ΡΡŠΡ‰ΠΎ Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° стартиранСто ΠΌΡƒ, Π° Π·Π° php Ρ‚Π΅Π·ΠΈ зависимости ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Π² ΠΆΡƒΡ€Π½Π°Π»Π° 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

Π’ΠΎΠ·ΠΈ списък ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° mls/low Ρ‚Π°Π³ΠΎΠ²Π΅ Π·Π° всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° комбинацията apache ΠΈ php (Π·Π° Ρ‚Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са инсталирани Π² моя ΠΏΡ€ΠΈΠΌΠ΅Ρ€).

ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ‚ Ρ‰Ρ€ΠΈΡ… Ρ‰Π΅ бъдС Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ jail Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ mls/equal ΠΈ apache Π½Π° Π½ΠΈΠ²ΠΎ mls/low. Π—Π° Π΄Π° стартиратС jail, трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² скрипта /etc/rc.d/jail, Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ jail_start Π² Ρ‚ΠΎΠ·ΠΈ скрипт, Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:

command="setpmac mls/equal $jail_program"

ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° setpmac изпълнява изпълнимия Ρ„Π°ΠΉΠ» Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚, Π² Ρ‚ΠΎΠ·ΠΈ случай mls/equal, Π·Π° Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ. Π’ apache трябва Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ стартиращия скрипт /usr/local/etc/rc.d/apache24. ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ функцията apache24_prestart:

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

Π’ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ Π ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ Π½Π΅ успях Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ постоянно ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ… ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° Π½Π΅Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° setpmac.

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ

Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° разпространСниС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° сигурност към apache (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΅ подходящ Π·Π° всСки Π΄Ρ€ΡƒΠ³ стСк), ΠΊΠΎΠΉΡ‚ΠΎ освСн Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π·Π°Ρ‚Π²ΠΎΡ€Π°, ΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° администратора всичко Ρ‚ΠΎΠ²Π° Ρ‰Π΅ сС случи ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΈ Π½Π΅Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ.

Бписък Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° Π΄Π° напиша Ρ‚Π°Π·ΠΈ публикация:

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

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€