SSH и PAM (блокировка учетной записи после неудачного входа через SSH)

Автор zhum, 31 Декабря 2009, 11:14

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

zhum

Доброе утро!
Имеется сервер RHEL 5.4:
# uname -a
Linux siebeltest 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux


Подключение идет через ssh:
# rpm -qa openssh
openssh-4.3p2-36.el5


Есть необходимость настроит блокировку учетной записи после 4 неудачных попыток входа через ssh.

1. Поискал в /etc/ssh/sshd_config, там не нашел нужного параметра. Видимо ssh в чистом виде не поддерживает блокировку.
2. В /etc/login.defs тоже отсутствует такой параметр блокировки.
3. Пытаюсь настроит через PAM(Pluggable Authentication Modules)
содержимое файла /etc/pam.d/sshd:
# more /etc/pam.d/sshd
#%PAM-1.0
auth    include    system-auth
auth   required    pam_tally.so   deny=4 lock_time=1800
account   required    pam_nologin.so
account   include    system-auth
password include    system-auth
session   optional    pam_keyinit.so force revoke
session   include    system-auth
session   required    pam_loginuid.so


Вторую строку я сам добавлял. Перезапустил ssh сервис /etc/init.d/sshd restart.

После чего пробовал 4 раза ввести неправильно пароль через PuTTY. В логах выдал сообщение:
# tail /var/log/secure
Dec 31 10:55:58 siebeltest sshd[5708]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Dec 31 10:56:13 siebeltest sshd[5710]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.3.7 user=test
Dec 31 10:56:13 siebeltest sshd[5710]: pam_tally(sshd:auth): user test (500) tally 11, deny 4
Dec 31 10:56:17 siebeltest sshd[5710]: Failed password for test from 10.0.3.7 port 13393 ssh2
Dec 31 10:56:44 siebeltest sshd[5710]: pam_tally(sshd:auth): user test (500) has time limit [1769s left] since last failure.
Dec 31 10:56:48 siebeltest sshd[5710]: Failed password for test from 10.0.3.7 port 13393 ssh2
Dec 31 10:56:50 siebeltest sshd[5710]: pam_tally(sshd:auth): user test (500) has time limit [1794s left] since last failure.
Dec 31 10:56:55 siebeltest sshd[5710]: Failed password for test from 10.0.3.7 port 13393 ssh2
Dec 31 10:56:58 siebeltest sshd[5710]: pam_tally(sshd:auth): user test (500) has time limit [1792s left] since last failure.
Dec 31 10:57:02 siebeltest sshd[5710]: Failed password for test from 10.0.3.7 port 13393 ssh2


И после ввел правильный пароль и зашел в систему. Аккаунт не блокировался.

Подскажите пожалуйста как это настроит правильно. Может у кого то уже работает это.

Vicpo


log

Цитата: zhum от 31 Декабря 2009, 11:14Есть необходимость настроит блокировку учетной записи после 4 неудачных попыток входа через ssh.

Fail2ban в помощь. Следит не только за SSH, но и за многими другими серверами.
Позволяет предотвратить брутфорс на ssh, а так же ssh-ddos.
Банит после N-неудачных попыток логина (настраиваемый параметр) на заданное время.
А потом, доктор, я собрал мир. Это заняло у меня 7 дней...


Zhan

на FreeBSD использую denyhost
правда он банит ip-адрес с которого некорректно логинились.
А нынешние дураки ничем не хуже своих предков..:)