Копытов Иван

Блог любителя экспериментов

Позднее Ctrl + ↑

Убираем название сервера Apache

Не совсем, конечно, правильный заголовок, но какой уж есть...
Собственно, сегодня я не планировал этим заниматься, просто так вышло. На сервере установлен Apache версии 2.4. При помощи двух параметров (ServerTokens Prod и ServerSignature Off) можно сократить название сервера до банального Apache. Но убрать само название сервера «нельзя». Для того, чтобы это сделать понадобится установить или включить дополнительный модуль mod_security. У меня он установлен не был, но был в репозитории. Раньше, кстати, когда был установлен Apache версии 2.2, его там не было, поэтому приходилось довольствоваться тем, что получилось. Итак, установил модуль, включил его и... поймал ошибку при запуске сервера. Что за ошибка было поначалу не совсем понятно, поскольку ее текст уходил за пределы экрана. Пришлось вывод команды перенаправить в файл, из которого уже стало понятно, что сервер не может найти файлы конфигурации в подкаталоге модуля. Посмотрев в папке, вообще не нашел таковых. Видимо, не очень-то они и нужны. Поэтому просто закомментировал эти строчки и еще раз перезапустил сервер. На этот раз все прошло штатно, он заработал. «Хорошо», подумал я и добавил в файл конфигурации модуля строку

SecServerSignature " "

После перезапуска Apache, проверил заголовки, которые отдает сервер при подключении к сайту и убедился, что имя сервера теперь вообще не отображается. Для пущей убедительности прогнал тесты на нескольких онлайн-сервисах, которые показали, что не знают что за сервер у меня установлен.

Общая адресная книга

Этот вопрос давно висел в воздухе, но вспомнили про него только недавно. Задача: сделать общую адресную книгу для сети аптек. Сразу скажу, что в качестве почтового клиента там используется TheBat! Это довольно важный вопрос, ниже опишу почему.
Я перебрал несколько самых разных вариантов серверов, которые работают с carddav. Основной упор был на то, чтобы либо поставить его из репозитория системы, либо он должен быть полностью автономным. Например, написанным на PHP. В итоге мне попался Baikal, который работал по второму варианту. Установка и настройка крайне просты, описывать их смысла нет. Но, как оказалось позднее, есть в настройках один нюанс, из-за которого TheBat! не сможет работать с ним, в то время как остальные программы типа Thunderbird или EssentialPIM прекрасно выполняют синхронизацию. Этот параметр называется «WebDAV authentication type» и предоставляет на выбор два варианта: Digest и Basic. Если вы при установке Baikal выберете Digest, то сможете использовать адресную книгу или календарь такими программами как Thunderbird, но не сможете использовать TheBat!. В случае с Basic TheBat! прекрасно работает, но в этом случае не сможет синхронизироваться Thunderbird. Другие почтовые клиенты я не проверял за их отсутствием.
Допустим, вы установили и настроили Baikal, сейчас вам нужно настроить клиента. Приведу настройки для трех программ: Thunderbird, TheBat! и EssentialPIM.

Thunderbird
Для того, чтобы иметь возможность подключения к серверу carddav, сначала нужно установить SOGo Connector. Для этого идем по этому адресу, выбираем вкладку Frontends и скачиваем последнюю версию SOGo Connector. На этот момент это версия 31.0.5, которая прекрасно работает с Mozilla Thunderbird 45.
Открываем пункт меню Инструменты — Адресная книга. Если вы правильно установили расширение для программы, то у нас появится пункт меню Файл — Создать — Remote address book. Выбираем его. В поле Name вводим любое название книги, в поле URL, соответственно, адрес подключения к адресной книге. Выглядеть он будет примерно так:

http://example.com/card.php/addressbooks/kini/default/

где kini — имя пользователя, созданного нами ранее в Baikal.
Выставляем галочки в окне в соответствии со своими предпочтениями и нажимаем «ОК». Теперь щелкаем правой кнопкой мыши на созданную книгу и выбираем пункт Synchronize. В случае. если вы указали все верно, Thunderbird спросит логин и пароль пользователя, затем начнет синхронизацию. В противном случае, он просто промолчит :-) Пока что это единственная встреченная мной программа, которой все равно какой тип аутентификации вы выбрали в настройках Baikal.

TheBat!
Открываем меню Инструменты — Адресная книга. Или просто нажимаем клавишу F8. В открывшемся окне выбираем пункт меню Файл — Создать — Адресная книга. Задаем ей любое название, в поле «Эта адресная книга» выбираем вариант «Связана с сервером Carddav». Теперь у нас появляется возможность ввести данные для подключения. В поле адрес сервера вводим адрес нужной нам книги, который будет выглядеть так же, как и для Thunderbird. В два поля ниже вводим имя пользователя и пароль соответственно. При необходимости настраиваем периодичность синхронизации адресов. Все, нажимаем кнопку «ОК».
Для проверки работоспособности нажимаем правой кнопкой мыши на созданную нами книгу и выбираем пункт «Синхронизировать». Если все нормально, то в строке состояния мы увидим, что идет процесс синхронизации. В противном случае там ничего не будет. Возможно, что TheBat! будет снова и снова запрашивать логин и пароль пользователя. Это значит, что при установке Baikal, вы выбрали тип аутентификации Digest и вам нужно изменить его на Basic. В журнале веб-сервера при этом будет выдаваться сообщение об ошибке 401 «Not auth».

EssentialPIM
Тут тоже все очень просто. Открываем меню Файл — Синхронизация — Добавить синхронизацию — Carddav. В окне вводим адрес нужной книги, логин и пароль пользователя. Проверяем, что стоит галочка на пункте «Контакты» чуть ниже и нажимаем кнопку «Далее». В поле «Имя синхронизации» вводим любое, задаем с какой периодичностью она будет выполняться, ставим галочку «Синхронизировать сейчас» и жмем кнопку «Завершить».

НПФ Сбербанка

Вспомнилось мне тут, что подавал я заявление на внесение изменений в персональные данные в НФП. Хм, а давай проверим как там обстоят дела? Зашел в личный кабинет, осматриваюсь — ничего не изменилось. Мелькнула мысль: «Сколько раз нужно подавать заявление и сколько лет должно пройти, чтобы изменения были внесены?» Следующим моим порывом было написать заявление через сам личный кабинет, благо такая возможность там появилась. Для подачи заявления требуется авторизация в госуслугах. Прошел авторизацию, меня вернуло в личный кабинет, где меня ждало сообщение об ошибке — мои данные на госуслугах не совпадают с данными в личном кабинете НПФ. Логично, что тут скажешь? Номера паспортов-то не совпадают. Иду в профиль клиента, на всякий случай записываю номер паспорта, который там сейчас указан, вбиваю новый, сохраняю изменения. Возвращаюсь в список договоров, заключенных между мной и НПФ. Хм, договор на месте. Перестраховываюсь и жму комбинацию клавиш Ctrl+F5 на клавиатуре — это позволяет очистить кэш браузера и получить актуальные данные. Договор на месте. Уже становится интересней... Снова пробую подать заявление из личного кабинета по той же схеме. На этот раз все получается, появляется номер договора и только одна причина для подачи заявления — изменение персональных данных. В последнее время они не изменялись, поэтому отказываюсь от продолжения. Следующей проверкой становится отправка небольшой суммы в качестве взноса на счет. Оплата проходит, о чем сайт мне успешно рапортует. При этом предупреждает, что зачисление средств и отображение их в личном кабинете может занять до 5 дней. В принципе, это нормальная ситуация, поэтому позже проверю.
Что могу сказать? Понадобилось написать одно заявление на внесение изменений в персональные данные, пожаловаться на flamp’е на то, что оно не было обработано, написать еще одно заявление, подождать в сумме около 2,5 лет, прежде чем изменения наконец-то были внесены.

Отказ флэшки

Вчера на работе отказала флэшка. С какого-то перепуга она вдруг стала «smi usb memory bar usb device». Файловая система также отсутствовала. Почитав один знакомый сайт на эту тему, понял, что все файлы, которые на ней были, уже не восстановить. Кстати, очень интересно стал мигать светодиод на флэшке — он как бы мерцал. Выглядело, конечно, красиво, но непривычно.
Скачал с официального сайта утилиту восстановления, запустил и указал какую флэшку ремонтировать. А сам ушел курить. Обидно, конечно, что придется восстанавливать все файлы, программы, документы и т. д. Но сам виноват — надо чаще делать резервные копии. Впрочем, думаю, что часть из них у меня все-таки осталась на домашнем компьютере, вечером проверю.
Вернулся с перекура, утилита уже закончила работу. Написала, что ее можно закрыть, а флэшку — вытащить из гнезда и снова вставить в компьютер. Так и сделал. Нормальная работа была восстановлена, осталось закинуть все программы на неё. Немного опасался, что флэшка будет распознана как другая модель или будет повреждение одного из чипов памяти, что приведет к снижению ее объема. Но все оказалось в норме.

Проблемы с ЭЦП

Почти две недели боролся с ЭЦП на работе. В первом случае просто-напросто сдох eToken. Порой он определялся системой, но любая попытка работы с ним приводила к «зависанию» программы. Но чаще он появлялся в списке диспетчера устройств и тут же исчезал. Лично у меня сложилось впечатление, что он вышел из строя. Разговоры с технической поддержкой системы привели к тому, что они выслали инструкцию по проверке ключа и, через несколько дней, утилиту для его проверки. По итогу все пришли к выводу, что да, носитель умер. Я, конечно, понимаю, что моих слов им недостаточно, но сроки, сроки... Затем техподдержка обнаружила старую заявку от завода на выпуск квалифицированного сертификата. Решили использовать ее, выслали счет на оплату. Деньги они получили в пятницу или понедельник, не суть важно. В течение следующей недели удалось найти другой носитель и сформировать запрос на сертификат. Документы, насколько я понимаю, до сих пор не отправлены. Без них нового сертификата мы не получим, увы. Поэтому ждем и надеемся...
Во втором случае компания вспомнила, что им нужно провести торги на площадке. Но работать с ней не получится, пока нет регистрации на сайте госуслуг. Взяли у генерального директора ключ и понеслась. Поначалу не получалось прикрепить организацию к существующему аккаунту (интересно когда он был заведен, нужно поинтересоваться) — она была не до конца подтверждена. На подтверждение ушло несколько дней. Хорошо, пробуем дальше. В этот раз при попытке зарегистрировать компанию я получал ошибку о несовпадении данных учетной записи и сертификата на ключе. Перепроверил все, что можно — все совпадает. Отправил запрос в техподдержку госуслуг — тишина. Через два дня уже сами позвонили узнать что и как. В ответ мне выслали форму для обращения за поддержкой. Заполнил, прикрепил все необходимые файлы, отправил. Пришло уведомление о прочтении и... Снова тишина. Еще через два дня перезваниваю. Как я понял из разговора с оператором, она только в момент нашей беседы зарегистрировала заявку и направила ее в технический отдел. Ну хотя бы номер заявки получил :-( Так как на дворе был вечер пятницы, было решено звонить с утра в понедельник, чтобы узнать что там с нашей проблемой. Мысленно отложив все дела в сторону, поехал на встречу со своим старым другом посидеть, попить пивка.
Утро субботы ознаменовалось письмом от техподдержки госуслуг, в котором говорилось, что проблема у нас заключается в том, что есть расхождение между значение поля «Фамилия» в личном кабинете и ключом. Посоветовали убрать лишний пробел после фамилии и, если в течение трех дней не будет от нас никакой дополнительной информации, они закрывают заявку. Ну так-то да, хорошо придумали — пока закончатся выходные, как раз три дня пройдет. Внес исправления на сайте, отписался Фомину об этом, ждем понедельника. Хотя лично меня «убило», что:

  • а) про торги вспомнили, когда они уже закончились по регламенту;
  • б) при заполнении личной информации допустили ошибку при вводе.

Самое интересное, что я обнаружил при работе со вторым случаем — это то, что моя учетная запись является полностью подтвержденной и мне не нужно предпринимать никаких шагов, если я, например, захочу создать себе какое-нибудь ИП или ООО. Единственный вариант как моя учетная запись оказалась подтвержденной — я сделал это после получения собственной ЭЦП на УЭК. Видимо, позже я заходил на сайт госуслуг и подтвердил свою учётку.

Синхронизация с облаком

Задумался на днях о том, что неплохо было бы сделать синхронизацию файлов с каким-нибудь облаком. Во избежание, так сказать. Компаний, предоставляющих подобного рода услуги, достаточно много, но... К тем же китайцам, например, обращаться не хотелось бы. Ну нет у меня к ним никакого доверия. Значит придется использовать «наши» серверы.
Итак, что у нас есть? Есть 15 Гб на Яндекс. Этого хватит для создания резервных копий небольших файлов, но не того же, например, видеонаблюдения. Зачем мне копия видеонаблюдения в интернете? Представим себе такую гипотетическую ситуацию (тьфу-тьфу-тьфу): к вам в квартиру вломились и вынесли все, включая компьютер, на котором располагаются все записи. И все, вы больше ничего и никого не увидите. С облаком же есть хоть какой-то шанс.
Но продолжим. Есть примерно 120 Гб на серверах Google и около 1 Тб на Mail.ru. Конечно, предпочтительней было бы использовать последний, но, с учетом того, что работать с ним придется из командной строки, чего он не поддерживает, насколько я знаю, то Mail.ru отпадает. Значит, остается Google. Поиск в интернете выдал всего пару утилит для работы с облаком из командной строки. В репозиториях системы тоже ничего не нашлось. Оказавшись в столь стесненных обстоятельствах, будем использовать то, что есть.
Начал я с утилиты gdrive. Забегая вперед, скажу, что, скорее всего, на ней я и остановлюсь, не буду пока рассматривать вторую. Что она умеет? А умеет они все, что может нам пригодиться. Самое главное, что у нее есть функция синхронизации, что требуется. Установка также не требуется, это еще один «плюс». Справка очень хорошая, в конце показаны примеры использования. В моем случае достаточно дополнить нужной командой скрипты, которые выполняются при завершении записи движения. Иными словами, все оказалось настолько просто, что у меня отпало желание экспериментировать с другими программами.
Чуть раньше я наткнулся на официальный клиент Яндекс, который может использоваться в командной строке linux. Его я тоже опробовал и также остался им доволен. Устанавливается в систему, работает как демон и автоматически синхронизирует указанную при первичной настройке папку. Не умеет синхронизировать несколько папок, но тут есть выход — использовать символические ссылки, работу с ними он поддерживает. Есть список исключений, здесь уже можно указать несколько объектов, которые не должны синхронизироваться. В общем и целом он меня тоже бы устроил, если бы у меня в облаке Яндекса было больше места. Можно купить один из тарифов, заплатив всего 800 рублей за год и получив 100 Гб пространства. Или другой, заплатив 2000 и получив 1 ТБ. Меня это пока что не устраивает, поэтому оставим все, как есть.
Компания Mail.ru меня, конечно, порадовала. Для начала тем, что по прошествии многих лет так и нет нормального способа синхронизации файлов, кроме их родного клиента. Который, конечно, не умеет работать из командной строки. Вроде бы как был доступ по webdav для корпоративных клиентов, но на их сайте больше нет такой информации, поэтому будем считать что эту функцию они тоже убрали. Затем я поинтересовался ценами. В корпоративном сегменте объем диска не регламентируется, но вы будете платить 2,3 руб./день за каждый гигабайт хранящейся информации, а также будете платить за то, что скачиваете ее из облака. Или, в случае с видеофайлами, за их просмотр. Закачать или удалить информацию — бесплатно. Напоминает старый анекдот про бесплатное катание на верблюде, слезть с которого стоит определенную сумму.

Исправление ошибок

Уже вечером исправил косяки с новой станцией. После переброса на другую линию питания датчика ds18b20 он заработал. Это радует.
Также вроде бы решил проблему со скриптом отправки данных. Вместо накопления данных в нескольких файлах, размер каждого из которых не превышает 4 кБ, сделал обработу ответа «ERROR NO CHANGES». Если скрипт получает такой ответ, то просто стирается содержимое временного файла. Иными словами, он реагирует так же, как будто получил ответ «ОК». Это, конечно, не решает вопроса длительного отсутствия связи с сервером. Так что будем думать дальше.
Не могу пока что придумать как разместить станцию. По хорошему ее нужно разместить подальше от стены, чтобы исключить ее влияние на показания. Но тут встает вопрос как закрепить круглую металлическую трубку на стене. С другой стороны, самый простой вариант — разместить станцию, прикрутив с наружной стороны лоджии, просто на саморезы. На решение времени осталось не так уж и много — скоро наступят холода, работать будет не очень комфортно.

Тестирование новое метеостанции

Вчера провел на лоджию электричество, только розетку пока что не закреплял. Собрал станцию, включил в розетку и выставил на улицу. К стене дома крепить не стал, закреплю когда она пройдет испытания. К сожалению, почему-то перестал работать один из датчиков — ds18b20. Думал, что где-то нет контакта, подергал все проводки, проверил разъем, но ничего не изменилось. Так как мультиметр остался на работе, то поиск неисправности, похоже, откладывается до понедельника.
Попробовал также настроить станцию на отправку показаний на сервер WeatherUnderground, но с этим вышла какая-то непонятка. В прошивке esp8266 есть только поля для ввода логина и пароля, в то время как в скрипте на роутере, который отправляет показания, надо также указывать ID станции, которая была создана при регистрации на сайте. Вчера ввел качестве логина ID станции, в качестве пароля указал ключ от нее. Потом смотреть журнал отправки было некогда, проверил только сейчас. Появились показания влажности воздуха, но с пропусками. Пока что непонятно, идет отправка или нет, буду наблюдать дальше.
Также в скрипте обнаружилась досадная ошибка, которую нужно исправлять, но я не совсем пока что понимаю как это реализовать. Суть ошибки состоит в том, что в какой-то момент скрипт перестает стирать содержимое временного файла с показаниями. При следующей отправке сервер отвечает не «ОК», а «ERROR NO CHANGES», так как в пакете присутствуют более ранние показания, которые сервер принял, а скрипт заново пытается их отправить. В результате данные начинают накапливаться и через примерно 4 часа размер файла начинает превышать 4 кБ — максимальный размер данных, которые можно отправить на сервер. Как результат данные, которые принимает сервер, обрезаются до 4 кБ. То есть появляется новая ошибка — отсутствует строка с закрывающими «##». По логике нужно начинать записывать данные в другой файл, но как потом искать все файлы с данными — непонятно. Буду думать.

Апгрейд видеонаблюдения

На позапрошлой неделе начальником охраны был поднят вопрос о модернизации компьютера, на котором операторы наблюдают за территорией завода. Так как количество камер увеличилось, то картинка стала поступать с задержками, около 4 секунд. Запросил в «Техномаксе» счет с новыми комплектующими, который, к некоторому моему удивлению (не тот сейчас период), подписали без вопросов. В прошедшую субботу приехал менять комплектующие. К сожалению, систему пришлось переустанавливать, потому что старая не могла использовать весь объем оперативной памяти. Во время переустановки выяснилось, что половина диска имеет неправильный формат структуры, так что диск тоже пришлось переразбивать.
По итогу мощность компьютера возросла в несколько раз, но, как показали эксперименты, картинка все равно поступает с запозданием в 1-2 секунды. Впрочем, это уже не так критично, запись все равно идет нормально. Процессор занят почти все время на 80-100%, сеть также загружена на 70-85%. Немного подумав, поняли, что в такой загрузке сети виноват старенький хаб, стоящий на посту. Переключили ради интереса напрямую, минуя этот самый хаб, — нагрузка на сеть упала до 7-8%. Сделал вывод, что его нужно будет поменять на другой с пропускной способностью в 1 Гб. С процессором пока что будет думать.
Также появился вариант установить на видеонаблюдение еще один компьютер, снизив таким образом нагрузку на существующий компьютер. Так как при установке программ наблюдения был найден вариант для Linux, то решили попробовать его. Новый компьютер хочу собрать на базе старых комплектующих, которые были сняты этого же.

Синхронизация времени в Windows

Возник тут вопрос о том, чтобы синхронизировать время на компьютере сразу после загрузки Windows. Поднял свои архивы, нашел один пакетный файл, который писал еще много лет назад. Он работал, но, как говорится, «время идет», появились новые пожелания. Поэтому файл был полностью переписан.
Для внесения изменений в параметры службы Windows нам нужно ее остановить, внести необходимые изменения и заново запустить. После всего этого выполнить синхронизацию времени. Что данный «батник» и делает.
Интервал обновления изменен на «один раз в сутки» против значения по умолчанию «один раз в неделю». Также убраны ограничения интервалов, дата на компьютере может быть любой, синхронизация все равно будет произведена. Тестировал на разнице в 7 лет. В качестве сервера времени выбран ru.pool.ntp.org.
Ниже код того, что у меня получилось. Можно, конечно, еще добавить команды для добавления задания в планировщик, но, на мой взгляд, это уже лишнее и лучше проделать это руками.

@echo off
net stop w32time

sc config w32time start= auto

reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxNegPhaseCorrection /t REG_DWORD /d "4294967295" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxPosPhaseCorrection /t REG_DWORD /d "4294967295" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d "86400" /f

net start w32time

w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org
w32tm /config /update
w32tm /resync

exit
Ранее Ctrl + ↓