FreeBSD์˜ ํ•„์ˆ˜ ๊ถŒํ•œ ๋ถ„๋ฐฐ ๋ชจ๋ธ

์†Œ๊ฐœ

์ถ”๊ฐ€ ์ˆ˜์ค€์˜ ์„œ๋ฒ„ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์ž„ ๋ชจ๋ธ ์•ก์„ธ์Šค ๋ฐฐํฌ. ์ด ๊ฐ„ํ–‰๋ฌผ์€ Apache์™€ PHP๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ์—๋งŒ ์•ก์„ธ์Šคํ•˜์—ฌ ๊ฐ์˜ฅ์—์„œ Apache๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์›์น™์„ ์‚ฌ์šฉํ•˜๋ฉด Apache๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์Šคํƒ๋„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›ˆ๋ จ

์ด ๋ฐฉ๋ฒ•์€ ufs ํŒŒ์ผ ์‹œ์Šคํ…œ์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” zfs๊ฐ€ ๊ธฐ๋ณธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ufs๊ฐ€ Jail์—์„œ ๊ฐ๊ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ์ปค๋„์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 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)๋กœ ํ‘œ์‹œ๋œ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ์ž‘ ํ›„์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ๋ฃจํŠธ ์‚ฌ์šฉ์ž(๋ฐ ํ•„์š”ํ•œ ์‚ฌ์šฉ์ž)๋ฅผ ์ด ๋กœ๊ทธ์ธ ํด๋ž˜์Šค์— ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹œ์Šคํ…œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์žฌ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ๊ต๋„์†Œ ๋‚ด ์ถœํŒ๋ฌผ ์ค‘ ํ•˜๋‚˜์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ์˜ฅ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์—ฌ๊ธฐ์— ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์ค‘ ๋ ˆ์ด๋ธ”์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋ฉฐ ํด๋Ÿฌ์Šคํ„ฐ ํฌ๊ธฐ๊ฐ€ 2kb์ธ ufs64 ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•œ ํ›„ Apache์— ๋Œ€ํ•œ mls/low ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€ Apache๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ldd /usr/local/sbin/httpd

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์ข…์†์„ฑ์ด ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ํŒŒ์ผ์— ํ•„์š”ํ•œ ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” mls/high ๋ ˆ์ด๋ธ”์ด ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋„ ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. mls/๋‚ฎ์Œ. Apache๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ 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

์ด ๋ชฉ๋ก์—๋Š” apache์™€ php ์กฐํ•ฉ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•œ mls/low ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ์ œ์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€์˜ ๊ฒฝ์šฐ).

๋งˆ์ง€๋ง‰ ์ž‘์—…์€ mls/equal ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋„๋ก ๊ฐ์˜ฅ์„ ๊ตฌ์„ฑํ•˜๊ณ  mls/low ์ˆ˜์ค€์—์„œ ์•„ํŒŒ์น˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์˜ฅ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด /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

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€