Не всегда получается заточить сервер под логин с ключами и прочими кашерными настройками. На этот случай красноглазые человечки придумали анти-брутфорсеры коих великое множество, но сейчас мы поговорим о Denyhosts.
Установка
# yum install denyhosts
данная фичка уже лежит в rpmforge, так что секаса с компилингом можно не бояться
Настрой-ка
Первым делом добавим себя в белый лист, дабы не огрести при очепятках. :)
Открываем файлик /etc/hosts.allow и почётно прописываем свой IP:
sshd: xxx.xxx.xxx.xxx
После этого, идем в /etc/denyhosts/denyhosts.cfg и подгоняем конфиг примерно так:
############ THESE SETTINGS ARE REQUIRED ############
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
PURGE_DENY = 7d
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/lock/subsys/denyhosts
############ THESE SETTINGS ARE OPTIONAL ############
ADMIN_EMAIL = admin@host.com
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ##########
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
######### THESE SETTINGS ARE SPECIFIC TO ##########
######### DAEMON SYNCHRONIZATION ##########
Тут стоит обратить внимание на ADMIN_EMAIL, так как туда бубут уходить отчеты о массовых отстрелах )
Запуск
После того как вы всё настроили, остается только добавить его в автозагрузку и запустить:
# chkconfig denyhosts on
# service denyhosts start
На закуску
Если же случилось непоправимое, то останавливаем сервис и правим файлик hosts.deny
После этого идем в /usr/share/denyhosts/data/ и подчищаем свой IP в этих файлах:
1. hosts
2. hosts-restricted
3. hosts-root
4. hosts-valid
5. users-hosts
После этого добавляем себя в белый лист:
# echo ‘xxx.xxx.xxx.xxx’ >> allowed-hosts
И запускаем сервис.