နိဒါန်း
ဆာဗာလုံခြုံရေး၏ နောက်ထပ်အဆင့်တစ်ခုပေးရန်၊ သင်သည် အသုံးပြုနိုင်သည်။
လေ့ကျင့်ရေး
ဤနည်းလမ်းသည် ufs ဖိုင်စနစ်အတွက်သာ သင့်လျော်သည်၊ ဤဥပမာတွင်၊ zfs ကို ပင်မစနစ်တွင် အသုံးပြုမည်ဖြစ်ပြီး၊ ထောင်ထဲတွင် ufs အသီးသီးကို အသုံးပြုမည်ဖြစ်သည်။ ပထမအဆင့်သည် kernel ကိုပြန်လည်တည်ဆောက်ရန်ဖြစ်သည်၊ FreeBSD ကိုထည့်သွင်းသောအခါ၊ အရင်းအမြစ်ကုဒ်ကိုထည့်သွင်းပါ။
စနစ်ထည့်သွင်းပြီးနောက်၊ ဖိုင်ကိုတည်းဖြတ်ပါ။
/usr/src/sys/amd64/conf/GENERIC
ဤဖိုင်တွင် စာကြောင်းတစ်ကြောင်းသာ ထည့်ရန် လိုအပ်သည်-
options MAC_MLS
mls/high label သည် mls/low တံဆိပ်အပေါ်တွင် အသာစီးရမည်ဖြစ်ပြီး၊ mls/low label ဖြင့် စတင်မည့် အပလီကေးရှင်းများသည် mls/high label ပါသည့်ဖိုင်များကို ဝင်ရောက်ကြည့်ရှုနိုင်မည်မဟုတ်ပေ။ FreeBSD စနစ်ရှိ ရရှိနိုင်သော tag များအားလုံးအကြောင်း အသေးစိတ်ကို ဤတွင် တွေ့နိုင်ပါသည်။
ထို့နောက် /usr/src directory သို့သွားပါ။
cd /usr/src
kernel ကိုစတင်တည်ဆောက်ရန်၊ run (j key တွင်၊ စနစ်အတွင်းရှိ cores အရေအတွက်ကိုသတ်မှတ်ပါ) ။
make -j 4 buildkernel KERNCONF=GENERIC
kernel ကို စုစည်းပြီးပါက၊ ၎င်းကို ထည့်သွင်းရမည်-
make installkernel KERNCONF=GENERIC
kernel ကိုထည့်သွင်းပြီးနောက်၊ ၎င်းကိုယခင်က configure လုပ်ပြီးအသုံးပြုသူများကို login class သို့လွှဲပြောင်းရန်လိုအပ်သောကြောင့် system ကိုပြန်လည်စတင်ရန်အလျင်စလိုမလုပ်ပါနှင့်။ /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
autorun ရန်အတွက် သင်သည် mac_mls.ko module ကို ထပ်ထည့်ရန် လိုအပ်ပါသည်။
echo 'mac_mls_load="YES"' >> /boot/loader.conf
၎င်းပြီးနောက်၊ သင်သည်လုံခြုံစွာစနစ်အားပြန်လည်စတင်နိုင်သည်။ ဖန်တီးနည်း
newfs -O 2 -b 64kb /dev/ada1
tunefs -l enable /dev/ada1
ဖိုင်စနစ်ဖန်တီးပြီး တံဆိပ်မျိုးစုံထည့်ပြီးနောက်၊ သင်သည် /etc/fstab သို့ hard drive ကိုထည့်ရန် လိုအပ်ပြီး ဤဖိုင်တွင် စာကြောင်းထည့်ရန် လိုအပ်သည်-
/dev/ada1 /jail ufs rw 0 1
Mountpoint တွင်၊ သင် hard drive ကိုတပ်ဆင်မည့် directory ကိုသတ်မှတ်ပါ၊ Pass တွင်၊ 1 ကိုသတ်မှတ်ပါ (ဤ hard drive ကိုမည်သည့် sequence တွင်စစ်ဆေးပါမည်) - ufs ဖိုင်စနစ်သည်ရုတ်တရက်ပါဝါဖြတ်တောက်ရန်အထိခိုက်မခံသောကြောင့်၎င်းသည်လိုအပ်ပါသည်။ . ဤအဆင့်များပြီးနောက်၊ ဒစ်ကိုတပ်ဆင်ပါ။
mount /dev/ada1 /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 labels များသတ်မှတ်ပါ-
setfmac -R mls/high /jail
သတ်မှတ်ချက်များကို အမှတ်အသားပြုသည့်အခါ၊ setfmac သည် hard links များနှင့်တွေ့ပါက၊ ကျွန်ုပ်၏နမူနာတွင်၊ အောက်ပါလမ်းညွှန်များတွင် hard links များကို ကျွန်ုပ်ဖျက်လိုက်သည်-
/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 သည် ၎င်းကိုလည်ပတ်ရန်လိုအပ်သောဖိုင်များကိုထုတ်ပေးမည်ဖြစ်ပြီး 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 tags များပါရှိသည်။
နောက်ဆုံးထိတွေ့မှုသည် mls/တူညီသောအဆင့်တွင်လည်ပတ်ရန်အကျဉ်းထောင်ကိုဖွဲ့စည်းရန်နှင့် mls/low အဆင့်တွင် apache တို့ကိုလုပ်ဆောင်ရန်ဖြစ်သည်။ jail စတင်ရန်၊ သင်သည် /etc/rc.d/jail script ကို အပြောင်းအလဲလုပ်ရန် လိုအပ်သည်၊ ဤ script ရှိ jail_start လုပ်ဆောင်ချက်များကို ရှာပါ၊ ကွန်မန်းကို ပုံစံပြောင်းရန်-
command="setpmac mls/equal $jail_program"
setpmac command သည် အညွှန်းများအားလုံးသို့ဝင်ရောက်ခွင့်ရရှိရန်အတွက် လိုအပ်သောစွမ်းရည်အဆင့်တွင်၊ ဤအခြေအနေတွင် mls/equal ဖြင့်လုပ်ဆောင်သည်။ apache တွင် သင်သည် startup script /usr/local/etc/rc.d/apache24 ကို တည်းဖြတ်ရန် လိုအပ်သည်။ apache24_prestart လုပ်ဆောင်ချက်ကို ပြောင်းလဲပါ။
apache24_prestart() {
apache24_checkfib
apache24_precmd
eval "setpmac mls/low" ${command} ${apache24_flags}
}
В
ကောက်ချက်
သုံးစွဲခွင့်ကို ဖြန့်ဝေသည့်နည်းလမ်းသည် apache တွင် နောက်ထပ်လုံခြုံရေးအဆင့်တစ်ခုထပ်တိုးလာမည် (ဤနည်းလမ်းသည် အခြားသော stack များအတွက် သင့်လျော်သော်လည်း) ၎င်းအပြင် စီမံခန့်ခွဲသူအတွက် တစ်ချိန်တည်းမှာပင် ဤအရာအားလုံးသည် အကျဉ်းထောင်တစ်ခုအတွင်း လုပ်ဆောင်နေသည့်အတွက် ပွင့်လင်းမြင်သာစွာနှင့် သတိမထားမိဘဲ ဖြစ်သွားမည်ဖြစ်သည်။
ဤစာစောင်ကို ရေးသားရာတွင် ကျွန်ုပ်အား အထောက်အကူဖြစ်စေသော အရင်းအမြစ်များစာရင်း-
source: www.habr.com