{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Заметки Александра Чернышева: заметки с тегом centos",
    "_rss_description": "Keep in mind",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/aschernyshev.ru\/tags\/centos\/",
    "feed_url": "https:\/\/aschernyshev.ru\/tags\/centos\/json\/",
    "icon": "https:\/\/aschernyshev.ru\/user\/userpic@2x.jpg?1469596960",
    "author": {
        "name": "Александр Чернышев",
        "url": "https:\/\/aschernyshev.ru\/",
        "avatar": "https:\/\/aschernyshev.ru\/user\/userpic@2x.jpg?1469596960"
    },
    "items": [
        {
            "id": "87",
            "url": "https:\/\/aschernyshev.ru\/all\/openvpn-2-5-md5-support\/",
            "title": "OpenVPN 2.5 MD5 support",
            "content_html": "<pre class=\"e2-text-code\"><code class=\"\">systemctl edit openvpn-client@<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">[Service]\r\nEnvironment=&quot;OPENSSL_ENABLE_MD5_VERIFY=1 NSS_HASH_ALG_SUPPORT=+MD5&quot;<\/code><\/pre>",
            "date_published": "2022-04-07T17:49:45+03:00",
            "date_modified": "2022-04-07T17:49:17+03:00",
            "_date_published_rfc2822": "Thu, 07 Apr 2022 17:49:45 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "87",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "74",
            "url": "https:\/\/aschernyshev.ru\/all\/mtproto-proxy-na-centos7\/",
            "title": "MTProto Proxy на CentOS7",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/aschernyshev.ru\/pictures\/mtproxy.png\" width=\"234\" height=\"234\" alt=\"\" \/>\n<\/div>\n<p>Решил попробовать использовать вместо <a href=\"https:\/\/aschernyshev.ru\/all\/nastroyka-socks5-proksi-na-centos7\/\"><b>3proxy<\/b><\/a> вышедшей не так давно <a href=\"https:\/\/github.com\/TelegramMessenger\/MTProxy\"><b>MTProto Proxy<\/b><\/a>, собрал <a href=\"https:\/\/cloud.mail.ru\/public\/cTC6\/3Dv569TxC\">пакет для 7 CentOS<\/a>. Из зависимостей требует zlib, openssl и curl. В процессе установки автоматически генерируется секретный ключ авторизации, загружаются список серверов и ключ для доступа.<br \/>\nУстановка сводится к следующим действиям<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">yum localinstall mtproto-proxy-20824f5-1.el7.x86_64.rpm\r\nsystemctl enable mtproto-proxy\r\nsystemctl start mtproto-proxy\r\nfirewall-cmd --permanent --zone=external --add-service=mtproto-proxy<\/code><\/pre><p>По умолчанию сервер запускается на порту <b>8443<\/b>. Если это необходимо изменить, то основные настройки вынесены в \/etc\/sysconfig\/mtproto-proxy. Так же придется отредактировать и \/etc\/firewalld\/services\/mtproto-proxy.xml.<\/p>\n<p>Теперь для подключения, в приложении, необходимо перейти по ссылке.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/t.me\/proxy?server=&lt;SERVER_IP&gt;&amp;port=&lt;PORT&gt;&amp;secret=&lt;SECRET_KEY&gt;<\/code><\/pre><p>где:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">SERVER_IP - ip адрес сервера mtproto-proxy\r\nPORT - порт на котором запущен mtproto-proxy\r\nSECRET_KEY - секретный ключ, который был создан в процессе установки<\/code><\/pre><p>Для страждущих паранойей <b>src.rpm<\/b> пакет, для самостоятельной сборки, можно скачать <a href=\"https:\/\/cloud.mail.ru\/public\/K7bc\/dgrrtHejy\"><b>здесь<\/b><\/a>.<\/p>\n",
            "date_published": "2018-07-10T19:38:59+03:00",
            "date_modified": "2019-05-17T06:33:16+03:00",
            "image": "https:\/\/aschernyshev.ru\/pictures\/mtproxy.png",
            "_date_published_rfc2822": "Tue, 10 Jul 2018 19:38:59 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "74",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/aschernyshev.ru\/pictures\/mtproxy.png"
                ]
            }
        },
        {
            "id": "73",
            "url": "https:\/\/aschernyshev.ru\/all\/nastroyka-socks5-proksi-na-centos7\/",
            "title": "Настройка SOCKS5 прокси на CentOS7",
            "content_html": "<p>В свете последних событий, понадобился <b>SOCKS5<\/b> прокси с авторизацией.<br \/>\nПоискав в интернете остановил свой выбор на <b><a href=\"https:\/\/github.com\/z3APA3A\/3proxy\">3proxy<\/a><\/b> от <b>z3APA3A<\/b>, как наиболее легковесном, функциональном и активно развивающемся, последний релиз которого состоялся <b><a href=\"https:\/\/github.com\/z3APA3A\/3proxy\/releases\">18.04.2018<\/a><\/b>.<br \/>\nК сожалению актуальной версии пакета в репозиториях CentOS не нашлось, поэтому пришлось переписать spec-файл для текущей версии 0.8.12.<\/p>\n<p>Для начала необходимо скачать <a href=\"https:\/\/cloud.mail.ru\/public\/C9Vu\/N9NiXPmdZ\">3proxy<\/a>, после чего можно приступать к его установки.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">yum localinstall 3proxy-0.8.12-1.el7.centos.x86_64.rpm<\/code><\/pre><p>Так как меня интересует именно SOCKS-прокси, то конфигурационный файл будет иметь следующий вид. Если нужен дополнительный функционал, то можно почитать 3proxy.cfg.example или <a href=\"https:\/\/github.com\/z3APA3A\/3proxy\/wiki\/How-To-(%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)\">wiki<\/a> проекта на github.com<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/etc\/3proxy\/3proxy.cfg<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">daemon\r\nsetgid 99\r\nsetuid 99\r\n\r\nnscache 65536\r\nnserver 127.0.0.1\r\n\r\ntimeouts 1 5 30 60 180 1800 15 60\r\n\r\nexternal 0.0.0.0\r\ninternal 0.0.0.0\r\n\r\nconfig \/etc\/3proxy\/3proxy.cfg\r\nmonitor \/etc\/3proxy\/3proxy.cfg\r\nmonitor \/etc\/3proxy\/counters\r\nmonitor \/etc\/3proxy\/passwd\r\nmonitor \/etc\/3proxy\/bandlimiters\r\n\r\nlog \/var\/log\/3proxy\/3proxy.log\r\nlogformat &quot;L%o %d %H:%M:%S      %U | %C | %R:%r | %O | %I | %n&quot;\r\narchiver gz \/bin\/gzip %F\r\nrotate 7\r\n\r\nusers $\/etc\/3proxy\/passwd\r\n\r\ninclude \/etc\/3proxy\/counters\r\ninclude \/etc\/3proxy\/bandlimiters\r\n\r\nauth strong\r\nflush\r\nsocks -p81080<\/code><\/pre><p>Теперь добавляем пользователей, для этого выполним скрипт <b>add3proxyuser.sh<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/etc\/3proxy\/add3proxyuser.sh username password day_limit bandwidth<\/code><\/pre><p><i>где:<\/i><br \/>\n<i><b>username<\/b> — имя пользователя<\/i><br \/>\n<b><i>password<\/b> — пароль<\/i><br \/>\n<i><b>day_limit<\/b> — лимит трафика в Мегабайтах в день<\/i><br \/>\n<i><b>bandwidth<\/b> — полоса пропускания в битах в секунду<\/i><\/p>\n<p>Для примера заведем пользователя с логином и паролем admin, лимитом трафика в 100 Мегабайт в день и полосой пропускания в 1 Мегабит.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/etc\/3proxy\/add3proxyuser.sh admin admin 100 1048576<\/code><\/pre><p>Теперь в файле, <b>\/etc\/3proxy\/passwd<\/b>, появилась запись с логином и MD5-хешем пароля<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">admin:CR:$1$10216$EvIj9vLnQi\/zydUXJXYa60<\/code><\/pre><p>Активируем и запускаем сервис<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl enable 3proxy\r\nsystemctl start 3proxy<\/code><\/pre><p>Добавляем правило в Firewall разрешающее внешнее подключение к прокси<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --permanent --zone=external --add-port=81080\/tcp<\/code><\/pre><p>Теперь можно применять настройки прокси перейдя по ссылке следующего содержания:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/t.me\/socks?server=my.server.org&amp;port=81080&amp;user=admin&amp;pass=admin<\/code><\/pre><p>Для страждущих паранойей src.rpm пакет, для самостоятельной сборки, можно скачать <b><a href=\"https:\/\/cloud.mail.ru\/public\/3dnc\/j1RFzsyxJ\">здесь<\/a><\/b>.<\/p>\n",
            "date_published": "2018-04-20T21:45:37+03:00",
            "date_modified": "2018-04-25T14:23:24+03:00",
            "_date_published_rfc2822": "Fri, 20 Apr 2018 21:45:37 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "73",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "66",
            "url": "https:\/\/aschernyshev.ru\/all\/http-2-0-v-nginx-na-centos-7\/",
            "title": "HTTP\/2.0 в Nginx на CentOS 7",
            "content_html": "<p><b>UPD<\/b><br \/>\n<b>Вышло обновление openssl-1.0.2k и даное руководство больше не актуально.<\/b><br \/>\n_____________________________________________________________________<\/p>\n<p>Решил включить HTTP\/2.0 в Nginx. В процессе тестирование, при прохождении <a href=\"https:\/\/tools.keycdn.com\/http2-test\">теста<\/a>  выяснилось, что не активно <a href=\"https:\/\/en.wikipedia.org\/wiki\/Application-Layer_Protocol_Negotiation\">ALPN<\/a> (Application-Layer Protocol Negotiation).<\/p>\n<p>Для полноценной работы HTTP\/2.0, Nginx должен быть собран с <a href=\"http:\/\/xgu.ru\/wiki\/OpenSSL\">OpenSSL<\/a> версии не ниже чем 1.0.2. В репах CentOS есть только OpenSSL версии 1.0.1.<br \/>\nРешить эту проблему можно двумя способами: собрать Nginx с флагом <a href=\"https:\/\/victor.4devs.io\/ru\/architecture\/nginx-http2-does-not-work.html\">—with-openssl<\/a> или собрать OpenSSL 1.0.2 для CentOS.<br \/>\nПервый вариант у меня не взлетел, сборка пакета завершалась неудачно, поэтому я остановился на втором варианте.<br \/>\nВ интернет нашел <a href=\"http:\/\/ja.528p.com\/linux\/centos6\/XE001-openssl.html\">сайт<\/a>, где автор предлагает пачтить сорцы OpenSSL, но недавно в CentOS прилетело обновление glibc-2.17.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">rpm -qa | grep glibc\r\nglibc-common-2.17-157.el7_3.4.x86_64\r\nglibc-2.17-157.el7_3.4.x86_64\r\nglibc-devel-2.17-157.el7_3.4.x86_64\r\nglibc-headers-2.17-157.el7_3.4.x86_64<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">readelf -s \/usr\/lib64\/libc.so.6 | grep secure_getenv<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">614: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __libc_secure_getenv@@GLIBC_PRIVATE\r\n857: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __secure_getenv@GLIBC_2.2.5\r\n1715: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 secure_getenv@@GLIBC_2.17\r\n5228: 0000000000038950    27 FUNC    LOCAL  DEFAULT   12 __GI___libc_secure_getenv\r\n6506: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __secure_getenv@GLIBC_2.2\r\n6529: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 secure_getenv\r\n6918: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __libc_secure_getenv<\/code><\/pre><p>Так что ничего патчить не нужно, а просто собираем <a href=\"https:\/\/www.mirrorservice.org\/sites\/dl.fedoraproject.org\/pub\/fedora\/linux\/releases\/23\/Workstation\/source\/SRPMS\/o\/openssl-1.0.2d-2.fc23.src.rpm\">openssl<\/a> из FC23. Дополнительно потребуется пересобрать еще один пакет из FC23 <a href=\"https:\/\/www.mirrorservice.org\/sites\/dl.fedoraproject.org\/pub\/fedora\/linux\/releases\/23\/Workstation\/source\/SRPMS\/c\/crypto-policies-20150518-3.gitffe885e.fc23.src.rpm\">crypto-policies<\/a>.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">yum install epel-release &amp;&amp; yum update &amp;&amp; yum install mock<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">mkdir -p ~\/rpmbuild\/{SPECS,SOURCES,SRPMS}<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">wget http:\/\/nginx.org\/packages\/centos\/7\/SRPMS\/nginx-1.12.1-1.el7.ngx.src.rpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">rpm -ivh ~\/nginx-1.12.1-1.el7.ngx.src.rpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep 'Requires: openssl &gt;= 1.0.1' -P -R -I -l ~\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/Requires: openssl &gt;= 1.0.1\/Requires: openssl &gt;= 1.0.2\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep 'BuildRequires: openssl-devel &gt;= 1.0.1' -P -R -I -l ~\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/BuildRequires: openssl-devel &gt;= 1.0.1\/BuildRequires: openssl-devel &gt;= 1.0.2\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep 'define main_release 1' -P -R -I -l  ~\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/define main_release 1\/define main_release 2\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep '%changelog' -P -R -I -l  \/root\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/%changelog\/%changelog\\n* Wed Jul 12 2017 Aleksandr Chernyshev &lt;mail@aschernyshev.ru&gt;\\n- 1.12.1 \\n- Rebuild with openssl-1.0.2d\\n\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --spec=~\/rpmbuild\/SPECS\/nginx.spec --sources=~\/rpmbuild\/SOURCES\/ --resultdir=~\/rpmbuild\/SRPMS\/ --no-clean --buildsrpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">wget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/noarch\/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm\r\nwget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm\r\nwget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-1.0.2d-2.el7.centos.x86_64.rpm\r\nwget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-devel-1.0.2d-2.el7.centos.x86_64.rpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --init\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/openssl-1.0.2d-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/openssl-devel-1.0.2d-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --no-clean ~\/rpmbuild\/SRPMS\/nginx-1.12.1-2.el7.centos.ngx.src.rpm<\/code><\/pre><p>Устанавливаем получившиеся <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/noarch\/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm\">crypto-policies<\/a>, <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-1.0.2d-2.el7.centos.x86_64.rpm\">openssl<\/a>, <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm\">openssl-libs<\/a> , <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/nginx-1.12.1-2.el7.centos.ngx.x86_64.rpm\">nginx<\/a>.<\/p>\n",
            "date_published": "2017-07-12T12:03:18+03:00",
            "date_modified": "2017-10-19T18:05:37+03:00",
            "_date_published_rfc2822": "Wed, 12 Jul 2017 12:03:18 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/http-2-0-v-nginx-na-centos-7\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "39",
            "url": "https:\/\/aschernyshev.ru\/all\/sborka-paketov-bez-lishnego-musora-v-centos\/",
            "title": "Сборка пакетов без лишнего мусора в CentOS",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/aschernyshev.ru\/pictures\/centos_logo.jpg\" width=\"229\" height=\"255\" alt=\"\" \/>\n<\/div>\n<p>В процессе сборки rpm-пакетов, при разрешения зависимостей, в систему устанавливается большое количество приложений. Чтобы не засорять host-систему rpm-пакеты можно собирать в chroot. Для этих целей в CentOS существует отличные приложения <a href=\"https:\/\/github.com\/rpm-software-management\/mock\"><b>mock<\/b><\/a>, которое значительно упрощает этот процесс.<\/p>\n<p>Для начала необходимо подключить репозиторий <b>EPEL<\/b> и установить mock<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">yum install epel-release -y &amp;&amp; yum update &amp;&amp; yum install mock -y<\/code><\/pre><p>Далле создадим отдельного пользователя из под которого будет производится сборка пакетов<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">useradd mockbuild\r\nusermod -a -G mock mockbuild<\/code><\/pre><p>Сменим текущего пользователя на mockbuild<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">su mockbuild<\/code><\/pre><p>Далее перейдем в домашний каталог пользователя mockbuild и создадим дерево каталогов<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">cd ~\/\r\nmkdir -p rpmbuild\/{SPECS,SOURCES,SRPMS}<\/code><\/pre><p>Конфигурации для сборки под разные дистрибутивы и архитектуры хранятся в \/etc\/mock\/<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ls -alhrt \/etc\/mock\/<\/code><\/pre><p>Первоначально необходимо создать chroot окружение, для этого выполним<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mock -r epel-7-x86_64 --init<\/code><\/pre><p>Если в процессе сборки вдруг что-то пошло не так, то отчистить chroot можно выполнив<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mock -r epel-7-x86_64 --clean<\/code><\/pre><p>В самом простом случае, если уже есть готовый src.rpm для сборки rpm-пакет необходимо выполнить<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --no-clean --rebuild ~\/rpmbuild\/SRPMS\/package.src.rpm<\/code><\/pre><p>Если в пакет требуется внести изменения, то для начала необходимо распаковать src.rpm<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">rpm -ivh package.src.rpm<\/code><\/pre><p>После чего отредактировать необходимые файлы и заново собрать src.rpm<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --spec=~\/rpmbuild\/SPECS\/package.spec --sources=~\/rpmbuild\/SOURCES\/ --resultdir=~\/rpmbuild\/SRPMS\/ --no-clean --buildsrpm<\/code><\/pre><p>И после этого уже собрать rpm-пакет<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --no-clean --rebuild ~\/rpmbuild\/SRPMS\/package.src.rpm<\/code><\/pre><p>Процесс сборки rpm-пакета с зависимостями которых нет в репозитариях, будет выглядеть следующим образом.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --init\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/rpm\/package-1.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/rpm\/package-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/rpm\/package-3.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --no-clean ~\/main.el7.centos.src.rpm<\/code><\/pre><p>Более подробную информацию можно найти на странице документации <a href=\"https:\/\/github.com\/rpm-software-management\/mock\/wiki\">mock<\/a>.<\/p>\n",
            "date_published": "2017-02-17T16:49:11+03:00",
            "date_modified": "2017-03-17T20:25:21+03:00",
            "image": "https:\/\/aschernyshev.ru\/pictures\/centos_logo.jpg",
            "_date_published_rfc2822": "Fri, 17 Feb 2017 16:49:11 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/sborka-paketov-bez-lishnego-musora-v-centos\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/aschernyshev.ru\/pictures\/centos_logo.jpg"
                ]
            }
        },
        {
            "id": "24",
            "url": "https:\/\/aschernyshev.ru\/all\/ffmpeg-centos7\/",
            "title": "FFmpeg CentOS7",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/aschernyshev.ru\/pictures\/ffmpeg_logo.jpg\" width=\"225\" height=\"225\" alt=\"\" \/>\n<\/div>\n<p>Оформил  rpm-пакет <a href=\"https:\/\/cloud.mail.ru\/public\/N5Kr\/8sfhKREqj\"> FFmpeg<\/a>  для CentOS7.<\/p>\n<p>Исполняемые файлы взяты <a href=\"https:\/\/www.johnvansickle.com\/ffmpeg\/\">здесь<\/a>.<\/p>\n",
            "date_published": "2017-02-13T22:17:33+03:00",
            "date_modified": "2023-05-30T17:50:02+03:00",
            "image": "https:\/\/aschernyshev.ru\/pictures\/ffmpeg_logo.jpg",
            "_date_published_rfc2822": "Mon, 13 Feb 2017 22:17:33 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/ffmpeg-centos7\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/aschernyshev.ru\/pictures\/ffmpeg_logo.jpg"
                ]
            }
        },
        {
            "id": "21",
            "url": "https:\/\/aschernyshev.ru\/all\/prozrachnoe-proksirovanie-v-i2p-i-tor\/",
            "title": "Прозрачное проксирование в I2P и TOR.",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/aschernyshev.ru\/pictures\/i2p_tor_logo.jpg\" width=\"417\" height=\"300\" alt=\"\" \/>\n<\/div>\n<p>Заметка написана по мотивам статьи <a href=\"https:\/\/habrahabr.ru\/post\/122835\/\" class=\"nu\">«<u>Прозрачное проксирование в I2P и TOR<\/u>»<\/a>.<\/p>\n<p><b>_LANNET_<\/b> — локальная подсеть<br \/>\n<b>_WANETH_<\/b> — внешний интерфейс<br \/>\n<b>_LANETH_<\/b>  — внутренний интерфейс<\/p>\n<h2>DNSMasq<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/dnsmasq.conf<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">log-queries\r\nlog-facility=\/var\/log\/dnsmasq.log\r\nlisten-address= 0.0.0.0\r\ninterface=_LANETH_\r\nexcept-interface=_WANETH_\r\ndomain-needed \r\nbogus-priv  \r\nstrict-order \r\nno-resolv\r\nserver=77.88.8.88\r\nserver=8.8.8.8\r\naddress=\/.onion\/10.10.99.99\r\naddress=\/.i2p\/10.10.99.99<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl enable dnsmasq.service\r\nsystemctl start dnsmasq.service<\/code><\/pre><h2>Tor<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/tor\/torrc<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">SocksPort 9050\r\nSocksListenAddress 127.0.0.1\r\nExcludeNodes {ru}, {ua}, {by}\r\nVirtualAddrNetworkIPv4 10.192.0.0\/10\r\nAutomapHostsOnResolve 1<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl enable tor.service\r\nsystemctl start tor.service<\/code><\/pre><h2>i2pd<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/i2pd\/subscriptions.txt<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">http:\/\/inr.i2p\/export\/alive-hosts.txt\r\nhttp:\/\/stats.i2p\/cgi-bin\/newhosts.txt\r\nhttp:\/\/i2p-projekt.i2p\/hosts.txt\r\nhttp:\/\/i2host.i2p\/cgi-bin\/i2hostetag\r\nhttp:\/\/no.i2p\/export\/alive-hosts.txt\r\nhttp:\/\/rus.i2p\/hosts.txt\r\nhttp:\/\/udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p\/hosts.tx<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/i2pd\/<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">[IRC]\r\ntype = client\r\naddress = 127.0.0.1\r\nport = 6668\r\ndestination = irc.postman.i2p\r\ndestinationport = 6667\r\nkeys = irc-keys.dat<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl enable i2pd.service\r\nsystemctl start i2pd.service<\/code><\/pre><h2>TinyProxy<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/etc\/tinyproxy.conf<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">User nobody\r\nGroup nogroup\r\nPort 8888\r\nListen _LANNET_\r\nTimeout 200\r\nErrorFile 404 &quot;\/usr\/share\/tinyproxy\/404.html&quot;\r\nErrorFile 400 &quot;\/usr\/share\/tinyproxy\/400.html&quot;\r\nErrorFile 503 &quot;\/usr\/share\/tinyproxy\/503.html&quot;\r\nErrorFile 403 &quot;\/usr\/share\/tinyproxy\/403.html&quot;\r\nErrorFile 408 &quot;\/usr\/share\/tinyproxy\/408.html&quot;\r\nDefaultErrorFile &quot;\/usr\/share\/tinyproxy\/default.html&quot;\r\nStatFile &quot;\/usr\/share\/tinyproxy\/stats.html&quot;\r\nLogfile &quot;\/var\/log\/tinyproxy\/tinyproxy.log&quot;\r\nLogLevel Info\r\nPidFile &quot;\/var\/run\/tinyproxy\/tinyproxy.pid&quot;\r\nupstream 127.0.0.1:8123\r\nupstream 127.0.0.1:4444 &quot;.i2p&quot;\r\nupstream 127.0.0.1:8124 &quot;.onion&quot;\r\nMaxClients 100\r\nMinSpareServers 5\r\nMaxSpareServers 20\r\nStartServers 10\r\nMaxRequestsPerChild 0\r\nAllow 127.0.0.1\r\nAllow 192.168.0.0\/16\r\nViaProxyName &quot;tinyproxy&quot;\r\nConnectPort 443\r\nConnectPort 563<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl enable tinyproxy.service\r\nsystemctl start tinyproxy.service<\/code><\/pre><h2>Polipo<\/h2>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/etc\/polipo\/wan.conf<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">##################\r\n# https:\/\/www.irif.fr\/~jch\/software\/polipo\/polipo.html#\r\n##################\r\n\r\ndisplayName = WAN\r\nproxyPort = 8123\r\nallowedClients = 127.0.0.1, _LANNET_\r\ndnsQueryIPv6 = false\r\npidFile = \/var\/run\/polipo\/polipo_wan.pid\r\n#######\r\ncensoredHeaders = from, accept-language\r\ncensorReferer = maybe\r\ndisableVia = true\r\n####### Cache #######\r\ndiskCacheRoot = &quot;\/var\/cache\/polipo\/wan_cache\/&quot;\r\nmaxDiskCacheEntrySize = 524288\r\ndiskCacheDirectoryPermissions = 0700\r\ndiskCacheFilePermissions = 0600\r\nrelaxTransparency = maybe\r\ndontCacheCookies = true\r\ndontCacheRedirects = true\r\ndiskCacheUnlinkTime = 7d\r\ndiskCacheTruncateTime = 3d\r\ndiskCacheTruncateSize = 1MB\r\n######## Memory ########\r\nchunkHighMark = 50331648\r\nobjectHighMark = 16384\r\n######## WEB Interface ########\r\ndisableLocalInterface = true\r\n#disableConfiguration = false\r\n#disableIndexing = false\r\n#disableServersList = false\r\n######## Log ########\r\nlogSyslog = true\r\nlogFile = &quot;\/var\/log\/polipo\/wan.log&quot;<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/etc\/polipo\/tor.conf<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">##################\r\n# https:\/\/www.irif.fr\/~jch\/software\/polipo\/polipo.html#\r\n##################\r\n\r\ndisplayName = TOR\r\nproxyPort = 8124\r\nallowedClients = 127.0.0.1, _LANNET_\r\ndnsQueryIPv6 = false\r\npidFile = \/var\/run\/polipo\/polipo_tor.pid\r\n####### SOCKS #######\r\nsocksParentProxy = &quot;127.0.0.1:9050&quot;\r\nsocksProxyType=socks5\r\n#######\r\ncensoredHeaders = from, accept-language\r\ncensorReferer = maybe\r\ndisableVia = true\r\n####### Cache #######\r\ndiskCacheRoot = &quot;\/var\/cache\/polipo\/tor_cache\/&quot;\r\ndiskCacheDirectoryPermissions = 0700\r\ndiskCacheFilePermissions = 0600\r\nrelaxTransparency = maybe\r\ndontCacheCookies = true\r\ndontCacheRedirects = true\r\ndiskCacheUnlinkTime = 7d\r\ndiskCacheTruncateTime = 3d\r\ndiskCacheTruncateSize = 1MB\r\n######## Memory ########\r\nchunkHighMark = 50331648\r\nobjectHighMark = 16384\r\n######## WEB Interface ########\r\ndisableLocalInterface = true\r\n#disableConfiguration = false\r\n#disableIndexing = false\r\n#disableServersList = false\r\n######## Log ########\r\nlogSyslog = true\r\nlogFile = &quot;\/var\/log\/polipo\/tor.log&quot;<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/systemd\/system\/polipo@.service<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">[Unit]\r\nDescription=Polipo Proxy Server\r\nAfter=network.target\r\n\r\n[Service]\r\nUser=proxy\r\nGroup=proxy\r\nType=simple\r\nRestart=always\r\nPIDFile=\/var\/run\/polipo\/polipo_%i.pid\r\nPermissionsStartOnly=true\r\nExecStartPre=\/bin\/mkdir -p \/var\/cache\/polipo\/%i_cache\r\nExecStartPre=\/bin\/chown proxy:proxy \/var\/cache\/polipo\/%i_cache -R\r\nExecStartPre=\/bin\/chmod 700 \/var\/cache\/polipo\/%i_cache -R\r\nExecStart=\/usr\/bin\/polipo -c \/etc\/polipo\/%i.conf\r\nExecReload=\/bin\/kill -USR1 $MAINPID\r\n\r\n\r\n[Install]\r\nWantedBy=multi-user.target<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/tmpfiles.d\/polipo.conf<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">d \/run\/polipo 0755 proxy proxy -<\/code><\/pre><p>Скрипт для очистки кеша<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/usr\/local\/polipo\/polipo_trimcache.sh<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\r\n\r\nexport PATH=&quot;$PATH:\/usr\/sbin:\/usr\/bin:\/usr\/local\/sbin:\/usr\/local\/bin&quot;\r\nSN=&quot;$(basename &quot;$0&quot;)&quot;\r\n\r\nfunction print_help() {\r\n    printf &quot;\\n&quot;\r\n    printf &quot;Использование: %s options...\\n&quot; &quot;$SN&quot;\r\n    printf &quot;Параметры:\\n&quot;\r\n    printf &quot;  -n         Имя копии Polipo.\\n&quot;\r\n    printf &quot;  -h         Справка.\\n&quot;\r\n    printf &quot;\\n&quot;\r\n}\r\n\r\n# Если скрипт запущен без аргументов, открываем справку.\r\nif [[ $# = 0 ]]; then\r\n    print_help &amp;&amp; exit 1\r\nfi\r\nwhile getopts &quot;:n:h&quot; opt ;\r\ndo\r\n    case $opt in\r\n        n) NAME=$OPTARG;\r\n            ;;\r\n        h) print_help\r\n            exit 1\r\n            ;;\r\n        *) printf &quot;Неправильный параметр\\n&quot;;\r\n           printf &quot;Для вызова справки запустите %s -h\\n&quot; &quot;$SN&quot;;\r\n            exit 1\r\n            ;;\r\n        esac\r\ndone\r\n\r\nif [[ &quot;$NAME&quot; == &quot;&quot; ]] ;  then\r\n printf &quot;\\n&quot;\r\n printf &quot;Параметры запуска не указаны.\\n&quot;\r\n printf &quot;Для справки наберите: %s -h\\n&quot; &quot;$SN&quot;\r\n printf &quot;\\n&quot;\r\n exit 1\r\nfi\r\n\r\nCONFIG_FILE=\/etc\/polipo\/$NAME.conf\r\nFORBIDDEN_FILE=\/etc\/polipo\/forbidden\r\nPIDFILE=\/var\/run\/polipo\/polipo_$NAME.pid\r\nRUNAS=proxy\r\n\r\nif [ ! -x \/usr\/bin\/polipo ]; then\r\n  exit 0\r\nfi\r\n\r\nif [ ! -f &quot;$FORBIDDEN_FILE&quot; ]; then\r\n  FORBIDDEN_FILE=\/dev\/null\r\nfi\r\n\r\nif [ -f &quot;$PIDFILE&quot; ]; then\r\n  # Instruct polipo to to flush its in-memory cache to disk (signal USR1)\r\n  kill -USR1 &quot;$(cat &quot;$PIDFILE&quot;)&quot;\r\n  # Allow some time for polipo to perform the requested flush\r\n  sleep 2\r\n  # Since f17, the following su command prints &quot;...killed.&quot; to stdout ???\r\n  runuser -s \/bin\/sh -c \\\r\n    &quot;nice polipo -x -c $CONFIG_FILE forbiddenFile=$FORBIDDEN_FILE &gt; \/dev\/null&quot; \\\r\n    $RUNAS 2&gt; \/dev\/null\r\n  # Instruct polipo to to discard its in-memory cache (signal USR2)\r\n  kill -USR2 &quot;$(cat &quot;$PIDFILE&quot;)&quot;\r\nfi\r\n\r\nexit 0<\/code><\/pre><hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/systemd\/system\/polipo_trimcache@.service<\/code><\/pre><p>Создаем сервис для очистки кеша<\/p>\n<hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">[Unit]\r\nDescription=Polipo trim cache on %I\r\nAfter=network-online.target\r\n\r\n[Service]\r\nType=oneshot\r\nExecStart=\/usr\/lib\/polipo\/polipo_trimcache.sh -n %i<\/code><\/pre><p>Создаем таймер<\/p>\n<hr \/>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/systemd\/system\/polipo_trimcache@.timer<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">[Unit]\r\nDescription=Polipo trim cache timer on %I\r\n\r\n[Timer]\r\nOnCalendar=*-*-* 00:00:00\r\nPersistent=true\r\n\r\n[Install]\r\nWantedBy=timers.target<\/code><\/pre><p>Активируем и запускаем сервисы<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl enable polipo@wan\r\nsystemctl enable polipo_trimcache@wan.timer\r\nsystemctl start polipo@wan\r\nsystemctl sart polipo_trimcache@wan.timer\r\nsystemctl enable polipo@tor\r\nsystemctl enable polipo_trimcache@tor.timer\r\nsystemctl start polipo@tor\r\nsystemctl sart polipo_trimcache@tor.timer<\/code><\/pre>",
            "date_published": "2016-11-24T14:47:40+03:00",
            "date_modified": "2017-03-17T20:17:31+03:00",
            "image": "https:\/\/aschernyshev.ru\/pictures\/i2p_tor_logo.jpg",
            "_date_published_rfc2822": "Thu, 24 Nov 2016 14:47:40 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/prozrachnoe-proksirovanie-v-i2p-i-tor\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/aschernyshev.ru\/pictures\/i2p_tor_logo.jpg"
                ]
            }
        },
        {
            "id": "25",
            "url": "https:\/\/aschernyshev.ru\/all\/minidlna-centos7\/",
            "title": "MiniDLNA CentOS7",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/aschernyshev.ru\/pictures\/dlna_logo.jpg\" width=\"300\" height=\"300\" alt=\"\" \/>\n<\/div>\n<p>Оформил пакет <a href=\"https:\/\/sourceforge.net\/projects\/minidlna\/\"><b>MiniDLNA<\/b><\/a> <b>1.1.5<\/b> для CentOS7.<br \/>\nЗа основу использована официальная, статическая сборка с <a href=\"https:\/\/freefr.dl.sourceforge.net\/project\/minidlna\/minidlna\/1.1.5\/minidlna-1.1.5_static.tar.gz\">SourceForge<\/a>.<br \/>\nУстановка производится по стандартным путям, в пакет включен юнит для <b>systemd<\/b> и пресет для <b>firewalld<\/b>.<\/p>\n<p><a href=\"https:\/\/cloud.mail.ru\/public\/7SaH\/6TWJRM92n\">minidlna-1.1.5-1.el7.centos.x86_64.rpm<\/a><\/p>\n",
            "date_published": "2016-11-23T12:27:26+03:00",
            "date_modified": "2017-03-17T20:17:00+03:00",
            "image": "https:\/\/aschernyshev.ru\/pictures\/dlna_logo.jpg",
            "_date_published_rfc2822": "Wed, 23 Nov 2016 12:27:26 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/minidlna-centos7\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/aschernyshev.ru\/pictures\/dlna_logo.jpg"
                ]
            }
        },
        {
            "id": "17",
            "url": "https:\/\/aschernyshev.ru\/all\/zapusk-skriptov-pri-izmenenii-sostoyaniya-interfeysa-v-centos\/",
            "title": "Запуск скриптов при изменении состояния интерфейса в CentOS",
            "content_html": "<p>В некоторых случаях может понадобится запускать определенный сценарий при изменении состояния интерфейса (UP\/DOWN). В Debian это, реализовано «из коробки». Такую возможность можно реализовать и в CentOS, для этого необходимо в <b>sbin<\/b> создать скрипты: <b>ifup-pre-local<\/b>, <b>ifup-local<\/b>, <b>ifdown-pre-local<\/b>, <b>ifdown-local<\/b>.<\/p>\n<p><b>Перед поднятием интерфейса<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/sbin\/ifup-pre-local<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\r\n#\r\nPREUP=&quot;\/etc\/sysconfig\/network-scripts\/pre-up-${1:6}&quot;\r\nif [ -x $PREUP ]; then\r\nexec $PREUP\r\nfi<\/code><\/pre><p><b>После поднятия интерфейса<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/sbin\/ifup-local<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\r\n#\r\nPOSTUP=&quot;\/etc\/sysconfig\/network-scripts\/post-up-${1:6}&quot;\r\nif [ -x $POSTUP ]; then\r\nexec $POSTUP\r\nfi<\/code><\/pre><p><b>Перед отключение интерфейса<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/sbin\/ifdown-pre-local<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\r\n#\r\nPREDOWN=&quot;\/etc\/sysconfig\/network-scripts\/pre-down-$1&quot;\r\nif [ -x $PREDOWN ]; then\r\nexec $PREDOWN\r\nfi<\/code><\/pre><p><b>После отключение интерфейса<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/sbin\/ifdown-local<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\r\n#\r\nPOSTDOWN=&quot;\/etc\/sysconfig\/network-scripts\/post-down-$1&quot;\r\nif [ -x $POSTDOWN ]; then\r\nexec $POSTDOWN\r\nfi<\/code><\/pre><p><b>Делаем их исполняемыми<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">chmod +x \/sbin\/ifup-local\r\nchmod +x \/sbin\/ifdown-local\r\n\r\nchmod +x \/sbin\/ifup-pre-local\r\nchmod +x \/sbin\/ifdown-pre-local<\/code><\/pre><p><b>Создаем файлы сценариев, которые необходимо выполнять<\/b>.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vim \/etc\/sysconfig\/network-scripts\/pre-up-&lt;if_name&gt;\r\nvim \/etc\/sysconfig\/network-scripts\/pre-down-&lt;if_name&gt;\r\nvim \/etc\/sysconfig\/network-scripts\/post-up-&lt;if_name&gt;\r\nvim \/etc\/sysconfig\/network-scripts\/post-down-&lt;if_name&gt;<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">chmod +x \/etc\/sysconfig\/network-scripts\/pre-*\r\nchmod +x \/etc\/sysconfig\/network-scripts\/post-*<\/code><\/pre>",
            "date_published": "2016-10-12T10:34:46+03:00",
            "date_modified": "2016-10-12T10:34:24+03:00",
            "_date_published_rfc2822": "Wed, 12 Oct 2016 10:34:46 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/zapusk-skriptov-pri-izmenenii-sostoyaniya-interfeysa-v-centos\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3576,
    "_e2_ua_string": "E2 (v3576; Aegea)"
}