அறிமுகம்
கூடுதல் அளவிலான சேவையக பாதுகாப்பை வழங்க, நீங்கள் பயன்படுத்தலாம்
பயிற்சி
இந்த முறை ufs கோப்பு முறைமைக்கு மட்டுமே பொருத்தமானது; இந்த எடுத்துக்காட்டில், zfs பிரதான அமைப்பிலும், ufs சிறையில் முறையே பயன்படுத்தப்படும். முதல் படி கர்னலை மீண்டும் உருவாக்க வேண்டும்; FreeBSD ஐ நிறுவும் போது, மூலக் குறியீட்டை நிறுவவும்.
கணினி நிறுவப்பட்ட பிறகு, கோப்பைத் திருத்தவும்:
/usr/src/sys/amd64/conf/GENERIC
இந்த கோப்பில் நீங்கள் ஒரு வரியை மட்டுமே சேர்க்க வேண்டும்:
options MAC_MLS
mls/high label, mls/low label ஐ விட மேலாதிக்க நிலையைக் கொண்டிருக்கும், mls/low label உடன் தொடங்கப்படும் பயன்பாடுகள் mls/high label உள்ள கோப்புகளை அணுக முடியாது. 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 தொகுதியையும் autorunக்கு சேர்க்க வேண்டும்:
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/low லேபிள்களை அமைக்கவும், பின்னர் நிறுவப்பட்ட தொகுப்புகள் (எடுத்துக்காட்டாக, 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/high லேபிள் உள்ளது, எனவே இந்த கோப்பகங்களும் பெயரிடப்பட வேண்டும். மில்லி/குறைவு. தொடங்கும் போது, அப்பாச்சி அதை இயக்க தேவையான கோப்புகளை வெளியிடும், மேலும் 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/குறைந்த குறிச்சொற்கள் உள்ளன (எனது எடுத்துக்காட்டில் நிறுவப்பட்ட தொகுப்புகளுக்கு).
ஜெயிலை mls/சம நிலையிலும், அப்பாச்சியை mls/குறைந்த அளவிலும் இயக்குவதற்கான இறுதித் தொடுதல் இருக்கும். சிறையைத் தொடங்க, நீங்கள் /etc/rc.d/jail ஸ்கிரிப்ட்டில் மாற்றங்களைச் செய்ய வேண்டும், இந்த ஸ்கிரிப்ட்டில் jail_start செயல்பாடுகளைக் கண்டறியவும், கட்டளை மாறியை படிவத்திற்கு மாற்றவும்:
command="setpmac mls/equal $jail_program"
setpmac கட்டளையானது இயங்கக்கூடிய கோப்பை தேவையான திறன் மட்டத்தில் இயக்குகிறது, இந்த வழக்கில் mls/equal, அனைத்து லேபிள்களுக்கும் அணுகல் கிடைக்கும். அப்பாச்சியில் நீங்கள் தொடக்க ஸ்கிரிப்ட் /usr/local/etc/rc.d/apache24 ஐ திருத்த வேண்டும். apache24_prestart செயல்பாட்டை மாற்றவும்:
apache24_prestart() {
apache24_checkfib
apache24_precmd
eval "setpmac mls/low" ${command} ${apache24_flags}
}
В
முடிவுக்கு
அணுகலை விநியோகிக்கும் இந்த முறை அப்பாச்சிக்கு கூடுதல் பாதுகாப்பைச் சேர்க்கும் (இந்த முறை வேறு எந்த அடுக்கிற்கும் ஏற்றது என்றாலும்), இது கூடுதலாக சிறையில் இயங்கும், அதே நேரத்தில், நிர்வாகிக்கு இவை அனைத்தும் வெளிப்படையாகவும் கவனிக்கப்படாமலும் நடக்கும்.
இந்த வெளியீட்டை எழுத எனக்கு உதவிய ஆதாரங்களின் பட்டியல்:
ஆதாரம்: www.habr.com