ಪರಿಚಯ
ಹೆಚ್ಚುವರಿ ಮಟ್ಟದ ಸರ್ವರ್ ಭದ್ರತೆಯನ್ನು ಒದಗಿಸಲು, ನೀವು ಬಳಸಬಹುದು ಪ್ರವೇಶ ವಿತರಣೆ. ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲು ಅಪಾಚೆ ಮತ್ತು ಪಿಎಚ್ಪಿಗೆ ಪ್ರವೇಶ ಅಗತ್ಯವಿರುವ ಘಟಕಗಳಿಗೆ ಮಾತ್ರ ಪ್ರವೇಶದೊಂದಿಗೆ ನೀವು ಜೈಲಿನಲ್ಲಿ ಅಪಾಚೆಯನ್ನು ಹೇಗೆ ಚಲಾಯಿಸಬಹುದು ಎಂಬುದನ್ನು ಈ ಪ್ರಕಟಣೆ ವಿವರಿಸುತ್ತದೆ. ಈ ತತ್ವವನ್ನು ಬಳಸಿಕೊಂಡು, ನೀವು ಅಪಾಚೆಯನ್ನು ಮಾತ್ರ ಸೀಮಿತಗೊಳಿಸಬಹುದು, ಆದರೆ ಯಾವುದೇ ಇತರ ಸ್ಟಾಕ್ ಅನ್ನು ಸಹ ಮಿತಿಗೊಳಿಸಬಹುದು.
ತರಬೇತಿ
ಈ ವಿಧಾನವು 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
ಇದರ ನಂತರ, ನೀವು ಸಿಸ್ಟಮ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ರೀಬೂಟ್ ಮಾಡಬಹುದು. ಹೇಗೆ ರಚಿಸುವುದು ನೀವು ನನ್ನ ಪ್ರಕಟಣೆಗಳಲ್ಲಿ ಒಂದನ್ನು ಓದಬಹುದು. ಆದರೆ ಜೈಲನ್ನು ರಚಿಸುವ ಮೊದಲು, ನೀವು ಹಾರ್ಡ್ ಡ್ರೈವ್ ಅನ್ನು ಸೇರಿಸಬೇಕು ಮತ್ತು ಅದರ ಮೇಲೆ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ರಚಿಸಬೇಕು ಮತ್ತು ಅದರ ಮೇಲೆ ಮಲ್ಟಿಲೇಬಲ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು, 2kb ನ ಕ್ಲಸ್ಟರ್ ಗಾತ್ರದೊಂದಿಗೆ ufs64 ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ರಚಿಸಬೇಕು:
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
ಲೇಬಲ್ಗಳನ್ನು ಹೊಂದಿಸಿದ ನಂತರ, ನೀವು ಅಪಾಚೆಗಾಗಿ ಮಿಲಿ/ಕಡಿಮೆ ಲೇಬಲ್ಗಳನ್ನು ಹೊಂದಿಸಬೇಕಾಗುತ್ತದೆ, ನೀವು ಮಾಡಬೇಕಾದ ಮೊದಲನೆಯದು ಅಪಾಚೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಯಾವ ಫೈಲ್ಗಳು ಅಗತ್ಯವಿದೆ ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯುವುದು:
ldd /usr/local/sbin/httpd
ಈ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, ಅವಲಂಬನೆಗಳನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಈ ಫೈಲ್ಗಳಲ್ಲಿ ಅಗತ್ಯವಾದ ಲೇಬಲ್ಗಳನ್ನು ಹೊಂದಿಸುವುದು ಸಾಕಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಈ ಫೈಲ್ಗಳು ಇರುವ ಡೈರೆಕ್ಟರಿಗಳು 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
ಈ ಪಟ್ಟಿಯು apache ಮತ್ತು php ಸಂಯೋಜನೆಯ ಸರಿಯಾದ ಕಾರ್ಯಾಚರಣೆಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಫೈಲ್ಗಳಿಗೆ 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}
}
В ಕೈಪಿಡಿಯು ಇನ್ನೊಂದು ಉದಾಹರಣೆಯನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ನಾನು ಅದನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಏಕೆಂದರೆ ನಾನು setpmac ಆಜ್ಞೆಯನ್ನು ಬಳಸಲು ಅಸಮರ್ಥತೆಯ ಬಗ್ಗೆ ಸಂದೇಶವನ್ನು ಪಡೆಯುತ್ತಿದ್ದೇನೆ.
ತೀರ್ಮಾನಕ್ಕೆ
ಪ್ರವೇಶವನ್ನು ವಿತರಿಸುವ ಈ ವಿಧಾನವು ಅಪಾಚೆಗೆ ಹೆಚ್ಚುವರಿ ಮಟ್ಟದ ಭದ್ರತೆಯನ್ನು ಸೇರಿಸುತ್ತದೆ (ಈ ವಿಧಾನವು ಯಾವುದೇ ಇತರ ಸ್ಟಾಕ್ಗೆ ಸೂಕ್ತವಾಗಿದೆ), ಇದು ಹೆಚ್ಚುವರಿಯಾಗಿ ಜೈಲಿನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ, ಅದೇ ಸಮಯದಲ್ಲಿ, ನಿರ್ವಾಹಕರಿಗೆ ಇದೆಲ್ಲವೂ ಪಾರದರ್ಶಕವಾಗಿ ಮತ್ತು ಗಮನಿಸದೆ ನಡೆಯುತ್ತದೆ.
ಈ ಪ್ರಕಟಣೆಯನ್ನು ಬರೆಯಲು ನನಗೆ ಸಹಾಯ ಮಾಡಿದ ಮೂಲಗಳ ಪಟ್ಟಿ:
ಮೂಲ: www.habr.com
