Назад | Перейти на главную страницу

fail2ban и ssh не работают

Я настроил ssh только с портом 2122 и pubkey. Я обеспечен, но хочу еще больше запретить ламерам, которые пробуют брутфорс-авторизацию.

Моя конфигурация fail2ban

jail.local

[INCLUDES]
before = paths-slackware.conf
[DEFAULT]
ignoreip = 127.0.0.1/8
ignorecommand =
bantime  = 10800
findtime  = 600
maxretry = 3
backend = auto
usedns = warn
logencoding = auto
enabled = true
filter = %(__name__)s
destemail = root@localhost
sender = root@localhost
mta = mail
protocol = tcp
chain = INPUT
port = 0:65535
fail2ban_agent = Fail2Ban/%(fail2ban_version)s
banaction = iptables-multiport
banaction_allports = iptables-allports
action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
            %(mta)s-whois[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
             %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
             xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]
action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
                %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
action_blocklist_de  = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]
action_badips = badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]
action_badips_report = badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]
action = %(action_)s
[ssh]
enabled  = true
port     = 22
filter   = sshd
logpath  = /var/log/messages
maxretry = 3
findtime = 10800
bantime = 21600
[apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/chroothttp/var/log/httpd/error_log
maxretry = 3
findtime = 10800
bantime = 21600

Apache работает отлично, я попробовал несколько неудачных попыток входа в систему и заблокировал IP, но ssh попробуйте и повторите попытку .. без бана!

Если вы используете ssh на нестандартном порту, вам необходимо обновить конфигурацию fail2ban, чтобы обратить внимание на этот порт, а не только на именованную службу (поскольку предполагается, что именованная служба работает на своем стандартном порте).

Цитата из другого ответ:

fail2ban обнаружит попытки входа в систему по содержимому журнала. fail2ban не использует порты для обнаружения, а только для блокировки. Чтобы заблокировать правильный порт, вы должны указать fail2ban, какой из них, чтобы правильно настроить iptable. В /etc/fail2ban/jail.local:

[ssh]
enabled = true
port = ssh <-- just modify this with your port port = 1234

Затем перезапустите fail2ban.

Если SSH не работает на порту 22, неудачных попыток входа в систему не будет. /var/log/messages, следовательно, Fail2Ban не имеет информации о том, какие IP-адреса следует запретить.

Однако, поскольку у вас нет какой-либо службы, работающей на порту 22, вам действительно не нужно блокировать.

Решение для ATM: fail2ban не банить, если включена аутентификация только по pubkey. Если кто найдет другое решение ... отвечу.