Позднее Ctrl + ↑

Своё хранилище паролей

Многие из нас хранят свои пароли в браузерах, android-устройствах и т. д. Но, насколько это удобно? переключаясь между девайсами вым приходится вспоминать логины/пароли от разных ресурсов, программ и т. д. А хранимые пароли достигают в количестве сотни штук. Как же всё упорядочить и при этом хранить в надёжном месте?

Для меня самое надёжное — это личный сервер. Да, я доверяю только себе.

Итак, в текущих реалиях не так много вариантов для централизованного хранения, и, на мой взгляд, самым лучшим и удобным является Bitwarden_RS, это форк коммерческого решения Bitwarden.

Инструкция по установке простейшая, используем Docker.

Я буду устанавливать в свой Synology, установка занимает не более 10 минут

находим нужный образ в репозитории
я использовал отдельную папку для хранения внешних данных образа

далее настраиваем проброс TCP портов и папки для данных

80 порт я транслировал в 8080 (т. к. у synology 80 занят), а 3012 websocket в 3012
ну а папку data в локальную папку

после создания и запуска в Журнале увидите что-то подобное:

Теперь не забудем создать свой домен, выпустить ssl сертификат для этого домена и настроить обратный прокси.

после регистрации домена, например key.domain.ru идём в Панель управления и настраиваем обратный прокси

правило для подключения с ssl и без него

Теперь создаём сертификат, идём в панель управления и создаем новый сертификат

затем идём в настройки и назначаем выпущенный сертификат нашему обратному прокси

теперь можно подключаться к web-интерфейсу сервера через интернет по протоколу https

регистрируем свой первый аккаунт и пользуемся

Так же рекомендую использовать приложения/плагины для браузера, которые доступны тут: https://bitwarden.com/download/

после установки плагина или приложения, не забудьте зайти в настройки и указать свой сервер, на примере плагина для firefox

После установки и настройки приложения для Android не забудьте зайти в настройки системы и выбрать для автозаполнения Bitwarden

Система удобная, но насколько надёжная?

со стороны сервера данных хранятся в SQLite базе

посмотрим что внутри

данные пользовательских учёток зашифрованы
сохранённые пароли тоже зашифрованы

ну, а исходники утилиты вы сами можете проверить на github: https://github.com/dani-garcia/vaultwarden

автоматизируем очистку почтового ящика по-расписанию

собственно subj, на примере яндекса

я хочу удалять с сервера старые письма (старше недели) с уведомлениями, которые у меня накапливаются в отдельной папке

для начала идём в настройки безопасности https://id.yandex.ru/security

выбираем «Пароли приложений» https://id.yandex.ru/profile/apppasswords-list

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

на самом деле — это очень правильно, т. к. мы не будем хранить в ком-то скрипте свой основной пароль в открытом виде

а дальше, собственно, сам скрипт

<?php
$auth_mail = 'user@yandex.ru'; // логин
$auth_pass = '$tr0ngP@$$w0rd'; // пароль
$server = '{imap.yandex.ru:993/imap/ssl}'.'INBOX'; // подключение к серверу к папке входящие
$filter_str = 'BEFORE "'.date('d-M-Y', strtotime('-7 days')).'"'; // фильтр, чтобы получить письма старше 7 дней

$imap = imap_open($server, $auth_mail, $auth_pass) or die("Не удалось подключиться: ".imap_last_error());
// подключаемся
$some = imap_search($imap, $filter_str);
// применяем фильтр
if ($some !== false) {
// если что-то нашли - в цикле обходим
	foreach ($some as $msg_id)
		{ //  и помечаем на удаление каждое письмо с его id
			echo "delete message #".$msg_id."\n";
			imap_delete($imap, $msg_id);
		}
}
// окончательно удаляем отмеченные письма и отключаемся
imap_expunge($imap);
imap_close($imap);
?>

обратите внимание, я в переменную «$server» добавил строку из двух частей, вторая чать в примере подключит вас к папке «Входящие», если вам надо выбрать другую папку — укажите свой путь, например:

INBOX|&BCEEPgRGBEEENQRCBDg- — это папка Входящие — Соцсети, записанная в кодировке UTF7-IMAP

список папок можно получить командой

$list = imap_list($imap, "{imap.yandex.ru}", "*");
if (is_array($list)) {
	foreach ($list as $val) {
		echo mb_convert_encoding($val, "UTF-8", "UTF7-IMAP")."\n";
		echo $val."\n\n";
	}
}

первой строкой будет выводится декодированное (читабельное) название, второй строкой исходное, которое и надо будет подставлять в свой скрипт выше

переносим пакеты Synology на другой раздел

Представьте, что у вас появился новый раздел synology и вы хотите переехать на него, освободив старый

имеем раздел

  • volume1 — старый
  • volume2 — новый

для начала перейдите в Центр пакетов, откройте настройки и укажите новый раздел хранения, чтобы с этого момента пакеты устанавливались на второй раздел (как в примере)

А что же делать с установленными пакетами? Удалить и установить заново не хотелось бы, т. к. потеряются все настройки.

Давайте мигрируем в ручную пакет «Hyper backup»

обратите внимание — пакет установлен на Том 1

для начала подключимся через ssh к серверу и посмотрим со стороны сервера

admin@server:~$ ls /volume1/\@appstore/
ActiveBackup  LogCenter    Perl    PHP7.2                      TextEditor
HyperBackup   Node.js_v12  PHP7.0  SynologyApplicationService  Virtualization

пакеты ставятся в папку «@appstore», такую же надо сделать на втором разделе (если ее ещё нет)

admin@server:~$ sudo mkdir /volume2/@appstore

далее останавливаем службу в Центре пакетов

на сервере перемещаем её на второй раздел

admin@server:~$ sudo mv "/volume1/@appstore/HyperBackup"/ "/volume2/@appstore"

затем удалим старый симлинк на приложение

admin@server:~$ sudo rm "/var/packages/HyperBackup/target"

и создадим новый

admin@server:~$ sudo ln -s "/volume2/@appstore/HyperBackup" "/var/packages/HyperBackup/target"

запускаем и видим, что пакет теперь установлен на Том 2

готово )

PS вы можете в процессе переноса словить ошибку Пакета, не спешите нажимать кнопку «Восстановить», это система не увидела симлинк target, обновите страницу или подождите, ошибка сама исчезнет, если вы всё по инструкции делали

PSS Если ошибка долго не исчезает, примените восстановление, но обратите внимание, чтобы местонахождение пакеты было на новом разделе

Ранее Ctrl + ↓