Архив рубрики: ИТшное

Домашняя серверная

Михаил Кириченко у себя в телеге поднял вопрос про домашние серверные, я подумал — у меня же есть опыт, опишу-ка я его.
О чём конкретно: о серверной частного дома, где:

  • хранится:
    • архив документов (сканы, платёжки, архив чеков и квитанций, договоры, и т.д., и т.п., бэкапы рабочих доков и т.д., и т.п.,)
    • медиа (кино, сериалы, музыка)
    • фотки и видосики, которые сняты за всю жизнь
    • библиотека
  • работает «умный дом», т.е. мониторинг состояния и сценарное управление
  • работает видеонаблюдение.

Что по минимуму?

Без умного дома, две железки:

  • условный Synology или TrueNAS-сервер для файлопомойки и медиа
  • видеорегистратор и камеры, чтобы смотреть, что за кошки бегают по участку, и кто тырит арматуру с огорода.

    Можно объединить в одну, если есть опыт, или не жалко денег на лицензии Synology Surveillance.

    Железки на бесперебойнике, который обеспечит работу в кратковременное отключение или скачок питания. Это должен быть отдельный бесперебойник. Не надо нагружать общедомашний (если он вообще есть), или тем более котельный :).

В чём плюсы

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

А минусы?

  • требует внимания: надо проверять состояние дисков, температур и т.д.
  • стащили — всё потеряно.

Что добавить?

  1. Ещё одну железку, с условным OpenHUB, которая обеспечит мониторинг и уведомления.
    Почему OpenHUB, а не условный Zabbix?
  • проще для пользователя
  • позволит мониторить не только парочку из предыдущего раздела, но и температуру в доме, показатели электроэнергии, и ещё дофига всего интересного, вплоть да CO2
  • Позволит настроить сценарное управление, если ваша проводка к этому готова (об этом отдельно), т.е, получить «умный дом»
  1. Пожарную сигнализацию. Любую. Про это никто не думает, вон даже я засунул её во второй раздел, хотя стоило бы с неё начать. Что-то, что разбудит вас раньше чем вы задохнётесь, позвонит вам сообщить о беде и позволит вызвать пожарных.

А ещё?

А ещё стоит добавить

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

Как размещать?

Мой выбор — 19″ шкаф в кладовке и 19″ корпуса для железок. Удобно, одинаково, хороший обдув, всё в одном месте.
Можно просто поставить один-три компа на полку и наслаждаться жизнью, но будет некрасиво 🙂
Пожарка — мимо, она отдельно, она просто в шкафчике на стене.

Итого

Полноценная серверная частного дома — это:

  • домашний сервер для всякого
  • видеонаблюдение
  • пожарная сигнализация
  • мониторинговый сервер
  • облачное/внешнее хранилище.
  • ИБП серверной

Самый минимум:

  • Пожарка. Поставьте её и однажды она спасёт вам жизнь. И не забудьте про блок питания с батарейкой для неё. И да, пару огнетушетелей тоже не забудьте. В быстром доступе

Промежуточные варианты — на вкус и цвет. Если нужна помощь и консультации — велкам в комментарии в ВК

Маленький планшет (до 9″), муки выбора

Headwolf Titan 1

Китайский китай, 24Гб оперативки, голый андроид. Типа игровой
https://www.ozon.ru/category/planshety-15525/headwolf-101070102/?announyear=101294106&mobilestandartshort=272771&rsdiagonalstr=0.000%3B9.000
Отзывы: китаец-китайцом. Ну 30К за попробовать? Дороговато, не?

Цена: 30К

Headwolf Fpad 7

8Гб оперативки, неплохо
Камера — отстой, дисплей — норм (один отзыв на 4ПДА). Другие отзывы так себе: медленные дисплеи, кривая прошивка

Alldocube iPlay 60 mini Pro

Китайский китай. Жалуются на сенсор.

Цена 20К

Honor Pad X7 4G

4Гб оперативки. Маловато, зато стоит 15К и это хонор

Цена: 15К

Huawei MediaPad M6

Только если в авито или комиссионки
4Г оперативки
Андроид 9

Цена непонятна

Samsung Galaxy Tab A11 LTE 8/128

8ГБ оперативки, LTE, хороший экран, стабильная прошивка
https://www.ozon.ru/product/samsung-planshet-galaxy-tab-a11-lte-8-7-8-gb-128-gb-temno-seryy-2983310884/?at=PjtJRQWKvcJ3wL9YcKPAkDOH6l2WQ5S1ZV37zcOl4Bjj

Цена 20К

Blackview Tab 60

6Gb оперативки, уже что-то
Ценник непонятен, в днсе уже нет в наличии, на озоне пляшет от 11К до 80К
Отзывы на 4пда неплохие, но обзора нет

F+ T800

Прикольная история, Андроид, но без гуглосервисов, с AppGallery
В теории есть версия с 6Гб оперативки
В продаже не нашёл
«Отечественный»

Ulefone Armor Pad Pro

8Гб оперативки. Неплохо, чё
Защищённый плашнет, довольно большой и тяжёлый
Есть оф.сайт в ру https://ulefone.ru/armor-pad-pro.html
есть uSmart разъём для подключения эндоскопа/микроскопа. Зачем мне?

Цена 20К

Выводы

Либо задорого китайский титан 1, либо на треть дешевле самсунг А11, всё что посередине — мимо. Ну, ещё Армор Пад Про, может быть… Хотя, он ip68 и тяжёлый
Есть как бы ещё леново Y700, но у них нет версии с сим-картой. Вотъ
Самсунг — можно купить в официальной рознице..
Крч, просто как планшет — я за самсунг, раз хуавея в этих размерах нет

ASRock Q1900B-ITX и диск NVME в PCI-e адаптере

Всё просто — Q1900B-ITX с последним биосом не поддерживает NVME в роли загрузочного устройства. На материнской плате M.2 нет, диск вставленный в PCI-e адаптер, виден в операционной системе, но выбрать его в роли загрузочного устройства нельзя. Ни в UEFI режиме ни в Legacy

Используйте SATA в роли загрузочных устройств и всё будет работать.

Не повторяйте моей ошибки :)))

Что делать, если картинка не помещается в экран на телевизоре Samsung

Телевизор используется в роли монитора по HDMI, и в какой-то момент, картинка перестала помещаться в экран. Я мозг сломал, пока вспомнил как это чинить.

Я пытался настроить масштабирование при помощи xrandr, переключал компы, менял кабели… А дело было в настройке входа телевизора. Я когда-то это настроил, и, видимо, настройка слетела, при отключении электричества.

Важно: комп правильно подключать к порту обознченному как hdmi/pc или hdmi/DVI

Итак, по шагам:

Нажать кнопку Source на пульте

Нажать кнопку Tools на пульте (появится меню настроек), выбрать Редактир. назв (Rename source)

Выбрать ПК (PC), нажать ОК

Вуаля, чудо случилось:

Видео:

Youtube

ВК

Сбербизнес через браузер «нет подключения к интернету»

Если нарвались на такую ошибку (скрин ниже)

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

Полная инструкция от СБЕРА по этой ссылке

Напомню только, что у Firefox (самый безопасный браузер, из широкодоступных, да) своё хранилище сертификатов, и туда необходимо добавить сертификаты отдельно.

Шаг первый. Скачайте сертификаты по ссылками из инструкции

Шаг второй. Распакуйте оба архива в какую-либо папку (получится 5 файлов на 15 декабря 2025 года)

Шаг третий. Установите сертификаты:

3.1. Окройте firefox и перейдите в настройки

3.2 Перейдите в «Приватность и защита» и найдите раздел «Сертификаты». Щёлкните по кнопке «Просмотр сертификатов»

3.3 В открывшемся окне, перейдите на вкладку «Центры сертификации» (Firefox не разделяет корневые и промежуточные) и импортируйте сертификаты по очереди. Первыми импортируйте файлы в которых есть «root_ca» в имени.

Обратите внимание, поставить галочки 🙂

И так — пять раз.

Всё, сбер заработает. На всякий случай, ещё раз: ссылка на полную инструкцию и скачивания файлов на сайте СБЕРа

Музыка на Android/Harmony прерывается через несколько минут

В моём случае, стабильно останавливалось раз в 16 минут 32 секунды 🙂

Не важно, по BT, или в наушниках, даже через локальные динамики.

Гуглил, долго, нашёл похожую проблему на Google Pixel с приложением Google Music

Предложенное решение: сбросить настройки сети на смартфоне.

Система и Обновления — Сброс — Сброс настроек сети (картинки ниже):

После выполнения сброса настроек сети, смартфон потеряет все bluetooth и WiFi соединения. Их надо будет заново настраивать.

Главное: мне помогло 🙂

Могу рекомендовать, как способ.

PostgreSQL 1C для Windows при запуске останавливается

С ошибкой вида «Служба была запущена и автоматически остановлена»
Отмазка/Disclaimer: всё что вы делаете, вы делаете на свой страх и риск. Нникакойтветственности за результат я не несу.

Причина, в 99% случаев: некорректное завершение работы.
Не экономьте на ИБП, и мониторинге. Следите за состоянием батареи ИБП.
Реже — причина сбой диска. Развитая инфраструктура без мониторинга — бомба замедленного действия. Следите за состоянием серверов.
В любом случае, PostgreSQL очень надёжен, и постарается сделать всё, чтобы баз не сломались и данные не потерялись, но может быть всякое. По этому, в большинстве случаев, служба не остановилась, просто запускается слишком долго, и Windows, не получив ответа, считает, что что-то пошло не так.

Это надо проверить.

  1. Запустите диспетчер задач, и убедитесь, что процессы postgresql.exe запущены
  2. Если видите процессы, PostgreSQL либо в процессе старта, либо уже работает. Проверяйте логи (логи лежат в рабочем каталоге кластера, в папке log). Где рабочий каталог кластера, можно посмотреть в свойствах службы, параметр в конце строки запуска.
  3. Отсортируйте файлы логов по дате, и откройте последний. 99% вы увидите там
  4. Дождитесь пока PostgreSQL не перестанет сыпать строками вида:
    FATAL: the database system is starting up
    DETAIL: Consistent recovery state has not been yet reached
    FATAL: the database system is not yet accepting connections

    Скорее всего, лог перестанет часто обновляться, после того, как закончится autovacuum, после проверки целостности. Как-то так

Это значит — сервер запустился, и можно войти в базу 1С

Теперь осталось только перезапустить PostgreSQL так, чтобы работал pg_ctl и Windows считала, что служба работает.

Обратите внимание: если сервер не придёт в рабочее состояние, и история в логе не изменится, дальше ничего делать нельзя. Всё плохо, идите восстанавливаться из бэкапа.

Если заработало, можно перезапустить PostgreSQL:

  • Запустите командную строку «от имени администратора»
  • В командной строке перейдите в каталог PostgreSQL ((как правило C:\Program Files\PostgreSQL\%номер_версии%\bin)
  • Выполните команду: pg_ctl stop -D %путь_к_рабочему_каталогу_кластера% -m fast -W
    //Обратите внимание, в пути к рабочему каталогу кластера все обратные слэши меняются на прямые. т.е., вместо F:\PGDATA пишем F:/PGDATA
  • Дождитесь, пока команда отработает, выдохните ещё полминуты
  • Перейдите в оснастку «Службы» и запустите PostgreSQL. Если с данными всё хорошо, служба нормально запустится, и всё заработает.

Strogswan и Let’sEncrypt тип сертификата

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

Новые сертификаты выпускаются уже не RSA, а ECDSA, так что в ipsec.secrets необходимо поменять тип закрытого ключа сервера с RSA на ECDSA

Иначе ничего не заработает 🙂

И не забывайте, apparmor без настройки не даст стронгсвану прочитать сертификаты из каталогов Let’sEncrypt

Шпаргала, всякие настройки сервера с Debian 12

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

Поставить ufw и fail2ban

#apt install ufw fail2ban
#systemctl enable --now ufw
#ufw enable
#ufw allow ssh
#echo "backend = systemd" >> /etc/fail2ban/jail.d/defaults-debian.conf 
#systemctl enable --now fail2ban

Для впн-сервера разрешить routed-трафик в UFW по умолчанию (потом запретить обратно, и разрешить только нужное)

#vi /etc/default/ufw
edit
DEFAULT_FORWARD_POLICY="ACCEPT"

Перманентные статические маршруты

Настраиваются в /etc/network/interfaces

# Local network
allow-hotplug eth1
iface eth1 inet static
	address 192.168.0.100/24
	up /sbin/ip route add 192.168.1.0/24 via 192.168.0.1 dev eth1
	up /sbin/ip route add 192.168.2.0/24 via 192.168.0.1 dev eth1
	down /sbin/ip route delete 192.168.1.0/24 via 192.168.0.1 dev eth1
	down /sbin/ip route delete 192.168.2.0/24 via 192.168.0.1 dev eth1

Openconnect-vpn с AD-авторизацией в Debian 12

Отмазка: данная статья не предназначена для настройки впн с целью обхода санкций, только для подключения к офисной рабочей сети.

Исторически, мы использовали для подключения удалёнщиков OpenVPN — просто, удобно, надёжно, хотя и медленно. Когда начались всякие сложности. добавили ikev2 как резерв, и WG, в качестве site-to-site, между офисами.

Последнее время OpenVPN чаще не работает, чем работает, ikev2 — в принципе не работает через мобильные сети, да и стабильность соединение так себе. Как его не готовь, всё равно, обрывы соединения будут.
WG как способ подключения пользователей вообще не катит — никакой авторизации кроме ключей, маршрутизации нет как класс (а у нас сложная сетка в офисе) и т.д. и т.п. Ну и пользователя в одном месте не удалишь — всё остальное с доменной авторизацией работает.

В итоге, принял решение развернуть Openconnect — свободную реализацию Cisco SSL VPN.

Почему?

  • Есть клиенты подовсё 🙂 Если нет опенсёрсного клиента, есть cisco anyconnect
  • Это ssl-vpn, т.е., по сути — https, хрена заблокируешь.
  • Вполне приемлемая производительность. Нам так-то сильно много не надо, но пусть будет.
  • Авторизация в домене. Т.е. я заблокировал пользователя в одном месте, всё, он никуда не ходит.

Погнали ставить.

Отмазка два: в рамках данной статьи, только базовый функционал, тонкости и нюансы дальше

Дано: сервер, две сетевые карты: eth0 — внешняя, eth1 — локальная. Сервер не является основным шлюзом для локальной сети.
На сервере уже установлены и чуть-чуть настроены:
— ssh
— ufw (мы запретили всё лишнее, разрешили https и routed-трафик)
— fail2ban (чтобы к нам в ssh не ломились сомнительные личности)
— в /etc/network/interfaces добавлены статические маршруты к подсетям ЦО и филиалов, или настроена любимая динамическая маршрутизация.
— уже установлен мой любимый vim
— в качестве серверов dns используются серверы, обслуживающие локальный домен

Будем делать openconnect с сертификатом Let’Encrypt, доменной авторизацией

Ставим пакеты

# apt install -y ocserv realmd sssd oddjob oddjob-mkhomedir adcli samba-common krb5-user sssd-tools libnss-sss libpam-sss certbot

Обретаем сертификат

Добавляем в публичный DNS запись вида vpn.mydomain.ru A %IP-адрес-сервера-VPN%

#ufw allow http #для работы сертбота
#certbot certonly --standalone --preferred-challenges http --agree-tos --email mail@mydomain.ru -d vpn.mydomain.ru
#ufw deny http #после получения сертификата, зачем нам открытый 80-ый порт?

Если сертификат успешно получен (99% случаев), добавляем в /etc/letsencrypt/renewal/vpn.mydomain.ru.conf хуки (чтобы сертификат без проблем обновлялся):

pre_hook = ufw allow http
post_hook = ufw deny http

Цепляемся к локальному домену

#realm join mylocaldomain.local -U mydomainadmin --install=/

После успешного подключения, сначала ограничим доступ:

#systemctl enable sssd
#systemctl start sssd
#realm deny --all # По умолчанию никто не может логиниться
#realm permit -g myvpnaccessgroup@mydomain.local

Потом поправим /ect/sssd/sssd.conf (

[sssd]
domains = mydomain.local
config_file_version = 2
services = nss, pam
default_domain_suffix = mydomain.local

[domain/KVOLITEK.local]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = mydomain.local
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = mydomain.local
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = simple
simple_allow_groups = myvpnaccessgroup@mydomain.local

И перезагрузим конфигурацию sssd #systemctl restart sssd

Теперь дело за малым, сам openconnect

Он уже установлен. Настраиваем минимум конфигурации (можно больше, но для старта хватит). Файл конфигурации отлично документирован, поможет в дальнейшем. Ниже, только изменённые строки, остальное на старте просто оставляем по умолчанию:

auth = "pam" # авторизация в домене через PAM
listen-host = %realipon_eth0%
server-cert = /etc/letsencrypt/live/vpn.mydomain.ru/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.mydomain.ru/privkey.pem
max-clients = 25 # по числу сотрудников компании + 5 на случай подвисших :)
max-same-clients = 1 # иначе будет хаос и анархия
default-domain = vpn.mydomain.ru
ipv4-network = xxx.xxx.xxx.xxx/xx # диапазон, который вы решили выдать впн-клиентам
tunnel-all-dns = true # чтобы всем прилетал корпоративный ДНС
dns = xxx.xxx.xxx.xxx # адрес локального днс-1
dns = xxx.xxx.xxx.xxx # адрес локального днс-2
nbns = xxx.xxx.xxx.xxx # адрес локального wins (если надо зачем-то)
route = xxx.xxx.xxx.xxx/xx # подсети в офисе/цоде/филиалах. По одной на строку. Все, куда будут ходить впн-клиенты

Перезапускаем службу

#systemctl restart ocserv

Маршрутизация в локальной сети

Обязательно настраиваем в динамической маршрутизации или статический маршрут на каждом своём сервере в подсеть VPN (Если VPN-сервер у вас не основной шлюз)

Всё, можно пускать пользователей.

Клиентское ПО

Linux — openconnect, network-manager-openconnect, network-manager-openconnect-gnome

Windows — Openconnect-gui с гитлаба

Android/IOS — Cisco AnyConnect из соответствующего магазина приложений.

Настраиваются все одинаково, понадобится только:

  • Ссылка на сервер, вида https://vpn.mydomain.ru
  • Логин
  • Пароль