МодСл Π·Π° Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° Π½Π° Π·Π°Π΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€Π°Π²Π° Π²ΠΎ 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

По ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ Π΄Π° Π³ΠΎ рСстартиратС систСмот. Како Π΄Π° сС создадС Π·Π°Ρ‚Π²ΠΎΡ€ ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ Π²ΠΎ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΌΠΎΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Но, ΠΏΡ€Π΅Π΄ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π·Π°Ρ‚Π²ΠΎΡ€, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ Ρ…Π°Ρ€Π΄ диск ΠΈ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π΅Π½ систСм Π½Π° Π½Π΅Π³ΠΎ ΠΈ Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡ‚Π΅ ΠΌΡƒΠ»Ρ‚ΠΈΠ΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎ, Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π΅Π½ систСм ufs2 со Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° кластСрот ΠΎΠ΄ 64 kb:

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

ΠžΡ‚ΠΊΠ°ΠΊΠΎ ќС Π³ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π½ΠΈΠΎΡ‚ систСм ΠΈ ќС Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΌΡƒΠ»Ρ‚ΠΈΠ΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ Ρ…Π°Ρ€Π΄ дискот Π²ΠΎ /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/Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π½ΠΈΠ²ΠΎ ΠΈ apache Π½Π° mls/ниско Π½ΠΈΠ²ΠΎ. Π—Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π·Π°Ρ‚Π²ΠΎΡ€, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ скриптата /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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€