From 9bd024e2397162dae487d2b918a36a819c9b9d54 Mon Sep 17 00:00:00 2001 From: Sergey Kiselev Date: Tue, 26 Apr 2022 09:37:21 +0500 Subject: [PATCH] =?UTF-8?q?=D0=90=20=D1=8F=20=D0=BF=D0=BE=D0=B4=D0=B3?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D0=B2=D0=B8=D0=BB=D1=81=D1=8F=20:-)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blue_carriage.md | 122 ++++++++++++++++++ how-to/how-to_acme.sh_on_nic.ru.md | 105 ++++++++++++++++ how-to/how-to_escape_from_hell.md | 116 ++++++++++++++++++ how-to/how-to_import_export_gpg_key_pair.md | 79 ++++++++++++ how-to/how-to_ssl_cert_with_acme.sh.md | 129 ++++++++++++++++++++ how-to/how-to_windows_utc_bios.md | 31 +++++ how-to/meta.yml | 9 ++ how-to/tip_openssl_enc_dec_files.md | 60 +++++++++ meta.yml | 8 ++ 9 files changed, 659 insertions(+) create mode 100644 blue_carriage.md create mode 100644 how-to/how-to_acme.sh_on_nic.ru.md create mode 100644 how-to/how-to_escape_from_hell.md create mode 100644 how-to/how-to_import_export_gpg_key_pair.md create mode 100644 how-to/how-to_ssl_cert_with_acme.sh.md create mode 100644 how-to/how-to_windows_utc_bios.md create mode 100644 how-to/meta.yml create mode 100644 how-to/tip_openssl_enc_dec_files.md create mode 100644 meta.yml diff --git a/blue_carriage.md b/blue_carriage.md new file mode 100644 index 0000000..e88c650 --- /dev/null +++ b/blue_carriage.md @@ -0,0 +1,122 @@ +--- +title: "Пародия на песню крокодила Гены про голубой вагон" +title_bar: 1 +icon: "book-skull" +tags: + author: "digital-freak.ru" + description: "" + keywords: "" +--- | +Америка как всегда что-то болтает, и болтает, и болтал... Англия уже давно +борется со сном на пару с Францией, Италия беззастенчиво спит, Германия +завидует им и пьет пиво, чтобы не уснуть. Китай обнял панду, используя её +как подушку, и тоже готовился отойти в мир снов. Голова России медленно, но +верно склонялась к столу. Вскоре и Иван заснул, подложил вместо подушки +собственные руки. Вдруг Альфред прервался. + +– Что-то упало... – Англия заинтересованно приподняла голову. Наклевывался +перерыв. + +– Упало? + +– Ага, я слышал, как стукнуло. + +– Это плеер России-сан, – подала голос Япония, поднимая старый плеер с пола. +От него тянулись наушники. Америка заинтересованно пригляделась. + +– Ну ка, а давайте послушаем, что там играет, а?.. Спорим, какой-нибудь +балет? – фыркнул Джонс. Япония молча подчинилась и вытащила наушники из +разъема. На всю комнату раздалась музыка. С каждым куплетом лица стран все +вытягивались и вытягивались. + +> \ +> Медленно ракеты улетают вдаль, \ +> Встречи с ними ты уже не жди. \ +> И хотя Америку немного жаль, \ +> У Китая это впереди. \ +> \ +> Скатертью, скатертью хлорциан стелется \ +> И забирается к нам в противогаз. \ +> Каждому, каждому в лучшее верится, \ +> Падает, падает ядерный фугас. \ +> \ +> Может, мы обидели кого-то зря, \ +> Сбросив пару лишних мегатонн? \ +> Клочьями летит кровавая земля — \ +> Здесь недавно правил Пентагон. \ +> \ +> Ядерный фугас летит, качается, \ +> Он летит на город Вашингтон. \ +> Все, что от него потом останется, \ +> Мы погрузим в голубой вагон. \ +> \ +> Скатертью, скатертью хлорциан стелется \ +> И забирается к нам в противогаз. \ +> Каждому, каждому в лучшее верится, \ +> Падает, падает ядерный фугас. \ +> \ +> Медленно ракеты уплывают вдаль, \ +> Встречи с ними ты уже не жди \ +> И хотя Америку немного жаль, \ +> У других всё это впереди. \ +> \ +> На восток уходит краснозвёздный МиГ, \ +> В Лувре разгорается пожар. \ +> Эйфелевой башни проржавевший пик \ +> С корнем вырвал ядерный удар \ +> \ +> Тереза Мэй произносит спич: \ +> "Мы накажем русских мужиков!" \ +> В это время в Темзу пал Тауэр-бридж \ +> Под огнём тяжёлых крейсеров \ +> \ +> Наш министр обороны очень рад: \ +> Мы достигли западных морей. \ +> Пал уже последний НАТОвский солдат \ +> Под пером сибирских блатарей. \ +> \ +> Скатертью, скатертью хлорциан стелется \ +> И забирается к нам в противогаз. \ +> Каждому, каждому в лучшее верится, \ +> Падает, падает ядерный фугас. \ +> \ +> Водородным солнцем выжжена трава, \ +> Кенгуру мутируют в собак \ +> Вновь аборигены обрели права: \ +> Над Канберрой вьётся красный флаг. \ +> \ +> Колизей окутал ядовитый дым \ +> Воды Тибра льются в котелки \ +> "Ты прости нас, бывший вечный город Рим": \ +> В такт шагам поют мотострелки. \ +> \ +> Ширится союз республик СССР, \ +> Каждый хочет в мире с нами жить. \ +> В Токио японско-русский пионер \ +> В комсомол готовится вступить. \ +> \ +> Медленно ракеты уплывают вдаль, \ +> Встречи с ними ты уже не жди. \ +> И хотя Америку немного жаль, \ +> Лучшее, конечно, впереди. +> + +Музыка стала потихоньку стихать, пока вообще не прекратилась. Америка никак +не могла сглотнуть — в горле застрял комок. Россия во сне улыбнулась и +повернулась на другой бок, устроившись поудобнее. У Франции дрожали и прыгали +губы. Англия, казалось, вот-вот упадет в обморок. Китай и Япония держались +друг за друга, чтобы не упасть. + +– В-веселая... Ну, что продолжаем к-конгресс?.. – наконец смог выговорить +Альфред. + +Все кивнули и тихо сели, только бы не разбудить улыбающеюся во сне Россию. + +
+ +
музыка Владимира Шаинского, слова народные
+
+ diff --git a/how-to/how-to_acme.sh_on_nic.ru.md b/how-to/how-to_acme.sh_on_nic.ru.md new file mode 100644 index 0000000..6d72ab2 --- /dev/null +++ b/how-to/how-to_acme.sh_on_nic.ru.md @@ -0,0 +1,105 @@ +--- +title: "How-To: Установка SSL-сертификата Let's Encript на хостинге от RU-CENTER" +title_bar: 1 +icon: "newspaper" +tags: + author: "digital-freak.ru" + description: "Сертификат от Let's Encript на хостинге RU-CENTR" + keywords: "SSL,сертификат" + +--- | +Грубое решение в лоб для установки бесплатного сертификата от Let's Encript +для сайта на хостинге от RU-CENTR. + +Для выполнения этой процедуры нам потребуется ssh-доступ к нашему web-серверу, +и утилита [acme.sh](https://github.com/acmesh-official/acme.sh). + +## Подготовка к получению сертификата + +Прежде всего нам нужно загрузить на наш web-сервер скрипт +[acme.sh](https://github.com/acmesh-official/acme.sh). Для этого +подключаемся к серверу с помощью любимого SSH-клиента. Загружаем из +репозитория [acme.sh](https://github.com/acmesh-official/acme.sh) последнюю +версию скрипта и распаковываем в домашний каталог: +```bash +$ wget -c "https://github.com/acmesh-official/acme.sh/archive/refs/tags/3.0.0.zip" +$ unzip 3.0.0.zip +``` + +Следующим шагом создадим каталог для сохранения полученных сертификатов и +настроек скрипта: +```bash +$ mkdir -p ~/certs +``` + +Так как в последних версиях acme.sh использует в качестве удостоверяющего +центра по умолчанию +[ZeroSSL.com CA](https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA), +перед получением нового сертификата нужно зарегистрировать аккаунт: +```bash +$ ./acme.sh-3.0.0/acme.sh --home ~/certs --register-account -m email@example.tld +``` + +## Запрос нового сертификата + +Теперь всё готово для запроса нового сертификата для нашего сайта: +```bash +$ ./acme.sh-3.0.0/acme.sh --issue --home ~/certs -d example.tld -w ~/site/dir/docs +``` + +После выполнения этой команды (если всё прошло без ошибок) в каталоге +`~/certs/example.tld` будут созданы файлы настроек, а так же файлы сертификата +и приватного ключа: +``` +ca.cer +fullchain.cer +example.tld.cer +example.tld.conf +example.tld.csr +example.tld.csr.conf +example.tld.key +``` + +Эти файлы можно упаковать в архив и скопировать к себе на компьютер по +протоколу SCP или FTP для упрощения процедуры на следующем шаге: +```bash +$ zip -j certs ~/certs/example.tld/*.{cer,key} + adding: ca.cer (deflated 31%) + adding: fullchain.cer (deflated 32%) + adding: example.tld.cer (deflated 27%) + adding: example.tld.key (deflated 23%) +``` + +## Установка сертификата на web-сервер + +Для установки сертификата на web-сервер переходим в панель управления +хостингом. В панели управления переходим в настройки сайта, на который +требуется установить сертификат. Переходим на вкладку __Безопасность__ и +включаем _Защищённое HTTPS-соединение_. После чего нажимаем на кнопку +__Установить сертификат__. + +В диалоге установки сертификата в поле _Сертификат_ загружаем файл +`fullchain.cer`. В поле _Приватный ключ сертификата_ загружаем файл +`example.tld.key` и нажимаем кнопку __Установить__. + +Собственно задача решена. + +## Обновление сертификата + +Срок действия сертификатов от Let's Encript составляет три месяца. Для +обновления сертификата примерно раз в три месяца выполняем следующую +последовательность действий: + +1. Заходим на web-сервер с помощью любимого SSH-клиента и запускаем команды: + ```bash + $ ./acme.sh-3.0.0/acme.sh --home ~/certs --cron # обновление сертификата + $ zip -j certs ~/certs/example.tld/*.{cer,key} # упаковка файлов сертификата в архив + ``` +2. Скачиваем полученный архив к себе на компьютер (по протоколу SCP или FTP, +либо с помощью файлового менеджера из панели управления хостингом). +3. В панели управления хостингом переходим в настройки сайта, для которого +обновляем сертификат. На вкладке __Безопасность__ нажимаем кнопку +__Сменить сертификат__. В диалоге установки сертификата в поле _Сертификат_ +загружаем файл `fullchain.cer`. В поле _Приватный ключ сертификата_ загружаем +файл `example.tld.key` и нажимаем кнопку __Установить__. + diff --git a/how-to/how-to_escape_from_hell.md b/how-to/how-to_escape_from_hell.md new file mode 100644 index 0000000..132b5cf --- /dev/null +++ b/how-to/how-to_escape_from_hell.md @@ -0,0 +1,116 @@ +--- +title: "How-To: Побег из ада (rxvt, Unicode, 256color, termcap, terminfo и screen)" +title_bar: 1 +icon: "newspaper" +tags: + author: "digital-freak.ru" + description: "Настройка терминала для поддержки 256 цветов в rxvt и screen" + keywords: "rxvt,Unicode,termcap,terminfo" + +--- | +После довольно продолжительной борьбы с настройками терминала для получения +приятного внешнего вида с 256 цветами в `rxvt` и `screen` даже через SSH я +подумал, что мои результаты могут быть полезны и другим пользователям. + +Первый шаг --- убедиться, что все ваши программы правильно скомпилированы. Для +соответствующих портов имеется ряд опций, поэтому дважды проверьте их с помощью +`make config`! + + +При наличии `rxvt-unicode` и `screen`, собранных с поддержкой 256 цветов, у вас +не должно быть проблем с использованием, например, `vim` в X11. + +Проблема возникла после попытки использовать `vim` через SSH с linux-машины из +`rxvt-unicode`. + +Переменной среды `TERM` присваивается значение `rxvt-256color`, которое не +может быть найдено в `/etc/termcap`. Это ловушка №1. + +Для решения этой проблемы создайте в домашнем каталоге файл с именем +`.termcap`. Это можно сделать следующей командой (будьте осторожны, она +перезапишет любой существующий файл): + +``` bash +% cat > $HOME/.termcap << EOF +rxvt-256color|rxvt-256color terminal (X Window System):\ + :tc=rxvt-unicode:\ + :tc=rxvt: +EOF +``` + +Теперь `vim` или любая другая программа (например, `ls -G`) должны радовать +вас цветным выводом. Но после запуска `screen` вы увидите, что цвета снова +исчезли. Это ловушка №2. + +Вполне возможно, что `screen` будет доволен во время своей работы. Он расскажет +вам о записи _termcap_ для `rxvt-256color`, и вы просто добавили ее в +`$HOME/.termcap`. + +Чтобы заставить `screen` распознать вашу новую запись _termcap_, вам нужно +поместить содержимое `.termcap` в переменную окружения `TERMCAP`. Для этого +добавте что-то подобное в rc-файл вашей оболочки (например, в `.bashrc`): + +``` bash +if [ -f ${HOME}/.termcap ]; then + TERMCAP=$(< ${HOME}/.termcap) + export TERMCAP +fi +``` + +Теперь выйдите из системы и зайдите снова, но вы увидите, что `screen` все еще +вас не устраивает. Это ловушка №3 (и, наконец, последняя). В вашем `.screenrc` +обратите внимание на запись `termcapinfo`, подобную этой: + +``` bash +termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' +``` + +Измените ее или создайте, если необходимо, чтобы она выглядела так: + +``` bash +termcapinfo xterm-color|xterm-16color|xterm-88color|xterm-256color|rxvt* 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' +``` + +Перезапустите `screen`, и теперь вы, наконец, сможете наслаждаться всеми 256 +цветами. + +Я надеюсь, что это было полезным. Любые комментарии или замечания принимаются. + +[jrk](https://forums.freebsd.org/members/5713/), +[Apr 16, 2010](https://forums.freebsd.org/threads/13345/) + +---- + +Тем не менее есть то, что я бы назвал основной проблемой: отсутствие 256 цветов +в некоторых приложениях. + +Во-первых `~/.termcap` следует исправить следующим образом: + +``` bash +% cat > $HOME/.termcap << EOF +rxvt-256color|rxvt-256color terminal (X Window System):\ + :Co#256:\ + :tc=rxvt-unicode:\ + :tc=rxvt: +EOF +``` + +Затем, для полноты, указать urxvt-клиенту всегда использовать `rxvt-256color` +как значение переменной `TERM`, исправив `~/.Xdefaults`: + +``` bash +urxvt*termName: rxvt-256color +``` + +Но все, для чего это действительно нужно, --- это обход проблемы, которая +должна быть решена в `/etc/termcap`. Запись _termcap_ `rxvt-unicode` ломается +сама по себе, так как для корректной работы `tc=rxvt` нужна функция +`rxvt-256color`. Кроме того, `x11/rxvt-unicode` должен изменить жестко +закодированное значение по умолчанию для переменной `termName`, если определена +`XTERM_COLOR`, и ни в коем случае не должен допускать использование записи +_termcap_ `rxvt` по умолчанию, поскольку для этого необходимо включить +функции `rxvt-unicode`. + +[Andres](https://forums.freebsd.org/members/14081/), +[Aug 5, 2010](https://forums.freebsd.org/threads/13345/#post-96184) + diff --git a/how-to/how-to_import_export_gpg_key_pair.md b/how-to/how-to_import_export_gpg_key_pair.md new file mode 100644 index 0000000..94f828d --- /dev/null +++ b/how-to/how-to_import_export_gpg_key_pair.md @@ -0,0 +1,79 @@ +--- +title: "How-To: Импорт/экспорт пар ключей GPG" +title_bar: 1 +icon: "newspaper" +tags: + author: "digital-freak.ru" + description: "Как экспортировать и импортировать наборы ключей GPG" + keywords: "GPG,импорт ключей,экспорт ключей" + +--- | +В этом руководстве будет показано, как вы можете экспортировать и +импортировать набор ключей GPG с одного компьютера на другой. + +Таким образом, вы можете подписать/зашифровать еще один компьютер. + +Простым способом сделать это было бы: + +``` +$ scp -r ~/.gnupg user@remotehost:~/ +``` + +но в этом случае будут импортированы все ваши ключи. + +Если вы хотите импортировать только один набор ключей, вы должны сначала +получить список ключей и найти тот, который хотите экспортировать: + +## 1. Экспорт ключа GPG + +``` +$ gpg --list-keys +/home/user/.gnupg/pubring.gpg +-------------------------------- +pub 1024D/ABCDFE01 2008-04-13 +uid firstname lastname (description) +sub 2048g/DEFABC01 2008-04-13 +``` + +В этом случае, я собираюсь импортировать ключ _ABCDFE01_. + +``` +$ gpg --output mygpgkey_pub.gpg --armor --export ABCDFE01 +$ gpg --output mygpgkey_sec.gpg --armor --export-secret-key ABCDFE01 +``` + +Затем скопируйте эти файлы на удаленный хост: + +``` +$ scp mygpgkey_pub.gpg mygpgkey_sec.gpg user@remotehost:~/ +``` + +## 2. Импорт ключа GPG + +Теперь зайдите на удаленный хост: + +``` +$ ssh user@remotehost +``` + +И затем импортируйте: + +``` +user@remotehost:~$ gpg --import ~/mygpgkey_pub.gpg +user@remotehost:~$ gpg --allow-secret-key-import --import ~/mygpgkey_sec.gpg +user@remotehost:~$ gpg --list-keys +/home/user/.gnupg/pubring.gpg +-------------------------------- +pub 1024D/ABCDFE01 2008-04-13 +uid firstname lastname (description) +sub 2048g/DEFABC01 2008-04-13 +``` + +а затем удалите файлы: + +``` +user@remotehost:~$ rm ~/mygpgkey_sec.gpg ~/mygpgkey_pub.gpg +``` + +Вот и все ☺ + diff --git a/how-to/how-to_ssl_cert_with_acme.sh.md b/how-to/how-to_ssl_cert_with_acme.sh.md new file mode 100644 index 0000000..62d36b5 --- /dev/null +++ b/how-to/how-to_ssl_cert_with_acme.sh.md @@ -0,0 +1,129 @@ +--- +title: "How-To: Генерация SSL/TLS сертификатов с помощью acme.sh" +title_bar: 1 +icon: "newspaper" +tags: + author: "digital-freak.ru" + description: "Генерация SSL/TLS-сертификатов от Let's Encrypt" + keywords: "acme.sh,SSL,сертификат" + +--- | +[`security/acme.sh`](http://www.freshports.org/security/acme.sh) - это +shell-скрипт с минимальными зависимостями для генерации SSL/TLS-сертификатов +от [Let's Encrypt](https://letsencrypt.org/). + +Он придерживается той же философии, что и `portmaster` для управления портами +FreeBSD. + +`security/acme.sh` - это скрипт для управления SSL/TLS-сертификатами. + +Эти сертификаты полностью функциональны и не будут выдавать никаких +предупреждений о безопасности, как самоподписанные сертификаты. + +Note: Обратите внимание, что https://freebsd.org/ использует "Let's Encrypt" +и, по-видимому, даже использует `security/acme.sh`. + +### Зачем использовать `security/acme.sh`? + +Существует большой выбор инструментов для запроса сертификатов от +Let's Encrypt, но для них требуется множество зависимостей и права +суперпользователя. `security/acme.sh` очень минималистичная реализация +протокола ACME, который используется для автоматизации запроса и обновления +SSL/TLS-сертификатов. + +### Установка + +``` +pkg install security/acme.sh +``` + +### Запрос сертификата + +Если у вас уже есть работающий на 80 порту веб-сервер: + +``` +mkdir /usr/local/etc/acme.sh/ +chown www /usr/local/etc/acme.sh/ +su -m www +acme.sh --issue --home /usr/local/etc/acme.sh -d www.example.com -w /usr/local/www +``` + +Если на этом хосте нет веб-сервера, вам нужно будет запускать скрипт в +автономном режиме: + +``` +su +acme.sh --issue -d www.example.com --home /usr/local/etc/acme.sh --standalone +``` + +Обратите внимание на некоторые моменты: + + 1. Мы запрашиваем сертификат на www.example.com. Очевидно, вам нужно изменить + это имя на полное доменное имя вашего домена. Домен должен разрешаться в + адрес вашего хоста и быть доступен из Интернета. + 2. Вызов `--standalone` должен временно занять 80 порт и, следовательно, + должен выполнятся с правами суперпользователя. + 3. `--home /usr/local/etc/acme.sh` является произвольным каталогом. Он + используется для хранения сгенерированных сертификатов и файлов + конфигурации для `acme.sh`. По умолчанию скрипт хранит свои файлы в + `~/acme.sh`, но я решил использовать `/usr/local/etc/acme.sh`, потому что + это имеет больше смысла, когда нам нужно обновить сертификаты. + 4. Параметр `-w /usr/local/www` - это каталог в котором сценарий будет + сохранять временные данные для чтения центром сертификации. Он должен быть + доступен для записи пользователю, запустившему сценарий (например + пользователю `www`). + +### Установка сертификата + +Скрипт `acme.sh` создает набор сертификатов: + + * Ваш сертификат в файле `/usr/local/etc/acme.sh/www.example.com/www.example.com.cer` + * Приватный ключ сертификата в файле `/usr/local/etc/acme.sh/www.example.com/www.example.com.key` + * Промежуточный сертификат центра сертификации в файле `/usr/local/etc/acme.sh/www.example.com/ca.cer` + * И полная цепочка сертификатов в файле `/usr/local/etc/acme.sh/www.example.com/fullchain.cer` + +Здесь у вас есть несколько вариантов: + + * указать в конфигурации веб-сервера эти файлы; + * скопировать файлы в каталог `./ssl/` вашего веб-сервера; + * или позволить `acme.sh` сделать это за вас: + +``` +acme.sh --install-cert \ + --home /usr/local/etc/acme.sh \ + -d www.example.com \ + --cert-file /usr/local/etc/nginx/ssl/www.example.com/www.example.com.cer \ + --key-file /usr/local/etc/nginx/ssl/www.example.com/www.example.com.key \ + --fullchain-file /usr/local/etc/nginx/ssl/www.example.com/fullchain.cer \ + --reloadcmd "sudo service nginx restart" +``` + +### Обновление сертификата + +Сертификаты Let's Encrypt имеют короткий срок действия (90 дней) и должны +обновляться вручную или автоматически, и скрипт `acme.sh` может позаботиться +об этом. + +Просто создайте задание в планировщике как пользователь выполняющий скрипт. В +нашем случае это пользователь `www`: + + crontab -u www -e + +```bash +# Attempt to renew the certificates every once in a while: +45 1 * * * /usr/local/sbin/acme.sh --cron --home /usr/local/etc/acme.sh --reloadcmd "/usr/local/bin/sudo /usr/sbin/service nginx restart" > /dev/null +``` + +Это задание будет запускаться каждую ночь. Сценарий проверяет, не истек ли +срок действия сертификата, и при необходимости обновляет его. + +После обновления сертификата скрипт перезапускает веб-сервер (в данном случае +nginx). + +`security/sudo` используется, потому что мы выполняем задание cron как +пользователь с ограниченными правами, и нам нужны привилегии суперпользователя +для перезапуска веб-сервера. + +[Donald Baud](https://forums.freebsd.org/members/50045/), +[Jun 7, 2017](https://forums.freebsd.org/threads/61231/) + diff --git a/how-to/how-to_windows_utc_bios.md b/how-to/how-to_windows_utc_bios.md new file mode 100644 index 0000000..bb3594e --- /dev/null +++ b/how-to/how-to_windows_utc_bios.md @@ -0,0 +1,31 @@ +--- +title: "How-To: Использование UTC времени в Windows" +title_bar: 1 +icon: "newspaper" +tags: + author: "digital-freak.ru" + description: "Настройка Windows для использования значения времени BIOS, как UTC-времени" + keywords: "windows,linux,время,utc" + +--- | +![](/img/win7_clock.png) + +По умолчанию Windows считает, что системные часы машины использую местное +время. Linux и MacOS предполагают, что система использует UTC время. В +результате, если на машине установлено несколько операционных систем, то при +перезагрузке в другую ОС получаем неверное текущее время. Проблема частично +решается настройкой NTP-клиента, но для этого требуется доступ к сети и время +на синхронизацию. + +К счастью есть идеологически верный способ решения проблемы. Можно указать +Windows, чтоб она использовала значение времени BIOS, как UTC время: + + * Запускаем **regedit.exe** с администраторскими правами; + * В ветке `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation` +создаём новое поле типа **DWORD (32-bit)** с именем `RealTimeIsUniversal`; + * И устанавливаем его значение в `1`. + +Теперь при переключении из Windows в другую ОС и обратно, часы будут +показывать верное время. + +[Источник](http://old-robot.blogspot.ru/2012/01/windows-utc-bios.html) diff --git a/how-to/meta.yml b/how-to/meta.yml new file mode 100644 index 0000000..c126287 --- /dev/null +++ b/how-to/meta.yml @@ -0,0 +1,9 @@ +--- +title: Практические руководства +title_bar: 1 +icon: "newspaper" +tags: + author: digital-freak.ru + description: '' + keywords: '' + diff --git a/how-to/tip_openssl_enc_dec_files.md b/how-to/tip_openssl_enc_dec_files.md new file mode 100644 index 0000000..9ab31eb --- /dev/null +++ b/how-to/tip_openssl_enc_dec_files.md @@ -0,0 +1,60 @@ +--- +title: "TIP: шифрование и дешифрование файлов с использованием OpenSSL" +title_bar: 1 +icon: "note-sticky" +tags: + author: "digital-freak.ru" + description: "Как зашифровать и расшифровать файл с помощью openssl" + keywords: "OpenSSL,шифрование,дешифрование" + +--- | +## Небольшое предостережение + +Это может быть известно для многих из вас, но я решил записать эту короткую +заметку для тех, кто не знает об этом. Я иногда работаю на системах FreeBSD +или Linux, где GnuPG не установлен, и мне нужен быстрый способ шифрования и +дешифрования файлов из командной строки. + +## Введите OpenSSL + +[`openssl(1)`](https://www.freebsd.org/cgi/man.cgi?query=openssl) и его +компаньон [`enc(1)`](https://www.freebsd.org/cgi/man.cgi?query=enc) +обеспечивают механизм шифрования и дешифрования с использованием множества +шифров. Пожалуйста, обратитесь к обеим страницам руководств, для понимания +функций этих программ, а также для изучения доступных опций. + +## Пример шифрования + +Не мудрствуя лукаво, давайте зашифруем файл _myfile_: + +``` bash +% openssl enc -bf -salt -in myfile -out myfile.enc -e -a +``` + +Обратите внимание, что мы используем кодировку base64 (`-a`). Это хорошая +идея, особенно если вы будете передавать файл (по FTP, электронной почтой и +т.д.). + +Вам будет предложено ввести "пароль для шифрования" (из которого будет получен +ключ для шифрования вашего файла), и вам будет необходимо ввести его дважды. +Зашифрованный файл в кодировке base64 будет находиться в _myfile.enc_. + +## Пример дешифрования + +Получив зашифрованный файл (созданный с использованием точной команды из +предыдущего примера), мы можем расшифровать его, используя следующую команду: + +``` bash +% openssl enc -bf -in myfile.enc -out myfile.dec -d -a +``` + +Вам будет предложено ввести тот же "пароль шифрования", который вы указали в +предыдущем примере (не забывайте об этом). Затем дешифрованный файл будет +помещен в _myfile.dec_. + +Вот и все. Вы можете подумать о создании псевдонима или функции оболочки или +о небольшом сценарии для скрытия опций. + +[anomie](https://forums.freebsd.org/members/1137/), +[Jun 1, 2009](https://forums.freebsd.org/threads/4473/) + diff --git a/meta.yml b/meta.yml new file mode 100644 index 0000000..fcaa50a --- /dev/null +++ b/meta.yml @@ -0,0 +1,8 @@ +--- +title: Заметки +title_bar: 1 +tags: + author: digital-freak.ru + description: 'Заметки на память' + keywords: '' +