Fail2ban

Fail2ban — простой в использовании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует по IP найденных нарушителей.

Установка

Данная инструкция написана для ОС семейства Debian.

Этот пакет есть в репозитории, и базовая установка очень проста:

sudo apt-get install fail2ban

По умолчанию защита от брутфорса для SSH включена.

Основная идея Fail2ban — при превышении заданного числа неудачных вводов пароля подряд (по умолчанию — 6) бан IP, с которого были попытки подбора на заданное время (по умолчанию — 600 секунд).

Настройка

Параметры можно посмотреть и поменять в файле /etc/fail2ban/jail.conf. Существующие фильтры (т.е. правила, по которым определяется неудачная попытка ввода пароля) лежат в директории /etc/fail2ban/filter.d (можно их править или на их основе делать свои фильтры), а существующие правила реагирования — в директории /etc/fail2ban/action.d. Все файлы довольно хорошо откомментированы.

Ниже приведено несколько примеров конфигурации /etc/fail2ban/jail.conf.

Удалённый доступ

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 3

Пример конфигурации для веб-сервера nginx

Создаем правило для бана неудачных попыток подбора доступа к не существующим ресурсам nano /etc/fail2ban/jail.d/nginx-404.conf

[nginx-404]

enabled  = true
port     = http,https
filter   = nginx-404
action   = iptables-allports
logpath  = %(nginx_access_log)s
bantime  = 7d
findtime = 10m
maxretry = 3

Создаем фильтр для нашего правила nano /etc/fail2ban/filter.d/nginx-404.conf

[Definition]

failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 404

ignoreregex = 

datepattern = {^LN-BEG}

В конце всех настроек не забываем перезапустить службу для применения изменений в конфигурации systemctl restart fail2ban.service.

Дабы исключить возможность самому попасть в бан советую добавить в белый список свой IP адрес в конфигурационном файле /etc/fail2ban/jail.conf

# "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban
# will not ban a host which matches an address in this list. Several addresses
# can be defined using space (and/or comma) separator.

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24

Шпаргалки по dotnet

Собрать и опубликовать проект под Linux:

  • сборка проекта: dotnet build «D:\Path_to_project\Project_name»
  • опубликовать проект: dotnet publish «D:\Path_to_project\Project_name» —configuration Release —framework net5.0 —output «путь к каталогу, в который опубликуется проект» —self-contained false —runtime linux-x64 —verbosity quiet

Настройки Keenetic EXTRA

Командная строка

Командная строка в веб-интерфейсе по адресу http://my.keenetic.net/a

Команда добавления доменного имени и адреса в таблицу DNS

ip host «domain» «address» — добавление записи
no ip host «domain» «address» — удаление записи

Внесенные изменения храняться до перезагрузки устройства.

Команда сохранения настроек

system configuration save — сохранение настроек до обновления прошивки устройства.