{"id":31890,"date":"2019-10-31T21:43:45","date_gmt":"2019-10-31T18:43:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/mandatnaya-model-raspredeleniya-prav-v-freebsd\/"},"modified":"2019-10-31T21:43:45","modified_gmt":"2019-10-31T18:43:45","slug":"mandatnaya-model-raspredeleniya-prav-v-freebsd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/mandatnaya-model-raspredeleniya-prav-v-freebsd","title":{"rendered":"Mandatory rights distribution model in FreeBSD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>To provide an additional layer of server security, one can use <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B0%D0%BD%D0%B4%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC\">a mandated model<\/a><\/noindex> of access distribution. This publication will describe how to run Apache in a jail with access only to the components necessary for the proper functioning of Apache and PHP. This principle can be applied not only to Apache but also to any other stack.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Preparation<\/h2>\n<p>This method is suitable only for the UFS file system; in this example, the main system will use ZFS, while the jail will use UFS. First, you need to rebuild the kernel; when installing FreeBSD, install the source code.<br \/>\nAfter the system is installed, edit the file:<\/p>\n<pre><code class=\"plaintext\">\/usr\/src\/sys\/amd64\/conf\/GENERIC\n<\/code><\/pre>\n<p>You need to add just one line to this file:<\/p>\n<pre><code class=\"plaintext\">options     MAC_MLS\n<\/code><\/pre>\n<p>The label mls\/high will take precedence over the label mls\/low; applications launched with the label mls\/low will not be able to access files labeled mls\/high. More details about all available labels in the FreeBSD system can be found in this <noindex><a rel=\"nofollow\" href=\"https:\/\/www.freebsd.org\/doc\/ru_RU.KOI8-R\/books\/handbook\/mac.html\">the guide<\/a><\/noindex>.<br \/>\nNext, navigate to the directory \/usr\/src:<\/p>\n<pre><code class=\"plaintext\">cd \/usr\/src\n<\/code><\/pre>\n<p>To start the kernel build, execute (in the j option, specify the number of cores in the system):<\/p>\n<pre><code class=\"plaintext\">make -j 4 buildkernel KERNCONF=GENERIC\n<\/code><\/pre>\n<p>Once the kernel is built, it needs to be installed:<\/p>\n<pre><code class=\"plaintext\">make installkernel KERNCONF=GENERIC\n<\/code><\/pre>\n<p>After installing the kernel, do not rush to reboot the system, as it is necessary to transition users to the login class after configuring it. Edit the file \/etc\/login.conf, in this file you need to edit the default login class, changing it to:<\/p>\n<pre><code class=\"plaintext\">default:\n        :passwd_format=sha512:\n        :copyright=\/etc\/COPYRIGHT:\n        :welcome=\/etc\/motd:\n        :setenv=MAIL=\/var\/mail\/$,BLOCKSIZE=K:\n        :path=\/sbin \/bin \/usr\/sbin \/usr\/bin \/usr\/local\/sbin \/usr\/local\/bin ~\/bin:\n        :nologin=\/var\/run\/nologin:\n        :cputime=unlimited:\n        :datasize=unlimited:\n        :stacksize=unlimited:\n        :memorylocked=64K:\n        :memoryuse=unlimited:\n        :filesize=unlimited:\n        :coredumpsize=unlimited:\n        :openfiles=unlimited:\n        :maxproc=unlimited:\n        :sbsize=unlimited:\n        :vmemoryuse=unlimited:\n        :swapuse=unlimited:\n        :pseudoterminals=unlimited:\n        :kqueues=unlimited:\n        :umtxp=unlimited:\n        :priority=0:\n        :ignoretime@:\n        :umask=022:\n        :label=mls\/equal:\n<\/code><\/pre>\n<p>The line :label=mls\/equal will allow users who belong to this class to access files marked with any label (mls\/low, mls\/high). After these manipulations, you need to rebuild the database and place the root user (as well as those who need it) in this login class:<\/p>\n<pre><code class=\"plaintext\">cap_mkdb \/etc\/login.conf\npw usermod root -L default\n<\/code><\/pre>\n<p>To ensure that the policy only applies to files, you need to edit the file \/etc\/mac.conf and leave only one line in it:<\/p>\n<pre><code class=\"plaintext\">default_labels file ?mls\n<\/code><\/pre>\n<p>You also need to add the mac_mls.ko module to autoload:<\/p>\n<pre><code class=\"plaintext\">echo 'mac_mls_load=\"YES\"' &gt;&gt; \/boot\/loader.conf\n<\/code><\/pre>\n<p>After this, you can safely reboot the system. How to create <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/342312\/\">jail<\/a><\/noindex> can be read in one of my publications. But before creating a jail, you need to add a hard drive, create a filesystem on it, and enable multilabel. Create a ufs2 filesystem with a cluster size of 64kb:<\/p>\n<pre><code class=\"plaintext\">newfs -O 2 -b 64kb \/dev\/ada1\ntunefs -l enable \/dev\/ada1\n<\/code><\/pre>\n<p>After creating the filesystem and adding multilabel, you need to add the hard drive to \/etc\/fstab. Add the following line to this file:<\/p>\n<pre><code class=\"plaintext\">\/dev\/ada1               \/jail  ufs     rw              0       1\n<\/code><\/pre>\n<p>In the Mountpoint, specify the directory where you will mount the hard drive. In Pass, be sure to specify 1 (the order in which this hard drive will be checked) \u2014 this is necessary, as the ufs filesystem is sensitive to sudden power outages. After these steps, mount the disk:<\/p>\n<pre><code class=\"plaintext\">mount \/dev\/ada1 \/jail\n<\/code><\/pre>\n<p>Install the jail in this directory. After the jail is up and running, it is necessary to carry out the same manipulations as in the main system with users and files \/etc\/login.conf, \/etc\/mac.conf. <\/p>\n<h2>Settings<\/h2>\n<p>Before setting the necessary labels, I recommend installing all the required packages. In my case, the labels will be set considering these packages:<\/p>\n<pre><code class=\"plaintext\">mod_php73-7.3.4_1              PHP Scripting Language\nphp73-7.3.4_1                  PHP Scripting Language\nphp73-ctype-7.3.4_1            The ctype shared extension for php\nphp73-curl-7.3.4_1             The curl shared extension for php\nphp73-dom-7.3.4_1              The dom shared extension for php\nphp73-extensions-1.0           \"meta-port\" to install PHP extensions\nphp73-filter-7.3.4_1           The filter shared extension for php\nphp73-gd-7.3.4_1               The gd shared extension for php\nphp73-gettext-7.3.4_1          The gettext shared extension for php\nphp73-hash-7.3.4_1             The hash shared extension for php\nphp73-iconv-7.3.4_1            The iconv shared extension for php\nphp73-json-7.3.4_1             The json shared extension for php\nphp73-mysqli-7.3.4_1           The mysqli shared extension for php\nphp73-opcache-7.3.4_1          The opcache shared extension for php\nphp73-openssl-7.3.4_1          The openssl shared extension for php\nphp73-pdo-7.3.4_1              The pdo shared extension for php\nphp73-pdo_sqlite-7.3.4_1       The pdo_sqlite shared extension for php\nphp73-phar-7.3.4_1             The phar shared extension for php\nphp73-posix-7.3.4_1            The posix shared extension for php\nphp73-session-7.3.4_1          The session shared extension for php\nphp73-simplexml-7.3.4_1        The simplexml shared extension for php\nphp73-sqlite3-7.3.4_1          The sqlite3 shared extension for php\nphp73-tokenizer-7.3.4_1        The tokenizer shared extension for php\nphp73-xml-7.3.4_1              The xml shared extension for php\nphp73-xmlreader-7.3.4_1        The xmlreader shared extension for php\nphp73-xmlrpc-7.3.4_1           The xmlrpc shared extension for php\nphp73-xmlwriter-7.3.4_1        The xmlwriter shared extension for php\nphp73-xsl-7.3.4_1              The xsl shared extension for php\nphp73-zip-7.3.4_1              The zip shared extension for php\nphp73-zlib-7.3.4_1             The zlib shared extension for php\napache24-2.4.39 \n<\/code><\/pre>\n<p>In this example, labels will be assigned considering the dependencies of these packages. Of course, it would be simpler to set labels mls\/low for the directory \/usr\/local\/lib and the files located in this directory, allowing subsequent installed packages (like additional extensions for php) to access libraries in this directory. However, I think it\u2019s better to grant access only to the files that are necessary. Stop the jail and set the labels mls\/high for all files:<\/p>\n<pre><code class=\"plaintext\">setfmac -R mls\/high \/jail\n<\/code><\/pre>\n<p>When assigning labels, the process will be halted if setfmac encounters hard links. In my example, I removed hard links in the following directories:<\/p>\n<pre><code class=\"plaintext\">\/var\/db\/etcupdate\/current\/\n\/var\/db\/etcupdate\/current\/etc\n\/var\/db\/etcupdate\/current\/usr\/share\/openssl\/man\/en.ISO8859-15\n\/var\/db\/etcupdate\/current\/usr\/share\/man\/en.ISO8859-15\n\/var\/db\/etcupdate\/current\/usr\/share\/man\/en.UTF-8\n\/var\/db\/etcupdate\/current\/usr\/share\/nls\n\/etc\/ssl\n\/usr\/local\/etc\n\/usr\/local\/etc\/fonts\/conf.d\n\/usr\/local\/openssl\n<\/code><\/pre>\n<p>After the labels are set, it is necessary to set the labels mls\/low for apache. First, you need to determine which files are required to run apache:<\/p>\n<pre><code class=\"plaintext\">ldd \/usr\/local\/sbin\/httpd\n<\/code><\/pre>\n<p>After executing this command, dependencies will be displayed on the screen, but setting the necessary labels on these files will not be sufficient, as the directories containing these files have the mls\/high label; therefore, the mls\/low label must also be applied to these directories. When starting Apache, it will also provide the files necessary for its operation, and for PHP, these dependencies can be found in the httpd-error.log.<\/p>\n<pre><code class=\"plaintext\">setfmac mls\/low \/\nsetfmac mls\/low \/usr\/local\/lib\/libpcre.so.1\nsetfmac mls\/low \/usr\/local\/lib\/libaprutil-1.so.0\nsetfmac mls\/low \/usr\/local\/lib\/libdb-5.3.so.0\nsetfmac mls\/low \/usr\/local\/lib\/libgdbm.so.6\nsetfmac mls\/low \/usr\/local\/lib\/libexpat.so.1\nsetfmac mls\/low \/usr\/local\/lib\/libapr-1.so.0\nsetfmac mls\/low \/lib\/libcrypt.so.5\nsetfmac mls\/low \/lib\/libthr.so.3\nsetfmac mls\/low \/lib\/libc.so.7\nsetfmac mls\/low \/usr\/local\/lib\/libintl.so.8\nsetfmac mls\/low \/var\nsetfmac mls\/low \/var\/run\nsetfmac mls\/low \/var\/log\nsetfmac mls\/low \/var\/log\/httpd-access.log\nsetfmac mls\/low \/var\/log\/httpd-error.log\nsetfmac mls\/low \/var\/run\/httpd.pid\nsetfmac mls\/low \/lib\nsetfmac mls\/low \/lib\/libcrypt.so.5\nsetfmac mls\/low \/usr\/local\/lib\/db5\/libdb-5.3.so.0\nsetfmac mls\/low \/usr\/local\/lib\/db5\/libdb-5.3.so.0.0.0\nsetfmac mls\/low \/usr\/local\/lib\/db5\nsetfmac mls\/low \/usr\/local\/lib\nsetfmac mls\/low \/libexec\nsetfmac mls\/low \/libexec\/ld-elf.so.1\nsetfmac  mls\/low \/dev\nsetfmac  mls\/low \/dev\/random\nsetfmac  mls\/low \/usr\/local\/libexec\nsetfmac  mls\/low \/usr\/local\/libexec\/apache24\nsetfmac  mls\/low \/usr\/local\/libexec\/apache24\/*\nsetfmac  mls\/low \/etc\/pwd.db\nsetfmac  mls\/low \/etc\/passwd\nsetfmac  mls\/low \/etc\/group\nsetfmac  mls\/low \/etc\/\nsetfmac  mls\/low \/usr\/local\/etc\nsetfmac -R mls\/low \/usr\/local\/etc\/apache24\nsetfmac mls\/low \/usr\nsetfmac mls\/low \/usr\/local\nsetfmac mls\/low \/usr\/local\/sbin\nsetfmac mls\/low \/usr\/local\/sbin\/*\nsetfmac -R mls\/low \/usr\/local\/etc\/rc.d\/\nsetfmac mls\/low \/usr\/local\/sbin\/htcacheclean\nsetfmac mls\/low \/var\/log\/httpd-access.log\nsetfmac mls\/low \/var\/log\/httpd-error.log\nsetfmac -R mls\/low \/usr\/local\/www\nsetfmac mls\/low \/usr\/lib\nsetfmac mls\/low \/tmp\nsetfmac -R mls\/low \/usr\/local\/lib\/php\nsetfmac -R mls\/low \/usr\/local\/etc\/php\nsetfmac mls\/low \/usr\/local\/etc\/php.conf\nsetfmac mls\/low \/lib\/libelf.so.2\nsetfmac mls\/low \/lib\/libm.so.5\nsetfmac mls\/low \/usr\/local\/lib\/libxml2.so.2\nsetfmac mls\/low \/lib\/libz.so.6\nsetfmac mls\/low \/usr\/lib\/liblzma.so.5\nsetfmac mls\/low \/usr\/local\/lib\/libiconv.so.2\nsetfmac mls\/low \/usr\/lib\/librt.so.1\nsetfmac mls\/low \/lib\/libthr.so.3\nsetfmac mls\/low \/usr\/local\/lib\/libpng16.so.16\nsetfmac mls\/low \/usr\/lib\/libbz2.so.4\nsetfmac mls\/low \/usr\/local\/lib\/libargon2.so.0\nsetfmac mls\/low \/usr\/local\/lib\/libpcre2-8.so.0\nsetfmac mls\/low \/usr\/local\/lib\/libsqlite3.so.0\nsetfmac mls\/low \/usr\/local\/lib\/libgd.so.6\nsetfmac mls\/low \/usr\/local\/lib\/libjpeg.so.8\nsetfmac mls\/low \/usr\/local\/lib\/libfreetype.so\nsetfmac mls\/low \/usr\/local\/lib\/libfontconfig.so.1\nsetfmac mls\/low \/usr\/local\/lib\/libtiff.so.5\nsetfmac mls\/low \/usr\/local\/lib\/libwebp.so.7\nsetfmac mls\/low \/usr\/local\/lib\/libjbig.so.2\nsetfmac mls\/low \/usr\/lib\/libssl.so.8\nsetfmac mls\/low \/lib\/libcrypto.so.8\nsetfmac mls\/low \/usr\/local\/lib\/libzip.so.5\nsetfmac mls\/low \/etc\/resolv.conf\n<\/code><\/pre>\n<p>This list sets the mls\/low labels on all files necessary for the proper functioning of the Apache and PHP combination (for the packages installed in my example).<\/p>\n<p>The final touch will be configuring the jail to run at the mls\/equal level and Apache at the mls\/low level. To start the jail, you need to modify the script \/etc\/rc.d\/jail, find the jail_start function in this script, and set the command variable as follows:<\/p>\n<pre><code class=\"plaintext\">command=\"setpmac mls\/equal $jail_program\"\n<\/code><\/pre>\n<p>The setpmac command runs the executable at the required mandatory level, in this case mls\/equal, to access all labels. In Apache, you need to edit the startup script \/usr\/local\/etc\/rc.d\/apache24. Make changes in the apache24_prestart function:<\/p>\n<pre><code class=\"plaintext\">apache24_prestart() {\n        apache24_checkfib\n        apache24_precmd\n        eval \"setpmac mls\/low\" ${command} ${apache24_flags}\n}\n<\/code><\/pre>\n<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/www.freebsd.org\/doc\/ru_RU.KOI8-R\/books\/handbook\/MAC-examplehttpd.html\">official<\/a><\/noindex> the guide provides a different example, but I was unable to use it as I constantly received a message stating that the setpmac command could not be used.<\/p>\n<h2>Output<\/h2>\n<p>This method of access distribution adds an additional layer of security to Apache (although this method is applicable to any other stack) which runs in a jail, while for the administrator, all of this will happen transparently and unnoticed.<\/p>\n<p><b>A list of sources that helped me in writing this publication:<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.freebsd.org\/doc\/ru_RU.KOI8-R\/books\/handbook\/mac.html\">https:\/\/www.freebsd.org\/doc\/ru_RU.KOI8-R\/books\/handbook\/mac.html<\/a><\/noindex><br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/448642\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u043d\u0434\u0430\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c apache \u0432 jail \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0442\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b apache \u0438 php. \u041f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e apache, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u044d\u043a. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31890","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/mandatnaya-model-raspredeleniya-prav-v-freebsd\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0430\u043d\u0434\u0430\u0442\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432 \u0432 FreeBSD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/mandatnaya-model-raspredeleniya-prav-v-freebsd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:43:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Mandatory Access Control Model in FreeBSD | ProHoster","description":"Introduction To ensure an additional level of server security, you can use","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/mandatnaya-model-raspredeleniya-prav-v-freebsd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0430\u043d\u0434\u0430\u0442\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432 \u0432 FreeBSD | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/mandatnaya-model-raspredeleniya-prav-v-freebsd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:43:45+00:00","article:modified_time":"2019-10-31T18:43:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31890","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 08:18:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:09:26","updated":"2026-01-21 08:18:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/31890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=31890"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/31890\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=31890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=31890"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=31890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}