Compare commits

...

3 Commits

Author SHA1 Message Date
e34afe876c Дополнительные команды
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 2s
2025-01-25 15:18:11 +03:00
b24d95ac83 Настройка Fail2Ban 2025-01-25 14:50:10 +03:00
0891a4dcc1 Пометки про ssh 2025-01-25 13:28:36 +03:00

View File

@@ -59,6 +59,7 @@ sudo nano /etc/ssh/sshd_config
После внесения изменений в конфиг, необходимо перезагрузить `sshd`. После внесения изменений в конфиг, необходимо перезагрузить `sshd`.
```sh ```sh
# На некоторых системах ssh вместо sshd
sudo systemctl reload sshd sudo systemctl reload sshd
``` ```
@@ -82,10 +83,15 @@ Host <host>
Port <ssh-port> Port <ssh-port>
``` ```
Можно проверить, что подключение проходит без ошибок Можно проверить, что подключение проходит без ошибок.
```sh ```sh
# Если конфиг настроен
ssh <host> ssh <host>
``` ```
```sh
# Без конфига
ssh <user>@<IPv4> -p <ssh-port>
```
## Настройка фаерволла c UFW ## Настройка фаерволла c UFW
@@ -148,8 +154,84 @@ sudo ufw status verbose
sudo ufw delete allow "Nginx Full" sudo ufw delete allow "Nginx Full"
``` ```
## Настройка Fail2Ban
[Fail2Ban](https://github.com/fail2ban/fail2ban) - базовая защита сервера от brute-force аттак.
```sh
sudo apt update
sudo apt install fail2ban
sudo systemctl enable fail2ban
```
Теперь нужно [правильно настроить Fail2Ban](https://github.com/fail2ban/fail2ban/wiki/Proper-fail2ban-configuration).
```sh
# Создаём файл с пользовательскими настройками
sudo nano /etc/fail2ban/jail.local
```
Настройка защиты SSH сервера.
```ini
[sshd]
# Единственный обязательный параметр
enabled = true
# Можно не указывать, если используется стандартный порт
port = <ssh-port>
# Пример настроек. Эти параметры можно не указывать, тогда будут использованы
# значения по умолчанию.
# Если в течении 24 часов
findtime = 86400
# произведено 3 неудачных попытки логина,
maxretry = 3
# то банить IP навсегда.
bantime = -1
```
```sh
# Применяем настройки
sudo fail2ban-client reload
```
??? tip "Дополнительные команды `fail2ban`"
```sh
# Вывести список активных jail's
sudo fail2ban-client status
# Вывести информацию по конкретному jail, в т. ч. список заблокированных IP
sudo fail2ban-client status <jail-name>
# Разблокировать IP
sudo fail2ban-client set <jail-name> unbanip <IP>
# Вывести логи fail2ban
sudo tail -f -n 100 /var/log/fail2ban.log
```
## Дополнительно
```sh
# Вывести записи о неудачных попытках входа в систему
sudo lastb | head -n 20
# Очистить записи о неудачных попытках входа в систему
sudo truncate -s 0 /var/log/btmp
# Показывает, кто в системе прямо сейчас
sudo w
# Логи попыток входа
sudo grep "Accepted password" /var/log/auth.log | tail -n 20
sudo grep "Failed password" /var/log/auth.log | tail -n 20
sudo grep "Invalid user" /var/log/auth.log | tail -n 20
```
## Полезные ссылки ## Полезные ссылки
- [Initial Server Setup with Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04) - [Initial Server Setup with Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04)
- [UFW Essentials: Common Firewall Rules and Commands](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands) - [UFW Essentials: Common Firewall Rules and Commands](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands)
- [VPS cheatsheet](https://habr.com/ru/articles/756804/) - [VPS cheatsheet](https://habr.com/ru/articles/756804/)
- [Fail2Ban](https://github.com/fail2ban/fail2ban)