RuWeb.net Forum

Ограничение кол-ва логинов по ssh
kpv - 4.3.2011 в 23:04

Набор скриптов, которые помогут блокировать грубый перебор паролей к ssh.
Главная страница программы, которую мы будем использовать для предотвращения множественных неудачных попыток входа по ssh (и многим другим протоколам) с одного ip-адреса:
http://www.fail2ban.org/wiki/index.php/Main_Page
устанавливаем

Цитата:

cd /usr/ports/security/py-fail2ban
make;make install


# Конфигурационные файлы хранятся в каталоге /usr/local/etc/fail2ban

1) {# fail2ban.conf
# Здесь можно укозать уровень подробности журнала, файл журнала и файл сокета:
[Definition]
# Notes.: Set the log level output.
# 1 = ERROR
# 2 = WARN
# 3 = INFO
# 4 = DEBUG
loglevel = 4
logtarget = /var/log/fail2ban.log
socket = /var/run/fail2ban/fail2ban.sock
}

2) {# jail.conf
/etc/fail2ban/jail.conf
# общие для всех разделов параметры
[DEFAULT]
# адреса, которые никогда не будут запрещены.
ignoreip = 127.0.0.1
# время запрета (в секундах) на повторные подключения
bantime = 600
# время (в секундах) за которое просматривается журнал на наличие maxretry записей о попытках для блокировки нападающего
findtime = 600
# максимальное кол-во неудачных попыток за время "findtime", после которого применяется действие из раздела "action"
maxretry = 3
# автоматический выбор механизма сканирования лог-файлов
backend = auto

# описание действия ipfw на попытки получить доступ к ssh:
[ssh-ipfw]
# значение параметров в каждом конкретном jail приоритетнее аналогичного значения в секции "[DEFAULT]"
# эта секция включена
enabled = true
# использыется фильтр событий sshd (filter.d/sshd.conf)
filter = sshd
# используется действие ipfw (action.d/ipfw.conf)
action = ipfw[localhost=moyserver.ru]
# высылается на почту информация из whois о заблокированном хосте
sendmail-whois[name="SSH", dest=moy_address@moyserver.ru, sender=fail2ban@moyserver.ru]
# просматриваемый журнал
logpath = /var/log/auth.log
# Можно использовать другйо журнал:
logpath = /var/log/messages
# максимальное кол-во неудачных попыток за время "findtime", после которого применяется действие из раздела "action"
maxretry = 4
# адреса, которые никогда не будут запрещены дл ssh-доступа к этому серверу (полезно для указания адреса, с которого вы постоянно администрируете сервер)
ignoreip = 192.168.1.1
}

3) {# filter.d/sshd.conf
Этот файл содержит регулярные выражения, с помощью которых и выявляются неудачные попытки плучить доступ к вашему серверу.
# выражения, актуальные для вашего сервера (/var/log/auth.log FreeBSD 7.0)
# эта строка появляется 1 раз за 1 попытку подключения (обычно включает в себя 3 попытки ввода пароля):
^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>s*$

# если нужно, чтобы срабатывало на каждую попытку ввода пароля (3 попытки обычно на одно подключение),
# то раскомментируйте одну из этих строк:
^%(__prefix_line)s(?:error: PAM: )?authentication error for illegal user .* from <HOST>s*$
^%(__prefix_line)sFailed keyboard-interactive/pam for invalid user .* from <HOST> port .* ssh2$
}

4){# action.d/ipfw.conf
[Definition]
# при старте службы выполняется команда, запрещающая доступ к 22 порту адресам из таблицы 22 первым правилом файрвола
actionstart = ipfw add 1 deny ip from table(22) to me 22
# при остановке службы правило удаляется
actionstop = ipfw delete 1

# можно добавить проверку, которая будет выполняться перед каждым действием по блокировке атакующего здесь
# actioncheck =

# Переменные, которые можно использовать в командах:
# <ip> IP address
# <failures> number of failures
# <time> unix timestamp of the ban time
# команда по блокировке атакующего (добавляем в таблицу 22 его адрес)
actionban = ipfw table 22 add <ip>
# команда по разблокировке атакующего (удаляем его адрес из таблицы 22)
actionunban = ipfw table 22 delete <ip>

# здесь можно задать начальные значения параметров, если они не передан из фильтра:
[Init]
localhost = 192.168.1.1 192.168.2.1
port = ssh
}
# Запуск и остановка службы:
добавляем строчку в rc.conf
echo fail2ban_enable="YES" >>rc.conf
/usr/local/etc/rc.d/fail2ban start

или
Usage: fail2ban [fast|force|one](start|stop|restart|rcvar|reload|jailstatus|status|poll)

# Файл лога:
/var/log/fail2ban.log


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



[Отредактировано 4.3.2011 кто kpv]

[Отредактировано 4.3.2011 кто kpv]


Goreeva - 24.11.2018 в 12:43

хорошо, так и сделаю