Deepin,fail2ban

Автор blackdog, 11 января 2016, 10:07:57

« назад - далее »

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

blackdog

Всем здравствуйте.
Так как основана поделка на Дебиан 8,то решил спросить совета
у дебиановодов.
Суть проблемы-поставил систему,нужно организовать доступ по ssh.
Выбрасывать незащищенный ssh-нехорошо.Решил приладить fail2ban,
т.к.  имею опыт по настройке оного в oSUSE.
Устанавливал apt-getом,зависимости подтянулись автоматом,все установилось,
но как только включил jail f2b сразу упал.
Данные
Операционка
uname -a
Linux kiraav 4.2.0-1-amd64 #1 SMP Debian 4.2.6-3 (2015-12-06) x86_64 GNU/Linux

Версия f2b
kira@kiraav:~$ fail2ban-client --version
Fail2Ban v0.9.3

Copyright (c) 2004-2008 Cyril Jaquier, 2008- Fail2Ban Contributors
Copyright of modifications held by their respective authors.
Licensed under the GNU General Public License v2 (GPL).

Written by Cyril Jaquier <cyril.jaquier@fail2ban.org>.
Many contributions by Yaroslav O. Halchenko <debian@onerussian.com>.

Что происходит
kira@kiraav:~$ sudo service fail2ban restart
Job for fail2ban.service failed because the control process exited with error code. See "systemctl status fail2ban.service" and "journalctl -xe" for details.
kira@kiraav:~$ systemctl status fail2ban.service
● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: failed (Result: start-limit) since Сб 2016-01-09 15:34:19 KGT; 22s ago
     Docs: man:fail2ban(1)
  Process: 4952 ExecStop=/usr/bin/fail2ban-client stop (code=exited, status=0/SUCCESS)
  Process: 7026 ExecStart=/usr/bin/fail2ban-client -x start (code=exited, status=255)
Main PID: 4833 (code=killed, signal=TERM)

янв 09 15:34:19 kiraav systemd[1]: Failed to start Fail2Ban Service.
янв 09 15:34:19 kiraav systemd[1]: fail2ban.service: Unit entered failed state.
янв 09 15:34:19 kiraav systemd[1]: fail2ban.service: Failed with result 'exit-code'.
янв 09 15:34:19 kiraav systemd[1]: fail2ban.service: Service hold-off time over, scheduling restart.
янв 09 15:34:19 kiraav systemd[1]: Stopped Fail2Ban Service.
янв 09 15:34:19 kiraav systemd[1]: fail2ban.service: Start request repeated too quickly.
янв 09 15:34:19 kiraav systemd[1]: Failed to start Fail2Ban Service.
янв 09 15:34:19 kiraav systemd[1]: fail2ban.service: Unit entered failed state.
янв 09 15:34:19 kiraav systemd[1]: fail2ban.service: Failed with result 'start-limit'.
kira@kiraav:~$ fail2ban-client -v -v start
INFO   Loading configs for fail2ban under /etc/fail2ban
DEBUG  Reading configs for fail2ban under /etc/fail2ban
DEBUG  Reading config files: /etc/fail2ban/fail2ban.local
INFO     Loading files: ['/etc/fail2ban/fail2ban.local']
INFO     Loading files: ['/etc/fail2ban/fail2ban.local']
INFO   Using socket file /var/run/fail2ban/fail2ban.sock
INFO   Loading configs for jail under /etc/fail2ban
DEBUG  Reading configs for jail under /etc/fail2ban
DEBUG  Reading config files: /etc/fail2ban/jail.d/defaults-debian.conf, /etc/fail2ban/jail.local
INFO     Loading files: ['/etc/fail2ban/jail.d/defaults-debian.conf']
INFO     Loading files: ['/etc/fail2ban/jail.local']
INFO     Loading files: ['/etc/fail2ban/paths-opensuse.conf']
INFO     Loading files: ['/etc/fail2ban/jail.d/defaults-debian.conf', '/etc/fail2ban/jail.local']
INFO   Loading configs for filter.d/sshd under /etc/fail2ban
DEBUG  Reading configs for filter.d/sshd under /etc/fail2ban
DEBUG  Reading config files: /etc/fail2ban/filter.d/sshd.conf
INFO     Loading files: ['/etc/fail2ban/filter.d/sshd.conf']
INFO     Loading files: ['/etc/fail2ban/filter.d/common.conf']
INFO     Loading files: ['/etc/fail2ban/filter.d/common.local']
INFO     Loading files: ['/etc/fail2ban/filter.d/common.conf', '/etc/fail2ban/filter.d/sshd.conf']
ERROR  Failed during configuration: Bad value substitution: option 'logpath' in section 'sshd' contains an interpolation key 'sshd_log' which is not a valid option name. Raw value: '%(sshd_log)s'
kira@kiraav:~$

jail.local
#
# WARNING: heavily refactored in 0.9.0 release.  Please review and
#          customize settings for your setup.
#
# Changes:  in most of the cases you should not modify this
#           file, but provide customizations in jail.local file,
#           or separate .conf files under jail.d/ directory, e.g.:
#
# HOW TO ACTIVATE JAILS:
#
# YOU SHOULD NOT MODIFY THIS FILE.
#
# It will probably be overwritten or improved in a distribution update.
#
# Provide customizations in a jail.local file or a jail.d/customisation.local.
# For example to change the default bantime for all jails and to enable the
# ssh-iptables jail the following (uncommented) would appear in the .local file.
# See man 5 jail.conf for details.
#
# [DEFAULT]
# bantime = 3600
#
# [sshd]
# enabled = true
#
# See jail.conf(5) man page for more information

# Comments: use '#' for comment lines and ';' (following a space) for inline comments

[INCLUDES]

#before = paths-distro.conf
before = paths-opensuse.conf

# The DEFAULT allows a global definition of the options. They can be overridden
# in each jail afterwards.

[DEFAULT]

#
# MISCELLANEOUS OPTIONS
#

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime  = 60000

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 3600

# "maxretry" is the number of failures before a host get banned.
maxretry = 1

# "backend" specifies the backend used to get files modification.
# Available options are "pyinotify", "gamin", "polling", "systemd" and "auto".
# This option can be overridden in each jail as well.
#
# pyinotify: requires pyinotify (a file alteration monitor) to be installed.
#              If pyinotify is not installed, Fail2ban will use auto.
# gamin:     requires Gamin (a file alteration monitor) to be installed.
#              If Gamin is not installed, Fail2ban will use auto.
# polling:   uses a polling algorithm which does not require external libraries.
# systemd:   uses systemd python library to access the systemd journal.
#              Specifying "logpath" is not valid for this backend.
#              See "journalmatch" in the jails associated filter config
# auto:      will try to use the following backends, in order:
#              pyinotify, gamin, polling.
#
# Note: if systemd backend is choses as the default but you enable a jail
#       for which logs are present only in its own log files, specify some other
#       backend for that jail (e.g. polling) and provide empty value for
#       journalmatch. See https://github.com/fail2ban/fail2ban/issues/959#issuecomment-74901200
backend = auto

# "usedns" specifies if jails should trust hostnames in logs,
#   warn when DNS lookups are performed, or ignore all hostnames in logs
#
# yes:   if a hostname is encountered, a DNS lookup will be performed.
# warn:  if a hostname is encountered, a DNS lookup will be performed,
#        but it will be logged as a warning.
# no:    if a hostname is encountered, will not be used for banning,
#        but it will be logged as info.
usedns = warn

# "logencoding" specifies the encoding of the log files handled by the jail
#   This is used to decode the lines from the log file.
#   Typical examples:  "ascii", "utf-8"
#
#   auto:   will use the system locale setting
logencoding = auto

# "enabled" enables the jails.
#  By default all jails are disabled, and it should stay this way.
#  Enable only relevant to your setup jails in your .local or jail.d/*.conf
#
# true:  jail will be enabled and log files will get monitored for changes
# false: jail is not enabled
enabled = true

# "filter" defines the filter to use by the jail.
#  By default jails have names matching their filter name
#
filter = %(__name__)s

#
# ACTIONS
#

# Some options used for actions

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = root@localhost

# Sender email address used solely for some actions
sender = root@localhost

# E-mail action. Since 0.8.1 Fail2Ban uses sendmail MTA for the
# mailing. Change mta configuration parameter to mail if you want to
# revert to conventional 'mail'.
mta = sendmail

# Default protocol
protocol = tcp

# Specify chain where jumps would need to be added in iptables-* actions
chain = INPUT

# Ports to be banned
# Usually should be overridden in a particular jail
port = 0:65535

#
# Action shortcuts. To be used to define action parameter

# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-multiport

# The simplest action to take: ban only
action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]

# ban & send an e-mail with whois report to the destemail.
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, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]

# ban & send an e-mail with whois report and relevant log lines
# to the destemail.
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, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]

# See the IMPORTANT note in action.d/xarf-login-attack for when to use this action
#
# ban & send a xarf e-mail to abuse contact of IP address and include relevant log lines
# to the destemail.
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"]

# ban IP on CloudFlare & send an e-mail with whois report and relevant log lines
# to the destemail.
action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
                %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]

# Report block via blocklist.de fail2ban reporting service API
#
# See the IMPORTANT note in action.d/blocklist_de.conf for when to
# use this action. Create a file jail.d/blocklist_de.local containing
# [Init]
# blocklist_de_apikey = {api key from registration]
#
action_blocklist_de  = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s"]

# Report ban via badips.com, and use as blacklist
#
# See BadIPsAction docstring in config/action.d/badips.py for
# documentation for this action.
#
# NOTE: This action relies on banaction being present on start and therefore
# should be last action defined for a jail.
#
action_badips = badips.py[category="%(name)s", banaction="%(banaction)s"]

# Choose default action.  To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_)s

#
# JAILS
#

#
# SSH servers
#

[sshd]

port    = ssh
logpath = %(sshd_log)s
maxretry = 2

[sshd-ddos]
# This jail corresponds to the standard configuration in Fail2ban.
# The mail-whois action send a notification e-mail with a whois request
# in the body.
port    = ssh
logpath = %(sshd_log)s
maxretry = 1


Часть paths-debian.conf

syslog_authpriv = /var/log/auth.log

#syslog_authpriv = %(syslog_local0)s

# syslog_auth = /var/log/auth.log
#
syslog_user  =  /var/log/user.log

гуглинг и сама ошибка 
ERROR  Failed during configuration: Bad value substitution: option 'logpath' in section 'sshd' contains an interpolation key 'sshd_log' which is not a valid option name. Raw value: '%(sshd_log)s'
kira@kiraav:~$

подсказывают что какая то проблема с путями к файлам логов.
Попробовал подсунуть вариант из oSUSE
syslog_authpriv = %(syslog_local0)s
но ниче из этого не вышло.
На ЛОРе дали ссылку
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770171
на дебиановский багрепорт.
Почитал.У меня в etc/fail2ban/jail.d/defaults-debian.conf
было только
[sshd]
enabled = true

привел к виду
[DEFAULT]
backend = systemd
[sshd]
enabled = true

и в /etc/fail2ban/filter.d/sshd.conf
заменил


# "maxlines" is number of log lines to buffer for multi-line regex searches
maxlines = 10

journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd


на

[Init]
maxlines = 10
journalmatch = _SYSTEMD_UNIT=ssh.service + _COMM=sshd

согласно багрепорта.
Но изменений нет,f2b так же валится с той же ошибкой.
Подскажите что еще нужно поправить?

qupl

blackdog, абсолютный путь прописать в месте на которое оно ругается? (для начала найти все упоминания sshd_log)

blackdog

Цитата: qupl от 11 января 2016, 15:55:10абсолютный путь прописать в месте на которое оно ругается? (для начала найти все упоминания sshd_log)
Я нубоват.Линукс-хобби.Вы не могли бы чуть более развернуто ответить?
sshd_log явно нигде не упоминается вроде как.
На ЛОРе тож подсказывают что нужно прописать
ЦитироватьСообщение об ошибках про то, что нигде нет определения ″sshd_log″, то есть нет строки ″sshd_log = /var/log/auth.log″ или ″sshd_log = %(syslog_authpriv)s″.

только я не въехал,куда прописать,в какой конфиг-файл.

ogost

в jail.conf у вас в секциях [sshd] и [sshd_ddos] прописано logpath = %(sshd_log)s, а явное значение sshd_log нигде не указано. попробуйте в указанных секциях явно прописать logpath=/var/log/auth.log (или куда у вас там в deepin пишет логи sshd)

qupl

Цитата: blackdog от 11 января 2016, 17:41:03
только я не въехал,куда прописать,в какой конфиг-файл.
По идее в том, на который ругается. Скорее всего в jail.local и, возможно, '/etc/fail2ban/filter.d/sshd.conf'. Вы же руками меняли файлы, поиском ищите вышеназванный текст.

blackdog

ogost, qupl,
Парни,большое спасибо.
Цитата: qupl от 12 января 2016, 09:44:49По идее в том, на который ругается. Скорее всего в jail.local и, возможно, '/etc/fail2ban/filter.d/sshd.conf'. Вы же руками меняли файлы, поиском ищите вышеназванный текст
Менял только jail.local,sshd.conf я менял как в багрепорте потом вернул к исходному виду,т.к на результат это не повлияло.
Самое интересное в том что на работе закатал систему в виртуалку,и все заработало "искаропки",конфиг jail.local скопировал из этой темы.
То ли поправили пакет в репе толи что то не так дома встало.Вечером погляжу что дома в конфигах.
Еще раз спасибо

ogost

saifuddin, чтобы "не бегать и искать" нужно при компиляции либо собирать deb пакет вручную, либо через checkinstall и ставить полученный пакет через dpkg. а make install как раз "размазывает" файлы по всей системе.

alsoijw

Цитата: ogost от 12 августа 2016, 09:21:47а make install как раз "размазывает" файлы по всей системе.
Режим зануды: в случае с make никто гарантированно не скажет какие файлы куда установились. В лучшем случае автор предусмотрит возможность удаления всех установленных файлов. В случае с deb пакетом файлы тоже раскидываются по разным папкам, но пакетный менеджер знает куда что положили и сможет сказать какие файлы входят в этот пакет, в какой пакет входит этот файл...
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

ogost

alsoijw, собственно это и имел ввиду. спасибо за уточнение.