5 заметок с тегом

установка

Зеркало NOD32

Старею, наверное, старею. Полдня бился, не мог понять почему при верной конфигурации зеркала, оно не запрашивает пароль на доступ к обновлениям. Плюнул на все, пошел читать Пикабу. Когда он закончился, ушел покурить и тут меня осенило. Такое зачастую бывает, давно уже понял. Если не можешь справиться с какой-то задачей, нужно «забыть» про нее на время, абстрагироваться. Решение придет чуть позже само. Так и в этот раз получилось.
Я же любитель скрывать информацию от посторонних. Это была одна из причин почему я перешел на использование протокола HTTPS. Так как NOD32 не умеет (по крайней мере, 4 и 5 версии) работать через него, то оставил «лазейку» в конфигурации субдомена для него. Страница при этом открывается по HTTPS, а сам антивирус может обновляться через HTTP. Так вот... По привычке все изменения вносил в раздел, предназначенный для страницы, то есть HTTPS, тогда как нужно было это делать в разделе для антивируса. Вернулся в кабинет, скопировал нужные строки в нужный раздел файла конфигурации — и все заработало так, как и задумывалось. Дома еще слегка поправил, чтобы все компьютеры на работе и дома могли обновляться с моего сервера без использования пары логин/пароль. И на этом пока остановился.
Примерно в начале недели, кстати, закончилась лицензия на DrWeb, который устанавливал предыдущий администратор. Что я могу сказать за почти год его использования. Достаточно неудобная вещь это, оказывается. Нет, в тех вопросах, когда нужно установить антивирус на несколько машин, удалить его, запустить проверку и так далее — это безусловно удобно. Открыл страницу администрирования, задал нужное действие и никуда не нужно бегать. Но когда тебе нужно на время отключить антивирус или внести какой-то файл в исключения — тут полный облом. Можно, конечно, покопаться в настройках центра управления и внести исключения для каждой (!!!) станции, но, на мой взгляд это перебор. Нужен более простой вариант. По настройкам центра управления я проходился не один раз и они не показались мне логичными в плане группировки, почти каждый раз приходилось искать где же был нужный параметр. И несколько параноидальный режим работы агентов на компьютерах, которые не отличаются новизной «железа», меня достаточно сильно тяготил. Поэтому я просто ждал, когда же закончится действие лицензии.
Черт с ним, с DrWeb! Пусть он мне одно время и нравился за то, что «кушает» мало ресурсов и обновления у него «весят» мало. Тогда интернет был дорогой (правда в той местности он и до сих пор дорогой) и «деревья были большими». Но, видимо, те времена безвозвратно ушли. Остановимся пока что на NOD32. Итак, установить версию 4 или 5, чтобы иметь возможность задать адрес зеркала обновлений сразу после установки — это не проблема. Проблемы начинаются когда нужно установить версию 6 или выше. Нет, можно, конечно, установить антивирус нужной версии, отключить HIPS, перезагрузиться в безопасный режим, изменить нужный параметр реестра, снова перезагрузиться в нормальный режим, задать адрес зеркала... Слишком много манипуляций, на мой взгляд. Мой преподаватель информатики Раиса Петровна всегда говорила «Программист ДОЛЖЕН быть ленивым!» Видимо, я слишком буквально это понял и запомнил :-) Суть решения состоит в том, что вы запускаете некую программу перед установкой антивируса. Она мониторит нужный параметр и, при его создании или изменении (если антивирус был установлен ранее), меняет значение на нужное. В таком случае мы получаем возможность задать адрес зеркала обновлений без перезагрузок, отключений HIPS и так далее. Вручную все это мной уже обкатывалось на 8 версии антивируса. Я просто открывал редактор реестра, запускал установку антивируса и в нужный момент менял значение параметра. Момент определился методом проб и ошибок — установка драйверов. После завершения установки можно было задавать зеркало самому, без перезагрузки компьютера. Если честно, то я не совсем понимаю почему никто еще не создал подобное решение — оно же лежит на поверхности. Хотя, возможно, я просто плохо искал :-)
В общем, осталось только написать соответствующую программу и запустить ее в тестирование, благо есть куда. И исправлять ошибки по мере их нахождения.

7 сентября   drweb   eset   hips   HTTP   HTTPS   nod32   лицензия   переход   установка

Подготовка к установке камеры

Наконец-то все почти готово к установке. Пришлось немного побегать по городу, чтобы найти кронштейн для камеры. Большие брать не хотелось — камера размером с палец будет сильно уж чудовищно смотреться на кронштейне 15-20 сантиметров в длину. Поэтому искал самый маленький. Позавчера нашел на Взлетке, обошелся он мне дешевле 300 рублей. Но зато практически такой, какой и хотел изначально.
Вчера приехал домой чуть пораньше, чтобы пробурить стены пока Оля не видит. А то в прошлый раз она мне высказывалась по этому поводу, когда я бурил стену на лоджию. В коридор стена уже была пробита под кабель провайдера, поначалу думал пробить рядом еще одно отверстие, чтобы не делать сильно уж большое — маленьких буров почти не было. Но из тех буров, которые у меня были, ни один не прошел насквозь. Пришлось все-таки использовать толстый. Перед бурением отключил кабель провайдера от розетки, вытащил его полностью в коридор, чтобы не повредить при работах. Пробурил стену и еще полчаса, наверное, прокладывал его обратно. При ремонте зала его проложили не через стену, как это было, а за наличниками. Пришлось их отдирать с обеих сторон и искать дыру. Но все успел сделать.
Уже позднее наметил где бурить отверстия для кронштейна камеры в коридоре. Взял место повыше и в углу, так, чтобы камера охватывала весь коридор. Заодно решил проверить придется ли мне бурить стену в зал, чтобы кинуть кабель до камеры. К моему счастью, он почти спокойно пройдет между стеной и наличником. Поэтому пока что протянул кабель в отверстие между квартирой и коридором, оставил торчать в нем только штекера. Оставшийся конец пока лежит в самой квартире. По идее, все, что остается — повесить кронштейн, прикрутить камеру и подключить второй конец кабеля к ТВ-тюнеру, который уже установлен в компьютере. Программу для видеонаблюдения ZoneMinder уже тоже установил, но пока что еще не настраивал. Очень сильно хочется посмотреть на нагрузку, которую она создаст для процессора и памяти. Если она будет небольшой — это просто отлично. Тогда можно будет подумать о том, чтобы на заводе поставить такой же сервер (поначалу параллельно существующему, разумеется).

Защита сайта при помощи HTTP Public Key Pinning (HPKP)

Данная технология призвана защитить посетителя вашего сайта от атаки типа MITM (Man in the middle, человек посередине). Иными словами посетитель может быть уверен, что данные, которые он получает, исходят с вашего сайта, а не с какого-то другого.

Суть технологии состоит в создании публичного ключа на основе сертификата, который установлен на вашем сайте. Соответственно, чтобы она работала, требуется валидный сертификат. Впрочем, она будет работать и на самоподписанных (self-signed) сертификатах. Полученный на основе вашего сертификата ключ добавляется в заголовок ответа вашего сервера, после чего браузер сравнивает полученный ключ с тем, который он вычисляет после получения данных о вашем сертификате.

Итак, что нам требуется:

  1. Какой-либо установленный для сайта сертификат.
  2. Консоль для получения публичного ключа.

Кстати, не так давно для нормального функционирования этой технологии требовался всего лишь один ключ, сейчас же нужно указывать два или более ключей. На мой взгляд двух будет достаточно, от этого и будем отталкиваться. Второй ключ является «резервным», этот момент я не совсем понимаю, но не будем отступать от требований.

Действовал я по следующей схеме:

  • — получаем сертификат на сайте Let’s Encrypt для двух сайтов: example.com и www.example.com;
  • — так как я использую вариант без www, то ключ, полученный на базе первого будет основным, на базе второго — резервным;
  • — генерируем ключи для обоих сертификатов;
  • — добавляем нужные инструкции в файл /etc/httpd2/conf/sites-available/default-http.conf.

О получении сертификата рассказывать не буду, достаточно почитать главную страницу сайта. Допустим, вы его получили и установили на свой сайт. Теперь требуется создать ключи при помощи следующей команды:

openssl x509 -noout -in certificate.pem -pubkey | openssl rsa -pubin -outform der | \
openssl dgst -sha256 -binary | base64

где certificate.pem — полный путь к сертфикату.

После выполнения команды вы получите нечто подобное:

LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=

Это и есть нужный вам ключ. Повторяем команду для второго сертификата и добавляем данные в файл конфигурации сайта:

Header set Public-Key-Pins "pin-sha256=\"pin1\"; pin-sha256=\"pin2\"; max-age=time"

где:

  • pin1 — основной ключ для данного сайта. В моем случае example.com;
  • pin2 — резервный ключ для сайта. То есть www.example.com;
  • time — время действия ключа в секундах.

Опциональный параметр includeSubDomains указывает на то, что ключи действительны также для поддоменов. Еще один необязательный параметр report-uri указывает на адрес, куда должны отправляться отчеты об ошибках в формате JSON. Его я, возможно, добавлю на сайт, но пока что считаю его ненужным для себя.

Какие тут есть нюансы? Если вы неправильно настроите HPKP, ваш сайт станет недоступен. Можно также настроить отправку отчетов в случае каких-либо ошибок. Для этого немного меняем заголовок (или просто добавляем еще одной строкой):

Header set Public-Key-Pins-Report-Only "pin-sha256=\"pin1\"; pin-sha256=\"pin2\"; max-age=time"

Внедрение HTTP Strict Transport Security (HSTS) на свой сайт

Сначала небольшая выдержка из википедии:

«HSTS (сокр. от англ. HTTP Strict Transport Security) — механизм, активирующий форсированное защищённое соединение через протокол HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение, вместо использования HTTP-протокола. Механизм использует особый заголовок Strict-Transport-Security для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP. Механизм специфицирован в RFC6797 в ноябре 2012 года.

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

Дополнительную защиту https-соединений предоставляют методы Certificate pinning (хранение списка разрешенных для домена сертификатов или CA в исходных текстах браузера) и HTTP Public Key Pinning (англ.). Они предотвращают множество возможностей подмены tls-сертификатов https-сервера.»

Для внедрения этой технологии нам понадобится несколько вещей:

  1. Наличие валидного сертификата (можно бесплатно получить на сайте Let’s Encrypt)
  2. Уверенность в том, что будет использоваться только https протокол, включая все ваши субдомены.
  3. Полное перенаправление с http-версий сайтов на https.

Если что-то из этого по каким-то причинам вам не подходит, то эта технология вам не нужна.

Так как у меня используется «старенький» Apache версии 2.2, то и настраивать, соответственно, мы будет его. Для включения HSTS нам нужно добавить в файл /etc/httpd2/conf/sites-available/default_https.conf следующие строки:

<IfModule ssl_module>
    <VirtualHost *:443>
        Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
   </VirtualHost>
</IfModule>

Первые и последние две строки — стандартные для данного файла, если они имеются, то добавлять их не нужно. Нас больше всего интересует третья строчка.

Инструкция Header set позволяет вставить заголовок в ответ сервера. В данном случае заголовок «Strict-Transport-Security». В скобках за ним расположены параметры этого заголовка:

  • max-age — время в секундах, которое будет действовать этот заголовок. Если быть точнее, то это время, в течение которого сайт будет доступен по протоколу HTTPS. Не рекомендуется устанавливать его менее 18 недель;
  • includeSubDomains — указывается, если действие заголовка распространяется также на поддомены. Не является обязательным;
  • preload — параметр, позволяющий указывать, что ваш сайт никогда не будет доступен по незащищенному протоколу. Не является обязательным. Про него будет чуть ниже.

Итак, данные мы добавили, теперь нужно перезагрузить файлы конфигурации:

# service httpd2 condreload

Наличие заголовка в ответе сервера можно проверить, например, на этом сайте. Среди прочих вы должны увидеть такую строчку:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Идем на сайт ssllabs, вводим адрес своего сайта с указанием https и тестируем, что у нас получилось. Тест занимает некоторое время, его вполне хватит на то, чтобы, например, налить себе чашечку кофе.

По итогу мы должны увидеть такие строчки:

Эту вы увидите в шапке отчета
Эту строчку вы увидите в шапке отчета
Эта будет находиться ближе к концу отчета
Эта будет находиться ближе к концу отчета

Если вы их видите, значит все в порядке. В противном случае ищите ошибку.

И, наконец, про параметр preload. Существует так называемый «preload list», в котором перечислены все домены, использующие технологию HSTS. Своего рода список «избранных» :-) При желании вы можете подать заявку на включение вашего домена в этот список, но на скорый ответ не рассчитывайте. Список обновляется с выпуском каждой версии браузера Chrome, поэтому может пройти несколько месяцев, прежде, чем вы увидите, что ваш домен добавлен в него. Для подачи заявки нужно выполнить несколько требований, указанных на главной странице сайта, поэтому рекомендую прочитать ее внимательно. Значение имеет даже регистр параметров заголовка. В случае критической ошибки после нажатия на кнопку «Check status and eligibility» фон страницы станет красным, в случае некритической — желтым, если же все верно — зеленым. На этой же странице указано, что нужно делать, чтобы удалить свой домен из этого списка.

В принципе, это все, что вам нужно знать об этой технологии защиты вашего сайта. Надеюсь, что этот текст вам помог.

Anchor CMS

Попробовал поставить Anchor CMS. Сразу после установки нашлось несколько «минусов», которые последовательно, по мере обнаружения, начали снижать мою оценку о ней.

На этапе установки предлагается выбрать язык. Доступен только английский. Он же становится языком по умолчанию для всего сайта. Переводов на другие языки просто нет. Если вы хотите установить, например, русский, вам нужно делать это еще на этапе установки, потому что часть слов располагается в базе данных и простым переводом файлов в каталоге language темы не обойтись.

Хорошо, вы осуществили перевод уже после установки CMS, как в файлах, так и в базе, но сайт все равно остается на английском языке. В админке нет возможности переключать язык, это нужно сделать вручную, указав в файле конфигурации «ru_RU». Только тогда русский язык будет использоваться на сайте. Но даже и после этого не все хорошо. Админка начинает «плыть» в плане оформления: кнопки, текст переносятся на другую строку, что нарушает эстетичность оформления. Тут можно сделать выбор: или корректный перевод или придется сильно сокращать слова в переводе. Я лично предпочитаю первый вариант.

После написания первого же сообщения (на самом деле, второго, но не суть важно) выявился еще один «минус». Несмотря на то, что в переводе есть такой текст «Просто пишите» (имеется в виду посты блога), оформление на главной странице в итоге «хромает». Например, нет разделения на абзацы, которые есть в сообщении, которое вы набрали. Такие вещи как жирный текст, наклонный и т. п. даже не стал проверять.

В правом верхнем углу главной страницы есть кнопка меню, после нажатия на которую в верху страницы открывается просто огромный блок с поиском и выбором по категориям. Если честно, то мне даже страшно стало после того, как я представил себе как все это будет выглядеть, если категорий сообщений будет достаточно много. Этот блок тогда займет всю страницу или даже больше. Неужели нельзя было сделать это либо выпадающим списком, либо вынести в боковую колонку.

В общем и целом, мнение об этой CMS сложилось достаточно отрицательное, она все еще «сырая.»

2016   anchor   cms   минусы   тест   установка