{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Копытов Иван: заметки с тегом зеркало",
    "_rss_description": "Блог ленивого сисадмина",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kini24.ru\/tags\/zerkalo\/",
    "feed_url": "https:\/\/kini24.ru\/tags\/zerkalo\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Копытов Иван",
            "url": "https:\/\/kini24.ru\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "255",
            "url": "https:\/\/kini24.ru\/all\/sozdanie-zerkala-nod32-na-synology\/",
            "title": "Создание зеркала Nod32 на Synology",
            "content_html": "<h2>Заметка на память<\/h2>\n<ol start=\"1\">\n<li>Распаковываем архив со скриптом в \/volume1\/web\/nod<\/li>\n<li>В Web Station создаем виртуальный хост с именем nod. Открываем порты 443 и 80.<\/li>\n<li>Корневым каталогом указываем \/web\/nod\/www<\/li>\n<li>В планировщике задач создаем новую с произвольным именем. В качестве команды для выполнения указываем<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">\/usr\/local\/bin\/php74 -f \/volume1\/web\/nod\/update.php &amp;<\/code><\/pre><p>Пользователь root.<\/p>\n<ol start=\"5\">\n<li>Подключаемся к NAS по SSH, создаем файл \/etc\/nginx\/sites-enabled\/nod.conf:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">touch \/etc\/nginx\/sites-enabled\/nod.conf<\/code><\/pre><ol start=\"6\">\n<li>Открываем файл на редактирование:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/nginx\/sites-enabled\/nod.conf<\/code><\/pre><p>Для начала редактирования нужно нажать английскую клавишу «i». Затем вставляем из буфера обмена текст из пункта 7.<\/p>\n<ol start=\"7\">\n<li>Правим этот файл и приводим к виду:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">map $http_user_agent $ver {\n        &quot;~^.*(EEA|EES|EFSW)+\\s+Update.*BPC\\s+(\\d+)\\..*$&quot; &quot;ep$2&quot;;\n        &quot;~^.*Update.*BPC\\s+(\\d+)\\..*$&quot; &quot;v$1&quot;;\n}\n\nserver {\n                listen 80;\n                listen 2221;\n                server_name nod.home.mikhailov.by;\n\n                # Optional: Charset\n                charset utf-8;\n\n                # Path to the root of your installation\n                root \/volume1\/web\/nod\/www;\n\n                # Index file\n                index index.html;\n\n                # Доп. заголовки\n                add_header X-Robots-Tag &quot;noindex, nofollow, nosnippet, noarchive&quot;;\n                add_header Cache-Control &quot;no-cache, public, must-revalidate&quot;;\n\n                ################# Nginx Rewrite #################\n\n                location ~* \\.ver$ {\n                        auth_basic &quot;Restricted&quot;;\n                        auth_basic_user_file \/volume1\/web\/nod\/htpasswd;\n\n                        if ($ver ~ &quot;^ep[6-9]$&quot;) {\n                                rewrite ^\/(dll\/)?update.ver$ \/eset_upd\/$ver\/$1update.ver break;\n                        }\n\n                        if ($ver ~ &quot;^v(5|9)$&quot;) {\n                                rewrite ^(.*) \/eset_upd\/$ver\/update.ver break;\n                        }\n\n                        if ($ver ~ &quot;^v[3-8]$&quot;) {\n                                rewrite ^(.*) \/eset_upd\/v3\/update.ver break;\n                        }\n\n                        if ($ver ~ &quot;^v1[0-1]$&quot;) {\n                                rewrite ^(.*) \/eset_upd\/v10\/dll\/update.ver break;\n                        }\n                        if ($ver ~ &quot;^v1[2-9]$&quot;) {\n                                rewrite ^(.*) \/eset_upd\/$ver\/dll\/update.ver break;\n                        }\n                }\n\n                ################################################\n}<\/code><\/pre><ol start=\"8\">\n<li>Завершаем редактирование нажатием клавиши Esc. Затем нужно ввести двоеточие и следом за ним буквы wq. Внизу слева должно получиться следующее:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">:wq<\/code><\/pre><p>Теперь нажимаем Enter. Буква w означает запись, буква q — выход из программы. Если возникнут вопросы по редактору, гуглим vi.<\/p>\n<ol start=\"9\">\n<li>В папке \/volume1\/web\/nod создаем файл htpasswd.<\/li>\n<li>Добавляем в него пользователя:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">htpasswd -b \/volume1\/web\/nod\/htpasswd username password<\/code><\/pre><ol start=\"11\">\n<li>Перезапускаем nginx:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">nginx -s reload<\/code><\/pre><ol start=\"12\">\n<li>Проверяем доступность зеркала и запрос пароля<\/li>\n<\/ol>\n",
            "date_published": "2022-10-21T10:21:07+07:00",
            "date_modified": "2022-12-02T00:48:18+07:00",
            "tags": [
                "nas",
                "nginx",
                "nod32",
                "synology",
                "зеркало",
                "создание"
            ],
            "_date_published_rfc2822": "Fri, 21 Oct 2022 10:21:07 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "255",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "227",
            "url": "https:\/\/kini24.ru\/all\/zerkalo-nod\/",
            "title": "Зеркало NOD",
            "content_html": "<p>Немного прошелся по своему зеркалу, «причесал», подправил недочеты. Сделал страницу регистрации, ибо негоже когда человеку приходится писать тебе, чтобы получить доступ к нему. Сейчас можно просто открыть страницу регистрации, ввести свой email, который будет являться логином и после нажатия кнопки «Отправить» скрипт сохранит данные на сервере и отправит их копию пользователю на указанную электронную почту.<br \/>\nПоначалу хотел использовать команду системы для генерации хэша пароля, но оказалось, что последний генерируется неправильно. На счастье в интернете нашелся PHP-код, который выполняет те же самые действия, но уже правильно.<br \/>\nПотом хотел сделать чтобы все страницы сайта располагались в одном файле, но что-то пошло не так и я отказался от этой затеи. Не настолько я знаю PHP и JS, чтобы отлавливать и исправлять ошибки в коде.<br \/>\nВ конце страницы появилась небольшая статистика: сколько всего зарегистрировано пользователей, сколько в этом месяце использовало зеркало и сколько человек сейчас находится на сайте. Любопытно, что зарегистрировалось около 50 человек, а используют примерно 30. Где остальные? Судя по журналам, они даже не пытались скачивать обновления. По этому поводу мелькает мысль примерно раз в полгода удалять тех, кто ни разу не обновлялся с зеркала. Или уже оставить как есть?<\/p>\n",
            "date_published": "2019-02-19T14:36:37+07:00",
            "date_modified": "2019-02-19T14:36:34+07:00",
            "tags": [
                "nod32",
                "антивирус",
                "зеркало",
                "обновление",
                "регистрация",
                "сайт"
            ],
            "_date_published_rfc2822": "Tue, 19 Feb 2019 14:36:37 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "227",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "212",
            "url": "https:\/\/kini24.ru\/all\/reshenie-problemy-s-zerkalom-nod32\/",
            "title": "Решение проблемы с зеркалом NOD32",
            "content_html": "<p>Временно, надеюсь, решил проблему со своим зеркалом баз антивируса. Сейчас проблема заключается в том, что найденные ключи не проверяются на валидность. Если быть точней, то в процессе проверки ключа я получаю ошибку и, в результате, скрипт считает, что ключ недействителен. Больше информации по ошибке нет никакой. Пока что ищу почему возникает такая ситуация. Надеюсь, что автор скрипта мне поможет в этом.<br \/>\nНа текущий момент просто сделаю копию такого же зеркала с другого сервера, который продолжает работать в обычном режиме.<\/p>\n",
            "date_published": "2018-08-20T11:30:57+07:00",
            "date_modified": "2018-08-20T11:30:55+07:00",
            "tags": [
                "nod32",
                "временное",
                "зеркало",
                "проблема",
                "решение"
            ],
            "_date_published_rfc2822": "Mon, 20 Aug 2018 11:30:57 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "212",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "208",
            "url": "https:\/\/kini24.ru\/all\/obnovlenie-servera-2\/",
            "title": "Обновление сервера",
            "content_html": "<p>Итак, попало ко мне в руки хорошее «железо», что стало неплохим поводом обновить свой сервер. Так как конфигурация слишком сильно отличалась от прежней, то систему тоже пришлось ставить заново. Поначалу не могу понять почему установка проходит нормально, а сама система после этого не грузится. Потом припомнил, что Linux с картами Intel HD Graphics так и не научился нормально работать. Что поделать, пришлось отключать в BIOS встроенную видеокарту и ставить внешнюю. Плохо то, что эта внешняя видеокарта предназначалась для установки в компьютер жены. Старое «железо» из сервера тоже должно было пойти на апгрейд ее компьютера.<br \/>\nУвы, но на работе тоже было много работы, поэтому апгрейд двух систем несколько затянулся. Затем пришлось устранять ошибки в работе веб-сервера, ибо я заодно захотел поменять некоторые настройки. Сейчас его работоспособность почти полностью восстановлена за исключением двух субдоменов: «зеркала» обновлений NOD32 и облака. Последнее из них меня волнует меньше всего, доступ к нужным файлам я могу получить и другими способами. А вот «зеркало»... На него слишком много завязано. Работа над ним пока что ведется. Написал разработчику, описал проблему,  пока что жду от него ответа.<br \/>\nТакже выяснилось, что dovecot не совсем корректно работает с wildcard-сертификатами. Если быть точней, то мне удалось настроить почти все нужные почтовые клиенты (веб-интерфейс, Outlook на телефоне), кроме Thunderbird, установленного на домашнем компьютере. При попытке просмотреть почту с его помощью dovecot ругается на сертификат. Проблема, как оказалось, не новая, но рабочего решения её пока не нашел.<br \/>\nУстановил пока что другую видеокарту в компьютер жены, но она оказалась с «битой» памятью, что приводило к периодическим перезагрузкам. Интересно, сможет сервер работать без видеокарты вообще? Пока что пара моих попыток заставить его работать в таком режиме не увенчались успехом — все время «ругался» спикером. Подозреваю, что придется покупать новую, хоть какую-нибудь. Главное, чтобы присутствовала в системе.<\/p>\n",
            "date_published": "2018-08-11T14:38:11+07:00",
            "date_modified": "2018-08-11T14:38:06+07:00",
            "tags": [
                "hd graphics",
                "intel",
                "linux",
                "nod32",
                "thunderbird",
                "wildcard",
                "апгрейд",
                "видеокарта",
                "железо",
                "зеркало",
                "обновление",
                "почта",
                "сервер",
                "сертификат"
            ],
            "_date_published_rfc2822": "Sat, 11 Aug 2018 14:38:11 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "208",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "89",
            "url": "https:\/\/kini24.ru\/all\/i-snova-pro-zerkalo-nod32\/",
            "title": "И снова про зеркало NOD32",
            "content_html": "<p>Обновил <a href=\"https:\/\/nod.kini24.ru\">страницу зеркала<\/a>, сделал ее почти полностью на базе bootstrap. Остались кое-какие нюансы, от которых планирую избавиться чуть позже.Если вкратце, то добавить немного интерактивности. Пока что мешает, в основном, таблица, генерируемая скриптом обновления. С одной стороны, скрипт отдает «чистую» таблицу, которую я могу использовать на сайте. С другой я бы и рад заменить некоторый текст в этой таблице, но... При очередной проверке скрипт заменяет измененные файлы на оригинальные и я получаю тот же самый текст, который хотел заменить. CSS в этом деле мне не помощник, буду искать другие пути.<br \/>\nЗаодно, пока редактировал страницу, нашел несколько решений, которых мне не хватало для смены темы оформления блога на bootstrap.<\/p>\n<p>Upd. Замена текста решилась одной строкой:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">document.body.innerHTML = document.body.innerHTML.replace(&#039;ESET NOD32 сервер обновления&#039;, &#039;Информация о последнем обновлении&#039;);<\/code><\/pre>",
            "date_published": "2017-09-18T00:21:51+07:00",
            "date_modified": "2017-09-18T09:26:08+07:00",
            "tags": [
                "bootstrap",
                "nod32",
                "зеркало",
                "изменение",
                "сайт",
                "страница"
            ],
            "_date_published_rfc2822": "Mon, 18 Sep 2017 00:21:51 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "89",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "88",
            "url": "https:\/\/kini24.ru\/all\/obnovlenie-zerkala-nod32\/",
            "title": "Обновление зеркала NOD32",
            "content_html": "<p>Итак. Старый скрипт, который работал на сервере не один год по какой-то непонятной причине перестал функционировать. Обновления скачиваются, но установленные антивирусы не могут его нормально обработать. По этой причине было решено подыскать скрипту достойную замену. Интересно, что, в итоге, я получил даже более функциональный и интересный скрипт, чем планировал.<br \/>\nКакие у него есть «плюсы»:<\/p>\n<ol start=\"1\">\n<li>Самообновление. При запуске скрипта он сам пытается найти более новую версию себя и обновиться. Можно отключить или настроить только на уведомление;<\/li>\n<li>Само собой приходят оповещения на почту;<\/li>\n<li>Работает со всеми версиями антивирусов. Тоже можно настроить;<\/li>\n<li>Настраиваются списки серверов обновлений ESET;<\/li>\n<li>Поддержка нескольких языков;<\/li>\n<li>Поиск валидных ключей лицензии в интернете;<\/li>\n<li>Ведение журнала работы с ротацией;<\/li>\n<li>Генерирование либо полноценного html-файла с информацией о текущем состоянии обновлений, либо только таблицы для встраивания ее в другой файл.<\/li>\n<li>Кроссплатформенность.<\/li>\n<\/ol>\n<p>Из «минусов» я бы назвал создание слишком большого дерева файлов (некоторые из них, на мой взгляд, лишние) и немного некрасивой таблицы. Впрочем, последнее достаточно легко исправляется редактированием соответствующего файла.<br \/>\nСам скрипт брал <a href=\"https:\/\/github.com\/zxzharmlesszxz\/eset_mirror_script\">отсюда<\/a><\/p>\n",
            "date_published": "2017-09-16T19:45:21+07:00",
            "date_modified": "2017-09-16T19:45:16+07:00",
            "tags": [
                "nod32",
                "замена",
                "зеркало",
                "обновление",
                "скрипт"
            ],
            "_date_published_rfc2822": "Sat, 16 Sep 2017 19:45:21 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "88",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}