Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
debian:fail2ban [07/10/2022 23:13] – [Як саме це працює?] Method | debian:fail2ban [06/12/2024 22:34] (поточний) – [SSH] Method | ||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
====== Fail2Ban ====== | ====== Fail2Ban ====== | ||
+ | Встановимо fail2ban | ||
apt install fail2ban -y | apt install fail2ban -y | ||
- | sudo cp / | + | |
- | sudo nano / | + | Збережемо оригінальні налашування (на всякий випадок) |
- | | + | |
- | | + | |
+ | |||
+ | Додамо виправлення до '/ | ||
+ | |||
+ | <code bash> | ||
+ | cat <<EOF > / | ||
+ | [DEFAULT] | ||
+ | # Destination email for action that send you an email | ||
+ | destemail = fail2ban@mydomain.example | ||
+ | |||
+ | # Sender email. Warning: not all actions take this into account. Make sure to test if you rely on this | ||
+ | sender | ||
+ | |||
+ | # Specify chain where jumps would need to be added in ban-actions expecting parameter chain | ||
+ | chain = input | ||
+ | |||
+ | # configure nftables | ||
+ | banaction = nftables-multiport | ||
+ | banaction_allports = nftables-allports | ||
+ | |||
+ | # Default action. Will block user and send you an email with whois content and log lines. | ||
+ | ## action | ||
+ | action | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | Додамо виправлення до / | ||
+ | |||
+ | <code bash> | ||
+ | cat <<EOF > / | ||
+ | [Definition] | ||
+ | allowipv6 = auto | ||
+ | #allowipv6 = yes | ||
+ | EOF | ||
+ | </ | ||
systemctl enable fail2ban | systemctl enable fail2ban | ||
+ | fail2ban-client reload | ||
+ | fail2ban-client status | ||
- | banaction = nftables-multiport | + | Створюємо каталог для конфігурації fail2ban для файрвола |
- | | + | |
+ | <code bash> | ||
+ | cat <<EOF > / | ||
+ | # | ||
- | ====== Налаштування Fail2Ban для запуску/зупинки за допомогою nftables ====== | + | # Use ip as fail2ban doesn' |
+ | table inet fail2ban { | ||
+ | chain input { | ||
+ | # Assign a high priority to reject as fast as possible and avoid more complex rule evaluation | ||
+ | type filter hook input priority 100; | ||
+ | } | ||
+ | } | ||
+ | EOF | ||
+ | </code> | ||
- | Ми намагаємося досягти наступного: | + | Додамо створений файл в оновну конфігурацію файрвола |
+ | echo " | ||
+ | Також підвантажимо його в роботу | ||
+ | nft -f / | ||
+ | |||
+ | ===== Налаштування Fail2Ban для запуску/ | ||
+ | |||
+ | Ми намагаємося досягти наступного: | ||
* під час завантаження сервер запускає спочатку nftables.service, | * під час завантаження сервер запускає спочатку nftables.service, | ||
* якщо ми запускаємо nftables.service, | * якщо ми запускаємо nftables.service, | ||
Рядок 26: | Рядок 82: | ||
mkdir -p / | mkdir -p / | ||
- | nano / | ||
- | | + | <code bash> |
- | Requires=nftables.service | + | cat <<EOF > / |
- | PartOf=nftables.service | + | [Unit] |
- | + | Requires=nftables.service | |
- | [Install] | + | PartOf=nftables.service |
- | WantedBy=multi-user.target nftables.service | + | |
+ | [Install] | ||
+ | WantedBy=multi-user.target nftables.service | ||
+ | EOF | ||
+ | </ | ||
Оскільки ми змінили розділ [Install], нам потрібно повторно ввімкнути відповідну службу, | Оскільки ми змінили розділ [Install], нам потрібно повторно ввімкнути відповідну службу, | ||
Рядок 42: | Рядок 101: | ||
# systemctl daemon-reload | # systemctl daemon-reload | ||
- | ===== Як саме це працює? | + | ==== Як саме це працює? |
У нашому файлі заміни або повному файлі конфігурації (див. нижче) ми включаємо такі параметри: | У нашому файлі заміни або повному файлі конфігурації (див. нижче) ми включаємо такі параметри: | ||
Рядок 54: | Рядок 113: | ||
WantedBy=multi-user.target nftables.service " | WantedBy=multi-user.target nftables.service " | ||
</ | </ | ||
- | Як бачите, | + | Як бачите, |
+ | |||
+ | ===== Блокувальники ===== | ||
+ | |||
+ | Після додавання або видалення блокувальниуів необхідно перезавантажити fail2ban | ||
+ | |||
+ | fail2ban-client reload | ||
+ | |||
+ | Також можна переглянути статус fail2ban | ||
+ | |||
+ | fail2ban-client status | ||
+ | |||
+ | ==== Рецедив ==== | ||
+ | |||
+ | Повторно блокує по всіх портах іп адреси які раніше вже блокувались по іншим блокувальникам | ||
+ | |||
+ | <code bash> | ||
+ | cat <<EOF > / | ||
+ | # Jail for more extended banning of persistent abusers | ||
+ | # !!! WARNINGS !!! | ||
+ | # 1. Make sure that your loglevel specified in fail2ban.conf/ | ||
+ | # is not at DEBUG level -- which might then cause fail2ban to fall into | ||
+ | # an infinite loop constantly feeding itself with non-informative lines | ||
+ | # 2. If you increase bantime, you must increase value of dbpurgeage | ||
+ | # to maintain entries for failed logins for sufficient amount of time. | ||
+ | # The default is defined in fail2ban.conf and you can override it in fail2ban.local | ||
+ | # | ||
+ | # Manages the fail2ban history for hosts repeatedly banned by Fail2Ban and bans them | ||
+ | # according to the settings defined | ||
+ | # | ||
+ | |||
+ | [recidive] | ||
+ | enabled | ||
+ | logpath | ||
+ | banaction = nftables-allports | ||
+ | backend | ||
+ | bantime | ||
+ | findtime | ||
+ | maxretry | ||
+ | protocol | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | ==== SSH ==== | ||
+ | |||
+ | Вмикаємо блокувальник ssh. Оскільки всі значення стандартні то файл простий | ||
+ | |||
+ | <code bash> | ||
+ | cat <<EOF > / | ||
+ | [sshd] | ||
+ | enabled | ||
+ | backend | ||
+ | EOF | ||
+ | </ | ||
+ | |||