Я работаю в небольшом исследовательском центре, которому приходится самостоятельно решать многие задачи в условиях ограниченного бюджета. Одна из них - вся ИТ-инфраструктура, включая хостинг для Интернета и электронной почты. Хотя я не был сформирован как системный администратор, мне пока удалось найти доступный корневой сервер в хостинговой компании, настроить наши веб-сайты и веб-приложения и поддерживать их работу в течение нескольких лет.
До сих пор наша электронная почта размещалась на внешнем сервере, что означает, что мы мало платим за небольшую стоимость: 875 Мб места для хранения электронной почты на макс. 35 POP-почтовых ящиков. После пары потерь данных из-за повреждений локального почтового ящика в почтовых клиентах я решил хотя бы изучить возможность использования почтового сервера postfix / qmail, который присутствует на корневом сервере, который мы нанимаем. На первый взгляд, есть много преимуществ: мы сможем переключиться на практически неограниченные учетные записи IMAP, включить электронную почту в учетные записи электронной почты в резервные копии сервера, использовать больше места для хранения на почтовый ящик и т. Д. Кроме того, почтовый сервер уже включена в плату, которую мы платим за веб-сервер, поэтому мы могли бы снизить стоимость внешнего почтового хостинга и даже получить гораздо больше за меньшие деньги.
Техническая часть была достаточно интересной: я смог все это настроить (обнаружив достоинства панели Plesk), и в принципе мы могли бы просто сразу переключиться на новый почтовый сервер. Тем не менее, я не уверен, что смогу правильно оценить риски, связанные с управлением почтовым сервером с точки зрения безопасности. Конечно, у меня включен SpamAssassin и антивирус (антивирус Plesk Premium) для всех учетных записей электронной почты, я настроил сертификат SSH и добавил записи SPF, DMARC и DKIM в наш DNS. Меня больше всего беспокоит: достаточно ли этого и каковы шансы подвергнуться атаке и компрометации всего сервера?
Например, я заметил, как - даже на этом этапе преждевременного тестирования - журналы QMail полны таких сообщений, как:
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: connect from unknown[91.200.13.5]
Dec 15 17:07:00 server4545 plesk_saslauthd[24512]: Invalid mail address 'albert@'
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: warning: unknown[91.200.13.5]: SASL LOGIN authentication failed: authentication failure
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: lost connection after AUTH from unknown[91.200.13.5]
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: disconnect from unknown[91.200.13.5]
Dec 15 17:07:04 server4545 postfix/smtpd[23838]: connect from 24-35-233-74.fidnet.com[24.35.233.74]
Dec 15 17:07:04 server4545 postfix/smtpd[23838]: lost connection after CONNECT from 24-35-233-74.fidnet.com[24.35.233.74]
Dec 15 17:07:04 server4545 postfix/smtpd[23838]: disconnect from 24-35-233-74.fidnet.com[24.35.233.74]
Dec 15 17:07:20 server4545 postfix/smtpd[23838]: warning: hostname ip-address-pool-xxx.fpt.vn does not resolve to address 118.71.172.216: Name or service not known
Dec 15 17:07:20 server4545 postfix/smtpd[23838]: connect from unknown[118.71.172.216]
Dec 15 17:07:22 server4545 postfix/smtpd[23838]: NOQUEUE: reject: RCPT from unknown[118.71.172.216]: 554 5.7.1 <name@ourdomain.com>: Relay access denied; from=<voicemailandfax@jgnluxwatch.com> to=<name@ourdomain.com> proto=ESMTP helo=<[100.74.205.159]>
Dec 15 17:07:22 server4545 postfix/smtpd[23838]: disconnect from unknown[118.71.172.216]
Dec 15 17:07:22 server4545 /usr/lib/plesk-9.0/psa-pc-remote[8577]: Message aborted.
Dec 15 17:07:22 server4545 /usr/lib/plesk-9.0/psa-pc-remote[8577]: Message aborted.
Похоже, это предполагает большой интерес со стороны совершенно несвязанных IP-адресов, хотя в настоящее время я даже не использую эту вещь для тестирования. Хорошая сторона, кажется, состоит в том, что эти попытки признаются и отвергаются, но все же мне интересно, откуда они берутся и насколько мне следует беспокоиться. Я могу представить себе, что даже если они невиновны, обработка всех этих запросов может вызвать серьезные накладные расходы для сервера. В целях тестирования я добавил запись MX с низким приоритетом в наш DNS; Интересно, не вызывает ли это уже столько запросов к нашему почтовому серверу?
Другими словами: я ищу разумный совет относительно рисков безопасности, связанных с запуском собственного почтового сервера. В конце концов, если что-то сломается, они могут все сломать, и мне придется разбираться с этим самому.
Любые советы будут высоко ценится!
Рон
Как бывший администратор, который затем стал тестером на проникновение, я чувствую вашу боль. Однако оказалось, что поскольку, как вы, кажется, я достаточно заботился о безопасности своей системы, чтобы узнать, что такое DKIM и SPF, и реализовать их, использовать ключи SSH и т. Д., Оказалось, что я делал больше всего. все в порядке. Как это звучит так ;-)
Судя по вашим журналам, это не похоже на вас, но одна из самых важных вещей - убедиться, что вы не используете открытое реле. Следующая ссылка позволит вам проверить это: http://mxtoolbox.com/diagnostic.aspx
Также вам нужно предотвратить перечисление пользователей. Вы же не хотите, чтобы злоумышленник мог войти на ваш SMTP-сервер и сделать: «VRFY bob» или «EXPN joe» и получить ответ почтового сервера, чтобы сообщить вам, существует ли joe в системе или нет. Можно настроить почтовые серверы так, чтобы они не поддерживали эти функции. Вы также не хотите, чтобы почтовый сервер отвечал на «MAIL TO: tom», чтобы сразу сказать вам, что tom существует. Вы уловили идею. Изучите список пользователей smtp / pop3 / imap и примите меры против него.
Другое дело - не используйте pop3 или imap без шифрования. Пароль будет передаваться через Интернет в виде открытого текста - Wi-Fi также часто легко взломать, и это мгновенно выдаст учетные данные незашифрованным почтовым службам. Вам нужна безопасность транспортного уровня (TLS).
Как и в случае с SMTP, вы хотите требовать аутентификации для удаленных пользователей, отправляющих почту, но это также должно быть отправлено через соединение TLS. Кроме того, не забудьте потребовать аутентификацию для локальных пользователей, отправляющих почту, и предотвратить внутреннюю ретрансляцию. Недавно я прошел тест на проникновение в юридической фирме, где я мог подключиться к их почтовому серверу через порт 25 и отправить письмо от главы компании сотруднику с сообщением о том, что он получил повышение или был уволен. Очевидно, я тоже не делал, но вы не хотите допускать такой возможности. Лучше всего, если возможно, не отказываться от авторства.
Поскольку ясно, что вы хорошо разбираетесь в вещах, я не буду вдаваться в подробности, но достаточно сказать - вам нужно знать об относительных достоинствах таких вещей, как POP3S и POP3 с STARTTLS, разнице между портами 25 , 465, 587 и т. Д. IMAP и IMAPS и т. Д. Требование клиентских сертификатов TLS для аутентификации, вероятно, является чрезмерным, но не используйте самозаверяющие сертификаты TLS сервера, вы должны получить добросовестные сертификаты. Вы можете получить их дешево от go-daddy или аналогичного. Не используйте SSL2, SSL3 или TLSv1.0. Если возможно, TLSv1.2 должен быть всем, что включено.
Кроме того, настройте почтовые серверы так, чтобы они не объявляли версию своего программного обеспечения (или, если возможно, какие-либо сведения о продукте) при подключении к порту. Достаточно простого баннера общего назначения.
Требуйте надежных паролей от пользователей И администраторов!
Еще одна вещь, во избежание спама, серый список может работать очень хорошо, если он настроен правильно. Я пользовался им давно и никогда не испытывал проблем с недоставленной почтой.
Машины в Интернете всегда сканируют и выискивают. Если вы настроили его надежно, я бы не стал сильно беспокоиться об этом (хотя вы можете использовать ограничение скорости iptables, если вас беспокоит DoS - или поговорите со своим интернет-провайдером), НО на стороне панели управления PLESK и т. Д., И SSH, используйте iptables для внесения в белый список IP-адресов, ТРЕБУЮЩИХ доступа к этим портам, чтобы злоумышленники не могли даже увидеть, что они там есть. Используйте nmap на своем сервере, чтобы увидеть, что увидят злоумышленники. Если все порты отображаются отфильтрованными для широкой публики, кроме ваших почтовых портов, тогда отлично. Используйте только HTTPS, а не HTTP для подключения к материалам веб-администрирования и, опять же, только TLSv1.2. Или, что еще лучше, используйте его только для прослушивания на локальном хосте, чтобы он был недоступен извне, а затем вместо этого используйте перенаправление портов SSH для подключения к нему!
Google для "повышения безопасности сервера PRODUCTNAME" для каждого программного продукта, который вы используете, а также "тестирование на проникновение PRODUCTNAME", "PRODUCTNAME exploits" могут помочь.
Очень важно - держите все программное обеспечение и ОС Linux как можно более актуальными и обновленными.
Риск, о котором часто забывают, - это риск взлома вашей рабочей станции. Как администратор вы являетесь главной целью. Если это произойдет, злоумышленник может украсть ваши пароли или ключи SSH и найти ваши файлы, которые расскажут им все, что им нужно знать о вашей конфигурации. Как только они получат это, они смогут попасть в вашу почтовую систему независимо от того, насколько хорошо вы ее защитили, даже если это размещенное решение Office 365. Фактически, в некотором смысле им будет легче, если он будет размещен где-то в другом месте и в более знакомой конфигурации.
Не входите в систему как root или администратор, если вам не нужно. Не предоставляйте коллегам больше доступа, чем им нужно. и т. д. Будьте очень осторожны с открытием вложений электронной почты и т. д. - обычных вещей.