Есть ли способ ограничить количество попыток su от пользователя?
Например, злоумышленник попадает в логин пользователя, имеющего доступ su. Неоднократно запускает su, чтобы попытаться получить доступ суперпользователя.
Этот пример будет редким явлением, но все же кажется хорошей идеей добавить защиту от него.
Попытка блокировки:
Я добавил следующие строки в /etc/pam.d/su, чтобы проверить это:
auth required pam_faillock.so preauth silent audit deny=1 unlock_time=120
auth sufficient pam_unix.so nullok try_first_pass
auth [default=die] pam_faillock.so authfail audit deny=1 unlock_time=120
account required pam_faillock.so
Однако это никого не блокирует. Я наблюдал через faillock и увидел:
# faillock
user:
When Type Source Valid
root:
When Type Source Valid
2015-01-30 20:55:05 TTY pts/1 V
2015-01-30 20:55:20 TTY pts/1 V
Тем не менее, эта запись находится под root (так будет ли она заблокировать пользователя root для всех?), И эта запись не влияет на su.
Небольшой поиск в Google приводит к ссылке на эта документация:
Task: Set Maximum Number of Login Failures
The -m option is allows you to set maximum number of login failures after
the account is disabled to specific number called MAX. Selecting MAX value
of 0 has the effect of not placing a limit on the number of failed logins.
The maximum failure count should always be 0 for root to prevent a denial of
services attack against the system:
# faillog -M MAX -u username
# faillog -M 10 -u vivek
faillog
faillog -u <user> -r
faillog -u oracle -m 0
/var/log/faillog
faillog -u <user> -m -1
Однако выполнение faillog
на CentOS7. В соответствии с этот вопрос и ответ pam_tally2
заменяет faillog
команда.
deny=n
Deny access if tally for this user exceeds n.