Доброго времени суток, Habr!
В 2024 году количество утечек данных по всему миру побило все предыдущие рекорды: по оценкам аналитиков, более 9 миллиардов уникальных записей, включая логины и пароли, оказались в открытом доступе из‑за массовых взломов и небрежного отношения пользователей к собственной информационной безопасности.
Это первая моя статья на Habr за 12 лет в свободной форме, где мне хочется поделиться своим видением реализации мобильного, домашнего, облачного хранилища паролей на базе Mini PC и Vaultwarden.

Совсем недавно, после очередной утечки данных с очередного сайта с моими данными, я принял решение проявить сетевую чистоплотность поменять все свои пароли на более сложные (по правилу 1 учетная запись – 1 пароль), а также полностью отказаться от облачных хранилищ паролей, которые предоставляют браузеры. Ну и поменять симку, которую не знает только ленивый). А также — получить безопасное ДОМАШНЕЕ хранилище паролей с достаточной отказоустойчивостью.
Проблема в том, что если указывать уникальные пароли для всех 200+ сайтов, то запомнить их будет практически невозможно. До текущего момента у меня было 2 группы паролей(рабочие и личные). Личные делились фактически на 3 пароля.
Личные:
легкий – для сайтов, чья важность для меня минимальна и если его сольются, или подберут пароль – это не сможет мне навредить
средний – для сайтов с двухфакторкой
чуть более сложный пароль, для важных сайтов
*** Уже предвижу комментарии, но что было, то было.
Для работы и прям критических сайтов, связанные с госуслугами и банкингом — использовались достаточно сложные со спецсимволами и регистрами. (ибо их не так много). Но все же — иногда грешил браузерным облаком.
Сейчас все понимают, что точки зрения безопасности так лучше не делать. Мягко скажем… Как минимум, придется в случае компрометации пароля менять его не в одном месте, а везде.
Дисклеймер:
Я не являюсь специалистом по безопасности и всё жизнь особо не уделял этому внимания.(а зря)
Я достоверно знаю - большая часть моих персональных данных уже слита в сеть
Это первый шаг в построении безопасного домашнего облака (в формате я так вижу)
Умышленно могу не описать/опустить/оставить за кадром некоторые технические аспекты
Немного техники
Т. к. у меня уже есть домашний NAS на базе TerraMaster F5-221, было принято решение развернуть на нем Vaultwarden. Сейчас схема выглядит вот так:

Это прямо сказать – базовый вариант. На все это натянут - KeenDNS(в ближайшем будущем NetCrazeDNS). Но здесь есть несколько неявных проблем:
Стабильность NAS( с точки зрения нагрузки)
Стабильность дисков на которых запущен Vaultwarden
Отказ NAS
Стабильность NAS (с точки зрения нагрузки)
F5-221 достаточно слабый с точки зрения CPU. Из коробки это Intel Apollo J3355 2,0 GHz и 2ГБ ОЗУ. Да, память я расширил до 10ГБ, но если NAS на HDD – то любая работа с данными на носителях значительно нагружает систему и Docker в этот момент – явно не в приоритете. А мои харды – как назло все со скоростью 5400. Заменив HDD на SSD я получил более стабильную систему и меньшую загрузку CPU, но осадочек остался.
Стабильность дисков, на которых запущен Vaultwarden
Что хард, что SSD могут отказать. Моя конфигурация:
1 слот – WD 3TB 5400 – долгое хранилище(наполняется по крону из данных со слотов 2 и 3)
2,3 слот SSD 2+2TB Patriot (4ТБ в сумме) (быстрое хранилище для работы)
4 слот – SSD 2TB Goldenfir – без сирийника ( что-то вроде буфера + докер и прочий софт)
5 слот – SSD 240GB Samsung – под систему
И все это – не серверные накопители….
Отказ любого из дисков приведет к недоступности сервиса. Но это не что, если выйдет из строя сам NAS.
Отказ NAS
В случае отказа NAS есть несколько проблем (проблемы в домашних условиях):
Если диски (которые без RAID) шифрованные то нужно будет искать/вспоминать пароль что бы достать бэкап системы с диска. Это конечно если NAS не заберет с собой диски, а у нас есть под рукой Linux.
Нужно будет найти точно такой же NAS (проблема в том, что сейчас он подрожал в 2 раза по сравнению с той ценой, за который я его покупал. И это будет бессмысленно, если у нас не будет бэкапа системы и пароля).
Если даже диски не шифрованные, то, например подключив их к Windows мы не сможем прочитать эти диски. Нужно будет искать Linux тачку. А так сложилось что я сейчас на Winodws и пока переходить никуда не хочу.
С одной стороны, проблемы, вроде, не существенные, если не держать в голове что многие, кто ставят Vaultwarden — делают это по манам и не занимаются администрированием как мы с вами.
Моя задача сейчас — сделать свое домашнее облачное хранилище паролей, где точно будут живые бекапы и максимально простым и «дешевым» способом.
Самый простой способ – это отдельная тачка, на которой будет хранится только Vaultwarden. Да, можно собрать свою тачку, или использовать старый ПК, но он будет не экономичен по электрике, большой, шумный и пыльный)
*** Да, я в курсе что при должном опыте и наличие linux под рукой с паролем шифрования сингл диска - можно вытащить данные за пару часов, но пароли мне нужны будут сейчас, а не через пару часов. Особенно, если в моменте нет доступа до железки. Особенно, если диск не 1, а в RAID.. Особенно с софтовым RAID….
Еще немного техники
После изучения на протяжении 2х недель того, что есть на рынке MiniPC , понял что нужна железка, которая будет выполнять только одну задачу. И не было бы даже желания навесить на неё что-то еще. Выбор пал на:
BMAX Мини-ПК за 9000 рублев с ozon. На алике можно было найти дешевле, но ждать не хотелось… ОЗУ и RAM распаяны. Да и в ит работаю, могу позволить себе купить всякое для разного)
Характеристики:
CPU: Intel® N4000
GPU: Intel® UHD Graphics
Memory: 8GB
Storage: 128GB
System: Windows 11
WiFi: 2.4GHz/5GHz Dual Band Wi-Fi
Bluetooth: Bluetooth 4.2
Interface: USB×4, DC ×1, Headset jack, HDMI ×1,VGA ×1, RJ45 ×1
Expandable storage:M.2 2280 SSD Slotx1
Appearance: Slim and lightweight of 300g
Преимущества коробочки:
компактность: можно всегда быстро и не заметно перевести в другое место.
компактность2: можно всегда закинуть в микроволновку и поджарить до корочки

Начало
Первое, что нам нужно сделать – это накатить Ubuntu или Ubuntu Server. Можно использовать любую OS, хоть Arch, хоть Slax). В рамках первого пилотного запуска я не буду использовать SELinux, хотя – надо бы. Ну и Bios тоже запаролить было бы не плохо. Так же, я использую Ubuntu с GUI для первоначальной настройки. Всю дальнейшею настройку я будут проводить по SSH из WSL. Хотя, можно собрать сборку с уже настроенным SSH и заброшенными ключами.
Не забываем на роутере прибить IP для нашей машинки, чтобы после рестарта он не менялся. Ну и настраиваем новый KeenDNS, с марта месяца в РФ - NetCrazeDNS.
Софт:
Nginx/Angie – прокси, через который мы будем подключаться из интернета
PostgreSQL – тут будет храниться база паролей
Telegraf – в будущем, будет отправлять метрики о состоянии тачки
NodeJS
Rust
Vaultwarden
После установки подключаемся к ПК через GUI, открываем GUI и активируем подключение к нашей тачке по SSH из вне. Попутно подкалываем RSA ключ, который мы создали (но можно и после подключения с паролем из WSL, или чего-то еще, чем вы будете подключаться к тачке).
Подключаем по SSH к серверу и устанавливаем необходимый софт. Это можно сделать через Ansible, или с помощью инструкции (На Ubuntu 24.04 noble).
Инструкция
Вспомогательный софт который нам понадобится:
sudo apt install curl gnupg2 build-essential ca-certificates lsb-release dirmngr software-properties-common apt-transport-https htop pkg-config openssl libssl3 libssl-dev gnupg -y
Тут указаны пакеты которые нам потребуются при дальнейшей установки прикладного ПО и сборки vaultwarden
Проведем подготовку для установки vaultwarden. Создаем пользователя — vaultwarden (креатив мое второе имя).
$ sudo useradd -m -U -r -d /opt/data/vaultwarden -s /bin/bash vaultwarden
$ sudo chmod 750 /opt/data/vaultwarden
>>> Тут важная ремарка, путь можно указать любой для пользователя. Я привык выбирать папку /opt/data. Т.к. в сам opt может падать еще что‑то, например — PostgreSQL.
Пора ставить Rust
Под пользователем vaultwarden мы устанавливаем RUST, в егохомяк. То есть — в /opt/data/vaultwarden
$ sudo su - vaultwarden
$ curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | sh
И выбираем:
Proceed with installation (default)
У нас будут установлены следующее компоненты: cargo, clippy, rust-docs, rust-std, rustc
Мы увидим информацию:
Rust is installed now. Great!
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.
This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env" # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish" # For fish
source "$HOME/.cargo/env.nu" # For nushell
Теперь нужно выполнить:
$ source ~/.profile
$ source ~/.cargo/env
Убеждаемся, что Rust - встал:
$ rustc -V
rustc 1.86.0 (05f9846f8 2025-03-31)
Теперь нам понадобится NodeJS
Добавим официальный репозиторий NodeSource для нужной версии Node.js (например, 22-й — последняя LTS на июнь 2024):
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
Установим Node.js:
sudo apt install -y nodejs
Проверим установленную версию:
$ node -v
v22.15.0
$ npm -v
10.9.2
Пришло время установки PostgreSQL
1. Добавим официальный репозиторий PostgreSQL:
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list
2. Импортируем ключ репозитория:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc \
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
3. Обновим список пакетов:
sudo apt update
4. Установим последнюю версию PostgreSQL (актуальная версия - 17 на 2025 год):
sudo apt install postgresql
Эта команда установит самую новую доступную в репозитории версию PostgreSQL, обычно это актуальная стабильная версия.
5. Проверяем установленную версию:
psql --version
6. Проверяем, что сервис запущен и не забудем также включить в автозапуск:
sudo systemctl status postgresql
systemctl enable postgresql
Synchronizing state of postgresql.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable postgresql
Перед тем, как создавать пользователя, давайте перенесем папку Postgres в /opt/postgresql
$ cd /opt/ # переходим в рабочую папку
$ sudo mkdir postgresql_17 # Создаем папку под нашу версию PostgreSQL
$ sudo systemctl stop postgresql # Выключаем PostgreSQL что бы не сломать
$ sudo mv /etc/postgresql/17/main/* /opt/postgresql_17/ # Переносим данные в целевую папку
$ sudo chown postgres:postgres -R postgresql_17/ # Выставляем пользователя для новой папки
$ sudo rm -rf /etc/postgresql/17/main/ # Удаляем старую Main папку
$ sudo sudo ln -s /opt/postgresql_17/ /etc/postgresql/17/main # Создаем симлинк, что бы не трогать Unit File.
$ sudo systemctl start postgresql # Запускам PostgreSQL
Тюнить сам PostgreSQL мы не будем. Нагрузки не будет, а значит оставляем дефолтный конфиг.
Теперь про настройку пользователя vaultwarden. Нам нужно подключиться к PSQL.
Давать доступ себе и руту мы не будем (пока), и просто перейдем в самого пользователя
$ su - postgres
$ psql -U postgres
psql (17.4 (Ubuntu 17.4-1.pgdg24.04+2))
Type "help" for help.
postgres=#
Теперь создадим пользователя и БД. Для примера — пароль простой, но напихать сюда можно символов сколько душе угодно (учитывая ограничения PostgreSQL).
=# CREATE ROLE "vaultuser" WITH LOGIN PASSWORD 'vaultwarden';
=# CREATE DATABASE "vaultdb" OWNER "vaultuser";
=# GRANT ALL PRIVILEGES ON DATABASE "vaultdb" TO "vaultuser";
=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "vaultuser";
Теперь, когда всё почти готово, нужно сделать так, что бы к PostgreSQL можно было подключиться.
$ vim /opt/postgresql_17/pg_hba.conf
Тут нам нужно найти два блока:
# IPv4 local connections:
# IPv6 local connections: (опционально)
И поправить последний столбец, scram-sha-256 на md5
После этого возвращаемся к пользователю, у которого есть root и перезапускаем PostgreSQL
$ sudo systemctl restart postgresql
Всё, теперь у vaultwarden будет доступ к PostgreSQL.
Vaultwarden - настало твое время
Теперь для работы мы станем пользователем vaultwarden и тоже как поинсрукции. ** Подставляйте актуальные версии пакетов VW.
Актуальную версию vaultwarden можно посмотреть на страничке репозитория.
Актуальную версию веб версии можно посмотреть тут.
$ sudo su - vaultwarden
$ wget https://github.com/dani-garcia/vaultwarden/archive/refs/tags/1.33.2.tar.gz
$ tar xzvf 1.33.2.tar.gz
$ cd vaultwarden-1.33.2
$ cargo clean && cargo build --features postgresql --release
Положительный результат сборки выглядит так:
Finished release
profile [optimized] target(s) in 20m 41s
$ cd ~
$ wget https://github.com/dani-garcia/bw_web_builds/releases/download/v2025.4.1/bw_web_v2025.4.1.tar.gz
$ tar xzvf bw_web_v2025.4.1.tar.gz
$ mkdir data
Теперь нам нужно создать hash пароля. (для примера будем использовать: vaultwarden)
$ ./vaultwarden-1.33.2/target/release/vaultwarden hash
Generate an Argon2id PHC string using the 'bitwarden' preset:
Password:
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$tmzCSXTdFVUggU4Iotew2Ck/uE7Dhmdo9VxV4122MTA$vM/Q+JeWyDawk0cXPEMMdQVMQyqcd8rzN+x8ZFPEZL8'
Generation of the Argon2id PHC string took: 523.953816ms
Теперь нужно создать коифиг. Описание тута, ну а мы — возьмем готовый из интернетов и скорректируем.
Но перед этим — сделаем URL на который мы будем обращаться. Например:
https://bmax.your_name.keenetic.link по порту 443. Мы будем работать только с SSL сертификатом.
$ vim /opt/vaultwarden/vaultwarden-1.33.2/target/release/.env
DATA_FOLDER=/opt/data/vaultwarden/data
DATABASE_URL='postgresql://vaultuser:vaultwarden@localhost:5432/vaultdb'
DATABASE_MAX_CONNS=10
WEB_VAULT_FOLDER=/opt/data/vaultwarden/web-vault/
WEB_VAULT_ENABLED=true
ROCKET_ENV=staging
ROCKET_ADDRESS=127.0.0.1
ROCKET_PORT=4756
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$tmzCSXTdFVUggU4Iotew2Ck/uE7Dhmdo9VxV4122MTA$vM/Q+JeWyDawk0cXPEMMdQVMQyqcd8rzN+x8ZFPEZL8'
DISABLE_ADMIN_TOKEN=false # Включаем админку
INVITATIONS_ALLOWED=true # Разрешаем отрпавлять инвайты (если не нужно - прописать false)
DOMAIN=https://bmax.you_link.keenetic.link
#LOG_FILE=/opt/data/vaultwarden/logs/vaultwarden.log # Включить если будут проблемы
USE_SYSLOG=true
LOG_LEVEL=info
ENABLE_DB_WAL=true
DB_CONNECTION_RETRIES=15
ICON_CACHE_TTL=86400
DISABLE_ICON_DOWNLOAD=true
ICON_DOWNLOAD_TIMEOUT=10
ICON_BLACKLIST_REGEX='^(192\.168\.0\.[0-9]+|192\.168\.1\.[0-9]+)$'
SIGNUPS_ALLOWED=false
SIGNUPS_VERIFY=false
SIGNUPS_DOMAINS_WHITELIST=keenetic.link
#SMTP_HOST=
#SMTP_FROM=
#SMTP_FROM_NAME=
#SMTP_PORT=587
#SMTP_SSL=true
#SMTP_USERNAME=
#SMTP_PASSWORD=
#SMTP_TIMEOUT=
WEBSOCKET_ENABLED=true
WEBSOCKET_ADDRESS=127.0.0.1
WEBSOCKET_PORT=3658
IP_HEADER=X-Real-IP
ORG_CREATION_USERS=you@email
TRASH_AUTO_DELETE_DAYS=7
ADMIN_SESSION_LIFETIME=20
SHOW_PASSWORD_HINT=false
**** При включении LOG_FILE не забудьте дать ему права
$ sudo mkdir /opt/data/vaultwarden/logs/
$ sudo chown vaultwarden:vaultwarden /opt/data/vaultwarden/logs/
Т.к. Это сервис — нам нужно создать Unit файл для его запуска. (уже под пользователем с правами root)
$ sudo vim /etc/systemd/system/vaultwarden.service
[Unit]
Description=Bitwarden Server (Rust Edition)
Documentation=https://github.com/dani-garcia/vaultwarden/
# If you use a database like mariadb,mysql or postgresql,
# you have to add them like the following and uncomment them
# by removing the # before it. This makes sure that your
# database server is started before bitwarden_rs ("After") and has
# started successfully before starting bitwarden_rs ("Requires").
# PostgreSQL
After=network.target postgresql.service
Requires=postgresql.service
[Service]
# The user/group bitwarden_rs is run under. the working directory (see below) should allow write and read access to this user/group
User=vaultwarden
Group=vaultwarden
# The location of the .env file for configuration
EnvironmentFile=-/opt/data/vaultwarden/vaultwarden-1.33.2/target/release/.env
# The location of the compiled binary
ExecStart=vaultwarden
# Set reasonable connection and process limits
LimitNOFILE=1048576
LimitNPROC=64
# Isolate bitwarden_rs from the rest of the system
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
# Only allow writes to the following directory and set it to the working directory (user and password data are stored here)
WorkingDirectory=/opt/data/vaultwarden/vaultwarden-1.33.2/target/release/
ReadWriteDirectories=/opt/data/vaultwarden/vaultwarden-1.33.2/target/release/
# Allow bitwarden_rs to bind ports in the range of 0-1024
#AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
А дальше по классике:
sudo systemctl daemon-reload
sudo systemctl start vaultwarden.service
sudo systemctl status vaultwarden.service
sudo systemctl enable vaultwarden.service
Теперь нам нужно сделать так, что бы наш KeenDNS попадал именно в наш vaultwarden
Для этого нам понадобиться NGINX.
Nginx - и до тебя дошли
Ставим последнюю доступную версию.
$ sudo mkdir -p /etc/apt/keyrings
$ wget -qO - https://nginx.org/packages/keys/nginx_signing.key | sudo tee /etc/apt/keyrings/nginx_signing.key
$ sudo vim /etc/apt/sources.list.d/nginx.sources
Types: deb
URIs: https://nginx.org/packages/ubuntu/
Suites: noble
Components: nginx
Architectures: amd64
Signed-By: /etc/apt/keyrings/nginx_signing.key
$ sudo apt update
$ sudo apt install nginx-full
$ nginx -v
nginx version: nginx/1.28.0
Теперь нужно его настроить. А для этого нам понадобиться SSL сертификат.
$ sudo mkdir /etc/nginx/ssl
$ cd /etc/nginx/ssl
Сформируем самоподписной сертификат:
$ openssl req -newkey rsa:4096 -nodes \
-keyout bmax.you_link.keenetic.link.key \
-out bmax.you_link.keenetic.link.csr \
-subj "/C=RU/ST=Moscow/L=Moscow/O=MyCompany/OU=MyDepartment/CN=bmax.you_link.keenetic.link/emailAddress=you@email"
Подписываем своим же ключем
$ openssl x509 -req -days 365 \
-in bmax.you_link.keenetic.link.csr \
-signkey bmax.you_link.keenetic.link.key \
-out bmax.you_link.keenetic.link.crt
На выходе получаем 3 файла:
-rw-r--r-- 1 root root 2098 May 3 01:57 bmax.you_link.keenetic.link.crt
-rw-r--r-- 1 root root 1793 May 3 01:57 bmax.you_link.keenetic.link.csr
-rw------- 1 root root 3268 May 3 01:57 bmax.you_link.keenetic.link.key
Теперь займемся настройкой NGINX
$ sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_disabled
$ sudo vim /etc/nginx/conf.d/vaultwarden.conf
А вот и сам файл конфигурации:
upstream vaultwarden {
zone vaultwarden 64k;
server 127.0.0.1:4756;
keepalive 2;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' "";
}
server {
listen 80;
listen [::]:80;
listen 443 ssl;
server_name bmax.you_link.keenetic.link;
ssl_certificate /etc/nginx/ssl/bmax.you_link.keenetic.link.crt;
ssl_certificate_key /etc/nginx/ssl/bmax.you_link.keenetic.link.key;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
error_log /var/log/nginx/vaultwarden_error.log;
access_log /var/log/nginx/vaultwarden_access.log;
# Allow large attachments
client_max_body_size 128M;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://vaultwarden;
}
}
$ sudo nginx -t
$ sudo systemctl restart nginx
$ sudo systemctl status nginx
В результате – мы получаем рабочий Vaultwarden на мини пк. Мы можем его забрать с собой на дачу, или в поездку(не знаю зачем, но можем).

Основной URL: https://bmax.you_link.keenetic.link/#/login
Админка***: https://bmax.you_link.keenetic.link/admin
*** Рекомендую админку выключать. По тому как KeenDNS – это простой Nginx который просто пробрасывает трафик. И наружу мы выставляем именно «голый» Vaultwarden. Напихать туда как нечего делать).
Что будет сделано за кадром
В рамках именно своего хранилища буду еще проводить доработку. Предварительный план:
SELinux ON
Bios будет запаролен (под вопросом)
Авторизация по SSH, только по RSA, возможно лок по маку) и GEO IP.
Slave Server для БД на NAS * (под вопросом)
Бекап локально с отправкой на NAS
Настроен мониторинг сервера с отправкой метрик в NAS (Grafana + AlertManager) (под вопросом)
VPN для удаленной и безопасной работы в локальной сети
Шифрование накопителя (под вопросом)
** Если дойдут руки но написания Ansible плейбука, добавлю сюда ссылку.
Какой же вывод?
В заключение стоит подчеркнуть, что созданное безопасное мобильное хранилище паролей на базе Mini PC, Vaultwarden и KeenDNS — лишь один из множества возможных вариантов локального и защищённого хранения ваших данных. Такой подход позволяет держать свои пароли под контролем и значительно снижает риск несанкционированного доступа, обеспечивая высокий уровень личной цифровой безопасности. Однако не забывай, что подобные решения требуют внимательного отношения к настройкам и регулярного обновления, а также общей информационной гигиены. В конечном счёте, твоя сетевая чистоплотность и ответственное отношение к своим данным остаются главным ключом к безопасности в интернете независимо от выбранного способа хранения паролей.
Как говорил Стэтхем: «В интернете, брат, без безопасности — как на районе без крыши: один шаг не туда, и неприятности не заставят себя ждать».