пятница, 24 июля 2015 г.

Zimbra ругается "network error" при логине в webmail

Если при попытке залогиниться в Zimbra webmail начало ругаться "network error", то скорее всего кто-то еще с вашего IP адреса (актуально для офисов) несколько раз подряд залогинился неправильно, либо, что менее вероятно, кто-то или что-то сделало 30 запросов на вебсервер zimbra за секунду.

Проверить догадку можно в логе /opt/zimbra/log/mailbox.log:

INFO  [qtp509886383-44962:http://10.117.231.45:80/service/soap/AuthRequest] [name=sales@example.com;ip=10.117.231.45;ua=zclient/8.6.0_GA_1153;] SoapEngine - handler exception
INFO  [qtp509886383-44962:http://10.117.231.45:80/service/soap/AuthRequest] [name=sales@example.com;ip=10.117.231.45;ua=zclient/8.6.0_GA_1153;] soap - AuthRequest elapsed=3
INFO  [qtp509886383-44966:http://127.0.0.1:80/service/soap/AuthRequest] [name=sales@example.com;oip=1.2.3.4;ua=zclient/8.6.0_GA_1153;] SoapEngine - handler exception
INFO  [qtp509886383-44966:http://127.0.0.1:80/service/soap/AuthRequest] [name=sales@example.com;oip=1.2.3.4;ua=zclient/8.6.0_GA_1153;] soap - AuthRequest elapsed=3
WARN  [qtp509886383-44965:https://10.117.231.45:443/?loginOp=relogin&username=sales@example.com] [] webclient - auth credentials have expired
INFO  [qtp509886383-44966:http://127.0.0.1:80/service/soap/AuthRequest] [name=sales@example.com;oip=1.2.3.4;ua=zclient/8.6.0_GA_1153;] SoapEngine - handler exception: authentication failed for [sales@example.com], invalid password
INFO  [qtp509886383-44966:http://127.0.0.1:80/service/soap/AuthRequest] [name=sales@example.com;oip=1.2.3.4;ua=zclient/8.6.0_GA_1153;] soap - AuthRequest elapsed=4
INFO  [qtp509886383-44962:http://127.0.0.1:80/service/soap/AuthRequest] [] misc - Access to IP 1.2.3.4suspended, for repeated failed login.
INFO  [qtp509886383-44965:http://127.0.0.1:80/service/soap/AuthRequest] [] misc - Access to IP 1.2.3.4suspended, for repeated failed login.

Чтобы решить эту проблему достаточно добавить офисный IP (например 1.2.3.4) в whitelist и перезагрузить mailboxd:

# su - zimbra
$ zmprov mcf +zimbraHttpThrottleSafeIPs 1.2.3.4
$ zmmailboxdctl restart

Более подробно описано тут: https://wiki.zimbra.com/wiki/DoSFilter.

23 комментария:

  1. Спасибо. Долго не мог понять в чем причина =)))

    ОтветитьУдалить
  2. А если проблема у тех кто не из офиса заходит ?

    ОтветитьУдалить
    Ответы
    1. Нужно смотреть в логе /opt/zimbra/log/mailbox.log в чем именно проблема. Если это "Access to IP x.x.x.x suspended, for repeated failed login", то возможно какое-то приложение или устройство в той же сети использует неправильный пароль и тем самым блокирует доступ.

      Удалить
    2. что делать если стоит зимбра 8.5.1 zmprov команда не найдена. dpkg -l дал zimbra-apache,zimbra-core,zimbra-dnscache,zimbra-ldap,zimbra-logger,zimbra-memcached,zimbra-mta,zimbra-proxy,zimbra-snmp,zimbra-spell,zimbra-store. Что то блокирует айпишники на пол часа и как это изменить - не знаю. В nano /opt/zimbra/conf/postfix_rbl_override айпишники забил, но блокируется все равно после ~10 неправильных логинов. В веб морде нашел белый список ip(входа и выхода) - в него тоже забивал - безрезультатно

      Удалить
    3. Утилита zmprov есть в zimbra 8.5.1. Смотрите /opt/zimbra/bin/zmprov и желательно сменить пользователя на 'zimbra' (su - zimbra).

      Удалить
    4. а другой суперюзер не пойдет?

      Удалить
  3. Спасибо! Нашел ее через файл менеджер, запустил, вбил командой айпишник. Единственное- не могу перезагрузить только zmmailboxdctl restart (опять не знает такой команды убунтя) Это из за того, что я не от Zimbra сижу? - пришлось сервис зимбра рестарт. Жду эффекта.

    ОтветитьУдалить
    Ответы
    1. Большинство команд Zimbra не требуют прав root пользователя. В добавок /opt/zimbra/bin не добавляется в системный PATH.

      Удалить
  4. Спасибо, после перезагрузки айпишник не блокируется.

    ОтветитьУдалить
  5. Я так понимаю, что в этом случае никто из пользователей зайти по веб-интерфейсу не может? Но более частой проблемой бывает, что только кто-то один из всех пользователей не может зайти - остальные нормально работают. Значит, адрес не блокирован. Мы делаем рестарт всех служб зимбры через zmcontrol , но понятно, что это неудобно

    ОтветитьУдалить
    Ответы
    1. Есть несколько видов блокировок - одна из них из-за многочисленных попыток ввода неправильного пароля. В этом случае блокируется только одна учетка.

      Удалить
  6. Посмотрел логи, понятно. А как добавить всю локальную подсеть в доверенные?

    ОтветитьУдалить
    Ответы
    1. Примерно так же как и один адрес

      zmprov mcf +zimbraHttpThrottleSafeIPs 172.16.0.0/24

      Удалить
  7. Выполнил указанную последовательность команд, но после перезапуска mailboxd перестало находить сервер в веб-интерфейсе и в админку.
    Ошибка такая:
    zclient.IO_ERROR (invoke В соединении отказано (Connection refused), server: localhost) (cause: java.net.ConnectException В соединении отказано (Connection refused))

    Долго пытался понять в чем дело, выполнил
    zmlocalconfig |grep zmprov
    zimbra_zmprov_default_soap_server = localhost
    zimbra_zmprov_default_to_ldap = false
    zmprov_safeguarded_attrs = zimbraServiceEnabled,zimbraServiceInstalled
    zmprov_tmp_directory = ${zimbra_tmp_directory}/zmprov

    Вот это false исправил на тру:
    zmlocalconfig -e zimbra_zmprov_default_to_ldap=true
    не помогло
    Потом еще что-то пытался восстановить из архива, но в итоге увидел, что некоторые директории в /zimbra оказались рутовыми.
    Исправил права, все взлетело, но оставило в недоумении - а что это было и почему?

    ОтветитьУдалить
    Ответы
    1. Я после ввода команд посмотрел, какие файлы изменились после нее:
      # find /opt/zimbra -mmin -30 | more
      /opt/zimbra/conf
      /opt/zimbra/conf/ldap-canonical.cf
      /opt/zimbra/conf/opendkim.conf
      /opt/zimbra/conf/snmpd.conf
      /opt/zimbra/conf/ldap-splitdomain.cf
      /opt/zimbra/conf/amavisd.conf
      /opt/zimbra/conf/saslauthd.conf
      /opt/zimbra/conf/dspam.conf
      /opt/zimbra/conf/stats.conf
      /opt/zimbra/conf/opendkim-localnets.conf
      /opt/zimbra/conf/ldap-slm.cf
      /opt/zimbra/conf/log4j.properties
      /opt/zimbra/conf/postfix_header_checks
      /opt/zimbra/conf/ldap-vmd.cf
      /opt/zimbra/conf/ldap-transport.cf
      /opt/zimbra/conf/sasl2
      /opt/zimbra/conf/sasl2/smtpd.conf
      /opt/zimbra/conf/nginx/resolvers.conf
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.admin.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http.mode-http
      /opt/zimbra/conf/nginx/includes/nginx.conf.docs.upstream
      /opt/zimbra/conf/nginx/includes/nginx.conf.web
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.imaps
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.sso.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.docs.common
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http.mode-https
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http.mode-redirect
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https.mode-redirect
      /opt/zimbra/conf/nginx/includes/nginx.conf.main
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.imap
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.sso
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.imaps.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.imap.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.admin
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http.mode-both
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https.mode-mixed
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.pop3s.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.memcache
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.pop3s
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.pop3
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http.mode-mixed
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https.mode-both
      /opt/zimbra/conf/nginx/includes/nginx.conf.zmlookup
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.http
      /opt/zimbra/conf/nginx/includes/nginx.conf.mail.pop3.default
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https.mode-https
      /opt/zimbra/conf/nginx/includes/nginx.conf.web.https.mode-http
      /opt/zimbra/conf/ldap-vad.cf
      /opt/zimbra/conf/nginx.conf
      /opt/zimbra/conf/mta_milter_options
      /opt/zimbra/conf/clamd.conf

      Удалить
  8. Забыл написать, что в качестве ip-адреса был указал публичный адрес удаленного филиала, где и случалось обычно сбой сети.

    ОтветитьУдалить
  9. Я понял свою ошибку!
    Я их выполнял из-под рута!
    Перед выполнением проверьте текущего пользователя!

    ОтветитьУдалить
    Ответы
    1. Невнимательно читали пост:

      # su - zimbra
      $ zmprov mcf +zimbraHttpThrottleSafeIPs 1.2.3.4
      $ zmmailboxdctl restart

      Удалить
    2. Да, поторопился. А в каком файле хранится "белый лист", где его отыскать? И удалять адреса - со знаком "-" (-zimbraHttpThrottleSafeIPs)?

      Удалить
  10. >А в каком файле хранится "белый лист", где его отыскать?
    Большую часть настроек Zimbra хранит в LDAP.

    >И удалять адреса - со знаком "-" (-zimbraHttpThrottleSafeIPs)?
    Цитата с https://wiki.zimbra.com/wiki/Zmprov

    The syntax for modify can include the prefix “+” or “-” so that you can make changes to the attributes affected and do not need to reenter attributes that are not changing.
    * Use + to add a new instance of the specified attribute name without changing any existing attributes.
    * Use - to remove a particular instance of an attribute.

    ОтветитьУдалить
    Ответы
    1. Спасибо.
      Набрел на вики
      https://wiki.zimbra.com/wiki/Specific_Whitelist/Blacklist_per_IP

      Однако в моем случае такого файла нет. Версия 8.8.9_GA_3019 от 23 августа 2018.

      Удалить
    2. Если файла нет, то файл нужно создать.

      Удалить