پېژندنه
د سرور امنیت اضافي کچې چمتو کولو لپاره ، تاسو کارولی شئ
د چمتو کولو لپاره
دا طریقه یوازې د ufs فایل سیسټم لپاره مناسبه ده؛ پدې مثال کې، zfs به په ترتیب سره په اصلي سیسټم کې کارول کیږي، او په جیل کې ufs. لومړی ګام د کرنل بیا رغول دي؛ کله چې د FreeBSD نصب کول، د سرچینې کوډ نصب کړئ.
د سیسټم نصبولو وروسته، فایل سم کړئ:
/usr/src/sys/amd64/conf/GENERIC
تاسو دې فایل ته یوازې یوه کرښه اضافه کولو ته اړتیا لرئ:
options MAC_MLS
mls/لوړ لیبل به د mls/ټيټ لیبل په پرتله غالب دریځ ولري، هغه غوښتنلیکونه چې د mls/ټيټ لیبل سره به پیل شي هغه فایلونو ته د لاسرسي وړ نه وي چې mls/لوړ لیبل ولري. په 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
له دې وروسته، تاسو کولی شئ په خوندي ډول سیسټم ریبوټ کړئ. څنګه جوړ کړئ
newfs -O 2 -b 64kb /dev/ada1
tunefs -l enable /dev/ada1
د فایل سیسټم رامینځته کولو او ملټي لیبل اضافه کولو وروسته ، تاسو اړتیا لرئ هارډ ډرایو /etc/fstab ته اضافه کړئ ، دې فایل ته لاین اضافه کړئ:
/dev/ada1 /jail ufs rw 0 1
په ماونټ پوینټ کې ، هغه لارښود مشخص کړئ چیرې چې تاسو به هارډ ډرایو نصب کړئ؛ په پاس کې ، ډاډ ترلاسه کړئ چې 1 مشخص کړئ (په کوم ترتیب کې دا هارډ ډرایو به چیک شي) - دا اړینه ده ، ځکه چې د 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/ ټیټ لیبلونه تنظیم کړئ او ورپسې نصب شوي کڅوړې (د مثال په توګه ، د php لپاره اضافي توسیعونه) به د لاسرسي وړ وي. په دې لارښود کې کتابتونونه، مګر دا زما لپاره غوره ښکاري چې یوازې هغه فایلونو ته لاسرسی چمتو کړئ چې اړین دي. جیل بند کړئ او په ټولو فایلونو کې mls/لوړ لیبلونه تنظیم کړئ:
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 / ټیټ لیبلونه تنظیم کړئ ، لومړی شی چې تاسو یې کولو ته اړتیا لرئ دا ومومئ چې د اپاچي پیل کولو لپاره کوم فایلونو ته اړتیا ده:
ldd /usr/local/sbin/httpd
د دې کمانډ پلي کولو وروسته ، انحصار به په سکرین کې ښکاره شي ، مګر پدې فایلونو کې د اړین لیبلونو تنظیم کول به کافي نه وي ، ځکه چې هغه لارښودونه چې دا فایلونه پکې موقعیت لري د mls/لوړ لیبل لري ، نو دا لارښودونه هم باید لیبل شي. mls/ټيټ. کله چې پیل کیږي، اپاچي به هغه فایلونه هم تولید کړي چې د دې چلولو لپاره اړین دي، او د 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 / ټیټ ټاګونه لري چې د اپاچي او پی ایچ پی ترکیب سم عملیاتو لپاره اړین دي (د هغه کڅوړو لپاره چې زما په مثال کې نصب شوي دي).
وروستی تماس به د جیل تنظیم کول وي چې په mls/مساوي کچه چلیږي، او اپاچي په mls/ټيټه کچه. د جیل پیل کولو لپاره، تاسو اړتیا لرئ چې په /etc/rc.d/jail سکریپټ کې بدلونونه رامینځته کړئ، په دې سکریپټ کې د jail_start افعال ومومئ، د کمانډ تغیر په فورمه کې بدل کړئ:
command="setpmac mls/equal $jail_program"
د setpmac کمانډ د اړتیا وړ وړتیا کچه کې د اجرا وړ فایل پرمخ وړي، پدې حالت کې mls / مساوي، د دې لپاره چې ټولو لیبلونو ته لاسرسی ولري. په اپاچي کې تاسو اړتیا لرئ د پیل سکریپټ ترمیم کړئ /usr/local/etc/rc.d/apache24. د apache24_prestart فعالیت بدل کړئ:
apache24_prestart() {
apache24_checkfib
apache24_precmd
eval "setpmac mls/low" ${command} ${apache24_flags}
}
В
پایلې
د لاسرسي توزیع کولو دا طریقه به اپاچي ته د امنیت اضافي کچې اضافه کړي (که څه هم دا میتود د کوم بل سټیک لپاره مناسب دی) ، کوم چې سربیره پردې په جیل کې پرمخ ځي ، په ورته وخت کې ، د مدیر لپاره دا ټول به په شفاف او غیر د پام وړ پیښ شي.
د هغو سرچینو لیست چې ما سره یې د دې خپرونې په لیکلو کې مرسته کړې:
سرچینه: www.habr.com