Compare commits

...

22 Commits

Author SHA1 Message Date
TheSt1tch 7cde0d8820 update docker version 7 days ago
TheSt1tch 93fd9a5778 add oidc-login 1 week ago
TheSt1tch 5fe604ff0b clean canonical "q" 1 week ago
TheSt1tch d1e527ac6e add picture
continuous-integration/drone/push Build is passing Details
2 months ago
TheSt1tch d257ecaca3 add btop
continuous-integration/drone/push Build is passing Details
2 months ago
TheSt1tch cb2b67b4ed add wirenboard
continuous-integration/drone/push Build is passing Details
2 months ago
TheSt1tch 297f2b9886 add change-id
continuous-integration/drone/push Build is passing Details
2 months ago
TheSt1tch 619e692280 add google analytics
continuous-integration/drone/push Build is passing Details
3 months ago
TheSt1tch 2b36b12528 add mariadb
continuous-integration/drone/push Build is passing Details
4 months ago
TheSt1tch e8998d8d0e проблемы призмы
continuous-integration/drone/push Build is passing Details
4 months ago
TheSt1tch de8735039d fix
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch 634a37a594 add disk vm
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch d999b77188 fix page
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch 193087ba7a add secure linux 5 months ago
TheSt1tch 9d0bff8ea1 add helpfull links 5 months ago
TheSt1tch b990a80182 fix
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch 06bdcf1237 fix
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch 24619b7a1b add disable apparmor
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch 30b154c8ec add locale russian
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch bbb783228e fix
continuous-integration/drone/push Build is passing Details
5 months ago
TheSt1tch 3bd9e53841 update
continuous-integration/drone/push Build is passing Details
5 months ago
thest1tch 715627d6b8 Merge pull request 'states/2024.07' (#18) from states/2024.07 into main
Reviewed-on: #18
5 months ago

@ -26,7 +26,8 @@
## 🔧 Установка ## 🔧 Установка
Requirements: Требования:
- [Docker](https://docs.docker.com/engine/install/) 20+ / Podman - [Docker](https://docs.docker.com/engine/install/) 20+ / Podman
- (Podman only) podman-docker (Debian: `apt install podman-docker`) - (Podman only) podman-docker (Debian: `apt install podman-docker`)
- OS: - OS:
@ -99,7 +100,6 @@ docker compose pull && docker compose up -d
![](https://github.com/louislam/dockge/assets/1336778/e7ff0222-af2e-405c-b533-4eab04791b40) ![](https://github.com/louislam/dockge/assets/1336778/e7ff0222-af2e-405c-b533-4eab04791b40)
![](https://github.com/louislam/dockge/assets/1336778/7139e88c-77ed-4d45-96e3-00b66d36d871) ![](https://github.com/louislam/dockge/assets/1336778/7139e88c-77ed-4d45-96e3-00b66d36d871)
![](https://github.com/louislam/dockge/assets/1336778/f019944c-0e87-405b-a1b8-625b35de1eeb) ![](https://github.com/louislam/dockge/assets/1336778/f019944c-0e87-405b-a1b8-625b35de1eeb)

@ -0,0 +1,23 @@
# MariaDB
```yaml
services:
mariadb:
container_name: mariadb
image: mariadb:latest #11.5.2
restart: unless-stopped
stop_grace_period: 5s
security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239
- seccomp:unconfined
- apparmor:unconfined
command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "./database:/var/lib/mysql"
environment:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_INITDB_SKIP_TZINFO: "1"
MARIADB_DATABASE: "name_db"
MARIADB_USER: "username"
MARIADB_PASSWORD: "pass_user"
MARIADB_ROOT_PASSWORD: "root_pass"
```

@ -0,0 +1,12 @@
# OIDC логин через Authentik
Добавил авторизацию через Authentik, но потребовалось сделать так, чтобы формы входа не было. Чтобы сразу шел редирект на страницу авторизации Authentik.
Для этого нужно выолпнить команду (nextcloud в докере):
```
docker exec -ti --user 1000 nextcloud_app php occ config:app:set --value=0 user_oidc allow_multiple_user_backends
```
где `nextcloud_app` - имя контейнера
Применимо только для приложения nextcloud: **user_oidc** (https://github.com/nextcloud/user_oidc)

@ -132,3 +132,19 @@ PHOTOPRISM_SITE_URL=http://site.name # URL сайта, для доступа
MARIADB_ROOT_PASSWORD=strong-password # Пароль root от БД mariadb MARIADB_ROOT_PASSWORD=strong-password # Пароль root от БД mariadb
MARIADB_PASSWORD=strong-password1 # Пароль от юзера photoprism БД MARIADB_PASSWORD=strong-password1 # Пароль от юзера photoprism БД
``` ```
## Проблемы
Если после обновления, пропали фотки. Или идет цикличная загрузка по кругу, то лучше всего снести БД и восстановится на чистую.
Порядок действий таков:
1. Сносим текущую БД
2. Ставим новую БД с настройками старой
3. Перезапускаем призму
4. В терминале вводим: `docker compose exec photoprism photoprism restore -i`
Должно получится.
Можно и без команды, но тогда не вернутся текущие фотки.

@ -15,8 +15,6 @@
## Установка через docker-compose ## Установка через docker-compose
```yaml ```yaml
version: "3.7"
services: services:
plextraktsync: plextraktsync:
image: ghcr.io/taxel/plextraktsync image: ghcr.io/taxel/plextraktsync
@ -31,7 +29,7 @@ services:
command: sync command: sync
``` ```
Запустить синхронизацию: `docker-compose run --rm plextraktsync sync` Запустить синхронизацию: `docker compose run --rm plextraktsync sync`
Для запуска автоматически по расписанию можно использовать crontab или sheduler: Для запуска автоматически по расписанию можно использовать crontab или sheduler:

@ -23,6 +23,7 @@ Prowlarr — это менеджер индексаторов и прокси,
С Prowlarr у вас будет одно место для управления всеми индексаторами всех ваших приложений Arr. Это отличная замена [Jackett](./jackett.md). С Prowlarr у вас будет одно место для управления всеми индексаторами всех ваших приложений Arr. Это отличная замена [Jackett](./jackett.md).
```yaml title="docker-compose.yml" ```yaml title="docker-compose.yml"
services: services:
prowlarr: prowlarr:
image: lscr.io/linuxserver/prowlarr:latest image: lscr.io/linuxserver/prowlarr:latest

@ -247,10 +247,12 @@ networks:
!!! warning "Внимание" !!! warning "Внимание"
никогда не открывайте порт 2375 для доступа в Интернет. Вас взломают/ Это еще более важно для виртуальных частных серверов, которые обычно предоставляют доступ ко всем портам. Включите брандмауэр, чтобы разрешить только порты 80 и 443 (и заблокировать остальные) для прохождения на ваш сервер, а также реализовать обходной путь Docker IP Tables, описанный далее в этом руководстве.
Никогда не открывайте порт 2375 для доступа в Интернет. Вас взломают. Это еще более важно для виртуальных частных серверов, которые обычно предоставляют доступ ко всем портам. Включите брандмауэр, чтобы разрешить только порты 80 и 443 (и заблокировать остальные) для прохождения на ваш сервер, а также реализовать обходной путь Docker IP Tables, описанный далее в этом руководстве.
!!! note !!! note
Кроме того, порт `2375` должен быть открыт только для внутренней сети (*127.0.0.1:2375*).
Кроме того, порт `2375` должен быть открыт только для внутренней сети (*127.0.0.1:2375*).
В блоке **environment:** указываем раздел Docker API, который хотим открыть или закрыть. Я добавил комментарии, чтобы описать, какие службы требуют каких разделов API. Например, если вы не используете WatchTower, вы можете ввести **0** для нескольких разделов API. В блоке **environment:** указываем раздел Docker API, который хотим открыть или закрыть. Я добавил комментарии, чтобы описать, какие службы требуют каких разделов API. Например, если вы не используете WatchTower, вы можете ввести **0** для нескольких разделов API.

@ -0,0 +1,4 @@
# Полезные ресурсы
[HTPasswd Generator](https://www.web2generators.com/apache-tools/htpasswd-generator)

@ -0,0 +1,84 @@
# Proxmox VE, проброс физического HDD в виртуальную машину
Периодически так бывает, что нужно подключить к виртуальной машине дополнительный физический диск. Долго расписывать не буду что и как.
Все решается 1 командой на ноде Proxmox VE:
```bash
qm set <vm_id> -[virtio|sata|ide|scsi][№] [/dev/disk/by-id|/dev/disk/by-uuid]
```
где:
* `vm_id` - номер виртуальной машины (в интерфейсе Proxmox указывается перед именем VM)
* `virtio|sata|ide|scsi` - допустимый тип и номер HDD интерфейса
* `/dev/disk/by-id|/dev/disk/by-uuid` - пробрасываемою физическое устройство
# ID и UUID
Возникает вопрос: где же взять путь `/dev/disk/by-id` или `/dev/disk/by-uuid`.
Все просто, чтобы вывести UUID диска, нужно выполнить:
```bash
blkid /dev/sdb1
```
Так же, можно проверить, есть ли диск в директории /by-uuid:
```bash
ls /dev/disk/by-uuid/
```
Если диска нет, то можно использовать его ID. Чтобы получить идентификатор (серийный номер диска) выполните:
```bash
lshw -class disk -class storage
```
Скопируйте значение serial. Например, *Serial: QP8516N*
Выведите идентификаторы диска и разделов на нем по его серийному номеру:
```bash
ls -l /dev/disk/by-id | grep QP8516N
```
# Команда
Итого. Чтобы пробросить диск по ID, выполняем команду:
```bash
qm set 100 -virtio2 /dev/disk/by-id/scsi-36003005700ba2e00ff00002a02aec9e8
```
А для UUID:
```bash
qm set 100 -virtio2 /dev/disk/by-uuid/0b56138b-6124-4ec4-a7a3-7c503516a65c
```
Проверить, что диск подключился можно в веб-интерфейсе Proxmox, на вкладке Hardware виртуалки или проверив конфигурационный файл ВМ:
```bash
cat /etc/pve/qemu-server/100.conf
```
# Проверка
Должно появится строка вида
```bash
virtio0: volume=/dev/disk/by-uuid/0b56138b-6124-4ec4-a7a3-7c503516a65c
```
или
```bash
sata0: volume=/dev/disk/by-uuid/0b56138b-6124-4ec4-a7a3-7c503516a65c
```
---
Можно почитать [тут](https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM)#Check_Configuration_File)

@ -1,2 +1,3 @@
User-agent: * User-agent: *
Sitemap: https://st1t.ru/sitemap.xml Sitemap: https://st1t.ru/sitemap.xml
Clean-param: q

@ -14,6 +14,9 @@ https://wirenboard.com/wiki/Wiren_Board_7.4
timedatectl set-timezone Asia/Yekaterinburg timedatectl set-timezone Asia/Yekaterinburg
``` ```
https://github.com/4mr/wb-engine
## Новое устройство для Modbus ## Новое устройство для Modbus
Первым делом, увеличиваем скорость работы. Со стандартных 9600 на 115200, что соответствует "быстрому modbus" Первым делом, увеличиваем скорость работы. Со стандартных 9600 на 115200, что соответствует "быстрому modbus"
@ -32,3 +35,19 @@ systemctl start wb-mqtt-serial
- `/dev/ttyRS485-2` - через какой интерфейс подключаемся - `/dev/ttyRS485-2` - через какой интерфейс подключаемся
- `-r110 1152` - записываем в регистр **110** значение скорости *115200* - `-r110 1152` - записываем в регистр **110** значение скорости *115200*
## Смена ID-адреса у устройства
Останавливаем службу `wb-mqtt-serial`. Затем выставляем новый адрес и запускаем службу обратно.
Идентификацию делаем по серийноу номеру:
```
systemctl stop wb-mqtt-serial
wb-modbus-scanner -d /dev/ttyRS485-2 -b 115200 -s 174072 -i 51 - сменить адрес у устройства с SN=174072
systemctl start wb-mqtt-serial
```
Разберем 2 строчку подробнее:
- `-b 115200` - текущая скорость работы
- `-s 174072` - серийник устройства
- `/dev/ttyRS485-2` - через какой интерфейс подключаемся
- `-i 51` - новый адрес

@ -0,0 +1,35 @@
# Подключение и настройка термостата Hessway.
Купил себе в дом термостат Hessway c управлением по RS-485 (Modbus). С установкой правда возникли сложности, тк Wirenboard отказывался самостоятельно находить устройство.
Для начала физическое подключение. Шина RS подключается по 2 проводам, на термостате красный и белый. **В большинстве случаев A=красный, B=белый. Но это же китайцы, может быть и по другому.**
Параметры подключения RS-485 с завода:
- Baud rate — 9600 бит/с,
- Parity — None,
- Data bits — 8,
- Stop bits — 1.
Но даже с этими параметрами, не находит. Поэтому будет прописывать вручную. С завода, у термостата адрес 1. Его можно поменять через меню:
1. Выключите термостат нажатием на кнопку ON/OFF.
2. Зажмите одновременно кнопки M и Clock на 5 секунд — термостат войдет в сервисный режим.
3. Кратким нажатием на кнопку M выберите параметр C.
4. Кнопками вверх ↑ и вниз ↓ установите новый адрес термостата.
5. После установки адреса подождите 5 секунд, термостат применит новые настройки и выйдет из сервисного режима.
6. Включите термостат нажатием на кнопку ON/OFF.
Далее вручную прописываем на нужном порту эти настройки и привязываем к шаблону: BHT-002GBLN (Скачать можно по ссылке: https://support.wirenboard.com/uploads/short-url/oBLAAEHVntr3mGnoplxGsgTgMEp.json)
После все должно заработать.
## Не нашлось или хз
Можно попробовать перебрать адреса на порту:
```
systemctl stop wb-mqtt-serial
for i in {1..255}; do echo -n "$i - "; D=`modbus_client -mrtu /dev/ttyRS485-2 --debug -b9600 -pnone -s2 -a$i -t3 -o400 -r0 -c1 2>/dev/null | grep Data:`; echo -e $D; done
systemctl start wb-mqtt-serial
```

@ -0,0 +1,71 @@
# Русский язык для консоли Ubuntu
**Локаль (locale)** — это файл, который содержит таблицу с указанием того, какие символы считать буквами, и как их следует сортировать. Операционная система использует эту таблицу для отображения букв определенного национального алфавита.
После установки чистой системы Linux Ubuntu или Debian, если не был выбран русский ввод и вывод, то их надо установить.
Для начала проверяем, какая локаль установлена:
```
locale
```
Если вывод команды такой:
```
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
```
То нужно настроить локаль.
Выполним команду:
```
dpkg-reconfigure locales
```
Откроется диалоговое окно, в котором необходимо установить нужное значение региональных настроек (локали).
Выбираем: `ru_RU.UTF-8 UTF-8`
Установим пакет `console-cyrillic`:
```
sudo apt install console-cyrillic
```
Далее необходимо перезагрузить систему командой:
```
reboot
```
После загрузки системы выполним команду:
```
locale
```
В результате должен быть вывод:
```
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
```

@ -0,0 +1,16 @@
# ![btop++](https://github.com/aristocratos/btop/raw/main/Img/logo.png)
[![](https://img.shields.io/github/stars/aristocratos/btop?label=%E2%AD%90%20Stars&style=flat-square)](https://github.com/aristocratos/btop)
[![](https://img.shields.io/github/v/release/aristocratos/btop?label=%F0%9F%9A%80%20Release&style=flat-square)](https://github.com/aristocratos/btop/releases/latest)
Удобная тулза для мониторинга ресурсов на различных ОС. Есть поддержка видеокарт. Отображение в терминале.
Для установки на убунту необходимо скачать пакет через apt:
```
sudo apt update
sudo apt install btop
```
# ![](https://github.com/aristocratos/btop/raw/main/Img/normal.png)

@ -0,0 +1,40 @@
# Отключение AppArmor в Ubuntu
**AppArmor** — это модуль безопасности для **Ubuntu** и **Debian** , который применяет политики контроля доступа к приложениям. В определенных средах эти ограничения могут мешать определенным операциям или требовать корректировки. Отключение **AppArmor** может потребоваться для обеспечения совместимости с определенными приложениями или конфигурациями.
В системах, где гибкость имеет решающее значение, например, в средах разработки, может потребоваться отключение или удаление AppArmor. __Этот процесс включает остановку службы, отключение ее запуска при загрузке и удаление пакета AppArmor__ и его зависимостей. Важно понимать последствия для безопасности, поскольку отключение AppArmor снижает защиту системы.
Обычно рекомендуется держать AppArmor включенным в производственных средах. Однако, если ситуация требует этого, отключение AppArmor следует выполнять с осторожностью. Имейте в виду, что некоторые пакеты, такие как snapd , могут переустановить AppArmor при удалении.
## Действия по отключению и удалению AppArmor в Ubuntu и Debian:
1. Откройте терминал в вашей системе.
2. Остановите службу AppArmor .
```
sudo systemctl stop apparmor
```
3. Отключить запуск AppArmor при загрузке.
```
sudo systemctl disable apparmor
Synchronizing state of apparmor.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable apparmor
Removed "/etc/systemd/system/sysinit.target.wants/apparmor.service".
```
4. При необходимости удалите пакет AppArmor и его зависимости.
```
sudo apt remove --assume-yes --purge apparmor
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
apparmor* snapd*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 122 MB disk space will be freed.
##### snipped
```
!!! tip
Это также удалит snapd . Продолжайте, только если вы не используете snapd для управления пакетами. Переустановка snapd также установит AppArmor как зависимость.

@ -0,0 +1,130 @@
# Защита Linux
## Юзер без прав рута
Длоя начала, сделаем себе юзера, у которого не будет прав рута. Root имеет полные права в системе и если разрешать для него удаленное администрирование, то это будет не безопасно.
Новый пользователь создается командой [`adduser`](https://manpages.ubuntu.com/manpages/oracular/en/man8/adduser.8.html), во время создания вводится имя пользователя, устанавливается пароль. По умолчанию, команда `adduser` выберет первый доступный UID из диапазона обычных пользователей, заданного в файле настройки. UID может быть изменён с помощью параметра `--uid`.
```bash
adduser user1
```
После, добавим созданного пользователя в группу, которая имеет право выполнять команды с повышением привилегий `sudo`. В различных дистрибутивах это могут быть разные команды:
=== "CentOS и Red Hat"
```bash
usermod -aG wheel <username>
```
=== "Ubuntu"
```bash
usermod -aG sudo <username>
```
## SSH Ключи вместо паролей
Пароли это конечно хорошо, но в случае утечки - это вектор атаки. Так же, не забываем, что пароль всегда можно подобрать через брутфорс. Если брутфорс можно отсеить через fail2ban, то как быть с утечкой? Все просто - можно вместо паролей использовать аутентификацию по ключам.
Рассмотрим самую популярную реализации протокола SSH - OpenSSH
=== "Клиентская"
```bash
sudo apt install openssh-client
```
=== "Серверная"
```bash
# Установка на сервере
sudo apt install openssh-server
#Запуск демона SSH (sshd) на сервере под Ubuntu
sudo systemctl start sshd
#
Автоматический запуск демона при каждой загрузке
sudo systemctl enable sshd
```
!!! tip
Замечу, что серверная часть OpenSSH включает в себя клиентскую. То есть через openssh-server можно подключаться к другим серверам.
Нет смысла на обычном пк, не являющимся сервером, ставить полноценный сервер OpenSSH - это только даст возможность удалённого подключения к компьютеру (кроме случаев когда это дейсвтительно нужно)
После того, как OpenSSH поставлен, нужно сгенерировать ключи SSH на компьютере, с которого вы будете заходить на сервер:
```bash
ssh-keygen -t rsa
```
Публичный ключ хранится в файле `.pub` и выглядит как строка случайных символов, которые начинаются с `ssh-rsa`.
```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
```
Затем нужно из-под рута создать на сервере директорию SSH в домашнем каталоге пользователя и добавить публичный ключ SSH в файл authorized_keys, используя текстовый редактор вроде nano:
```bash
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
nano /home/user_name/.ssh/authorized_keys
```
После устанавливаем корректные разрешения для файла и меняем владельца:
```bash
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
chown -R username:username /home/username/.ssh
```
На стороне клиента указываем местоположение секретного ключа для аутентификации:
```bash
ssh-add DIR_PATH/keylocation
```
Теперь можно залогиниться на сервер под именем юзера по этому ключу:
```bash
ssh [username]@hostname
```
!!! warning
Настоятельно рекомендую сделать несколько резервных копий приватного ключа. Так как если авторизация по паролю будет отключена, а приватный ключ утерян, то для того чтобы войти на сервер, нужен будет или прямой доступ к клавиатуре или KVM консоль.
По умолчанию, в Убунте отключен вход через ssh под рутом, но в Debian и других ОС нет. Чтобы отключить, нужно в файле `/etc/ssh/sshd_config` найти строчку `PermitRootLogin yes` и изменить значение на `no`.
После, можно отключить авторизацию пользователя по паролю. Для этого все в том же файле `/etc/ssh/sshd_config` меняем параметр у строки `PasswordAuthentication` yes на `no`.
## Fail2Ban
Ранее, я уже уопминал про защиту от брутфорса, используя Fail2Ban. Fail2Ban - это сервис, который анализирует логи и считает количество авторизаций за период времени с каждого IP адреса. К примеру, можно блокировать доступ к серверу, если за последний час было 5 проваленных авторизаций.
Установка обычная, через пакет:
```bash
sudo apt install fail2ban
systemctl start fail2ban
systemctl enable fail2ban
```
У сервиса есть 2 конфига: `/etc/fail2ban/fail2ban.conf` и `/etc/fail2ban/jail.conf`. Параметры ограничений указываются во втором файле:
```text
[DEFAULT]
ignorecommand =
bantime = 10m
findtime = 10m
maxretry = 5
```
## Смена портов по умолчанию
По умолчанию, SSH работает на 22 порту и если не стоит fail2ban, а сервер смотрит в интернет, то в логах начнут попадатся брутфорс. Даже с учетом отключенной авторизации через пароли. Чтобы лишний раз не триггерить сканеры, рекоменудю сменить порт у SSH на любой другой.
Сделать это можно в файле `/etc/ssh/sshd_config` в параметре `Port 22`
Чтобы подключиться к серверу через кастомный порт, используется команда вида:
```
ssh server -p port
```

@ -39,6 +39,7 @@ nav:
- Cron: docker/nextcloud/cron.md - Cron: docker/nextcloud/cron.md
- Проблемы с data: docker/nextcloud/problems-after-moving-data-folder.md - Проблемы с data: docker/nextcloud/problems-after-moving-data-folder.md
- OCC: docker/nextcloud/occ-files-scan.md - OCC: docker/nextcloud/occ-files-scan.md
- OIDC-login: docker/nextcloud/oidc-login.md
- Photoprism: docker/photoprism.md - Photoprism: docker/photoprism.md
- Pictshare: docker/pictshare.md - Pictshare: docker/pictshare.md
- Plex: - Plex:
@ -76,6 +77,9 @@ nav:
- Использование Proxy: ubuntu/proxy-system.md - Использование Proxy: ubuntu/proxy-system.md
- Watchdog: ubuntu/watchdog.md - Watchdog: ubuntu/watchdog.md
- Обновление дистрибутива: ubuntu/upgrade-dist.md - Обновление дистрибутива: ubuntu/upgrade-dist.md
- Русский язык в консоли: ubuntu/add-locale-russian.md
- Отключение AppArmor: ubuntu/disable-apparmor.md
- Защита Linux: ubuntu/secure-linux.md
- Backup: - Backup:
- Google Диск: ubuntu/backup/google.md - Google Диск: ubuntu/backup/google.md
- Yandex: ubuntu/backup/yandex.md - Yandex: ubuntu/backup/yandex.md
@ -90,6 +94,7 @@ nav:
- HPE: - HPE:
- Management Component Pack: ubuntu/hpe/hpe-mcp.md - Management Component Pack: ubuntu/hpe/hpe-mcp.md
- NCDU: ubuntu/ncdu.md - NCDU: ubuntu/ncdu.md
- btop: ubuntu/btop.md
- ctop: ubuntu/ctop.md - ctop: ubuntu/ctop.md
- Software: - Software:
- Powershell: - Powershell:
@ -155,6 +160,7 @@ nav:
- proxmox/index.md - proxmox/index.md
- CT Template: proxmox/ct-template.md - CT Template: proxmox/ct-template.md
- Nvidia LXC: proxmox/nvidia-lxc.md - Nvidia LXC: proxmox/nvidia-lxc.md
- Добавление диска к VM: proxmox/add-disk-vm.md
- Умный дом: - Умный дом:
- Home Assistant: - Home Assistant:
- Установка на Debian: smart-home/hass/install-hass-debian.md - Установка на Debian: smart-home/hass/install-hass-debian.md
@ -171,6 +177,7 @@ nav:
- Wirenboard: - Wirenboard:
- Новый контроллер: smart-home/wirenboard/new-controller.md - Новый контроллер: smart-home/wirenboard/new-controller.md
- Другое: - Другое:
- Полезные ресурсы: other/helpfull-links.md
- Закрыть фишинговый сайт: other/close-phishing-site.md - Закрыть фишинговый сайт: other/close-phishing-site.md
- SSL для сайта: other/ssl-for-site.md - SSL для сайта: other/ssl-for-site.md
- Self Hosted: other/self-hosted.md - Self Hosted: other/self-hosted.md
@ -304,4 +311,9 @@ markdown_extensions:
- pymdownx.superfences # allows for the nesting of code blocks inside other blocks - pymdownx.superfences # allows for the nesting of code blocks inside other blocks
- pymdownx.keys - pymdownx.keys
extra:
analytics:
provider: google
property: G-E6GYT2D13K
copyright: 2024 &copy; TheSt1tch - Licensed under GPLv3 copyright: 2024 &copy; TheSt1tch - Licensed under GPLv3
Loading…
Cancel
Save