Вопрос или проблема
Мы находились в сети, которая не пропускала трафик через промежуточный сервер, и использовали mutt для отправки уведомлений, когда скрипты заканчивали выполнение. Теперь сервер был перемещен в сеть с промежуточным сервером, и весь http/https трафик перенаправляется через него. Какие настройки мне нужно изменить в muttrc для правильной отправки?
Переменные окружения для http_proxy и https_proxy уже были настроены в .bash_profile.
Ответ или решение
Настройка mutt
в окружении, где сервер CentOS находится за прокси-сервером, требует внимательного подхода и понимания, как mutt
взаимодействует с сетью. Итак, чтобы правильно настроить mutt
для отправки уведомлений после завершения скриптов, давайте разберем шаги, которые необходимо выполнить.
Теоретическая основа
Mutt
— это легкий и мощный почтовый клиент, работающий в текстовом режиме. Он не обрабатывает HTTP/HTTPS трафик напрямую, однако для отправки писем mutt
может использовать SMTP, который может быть перенаправлен через прокси, если это необходимо. В вашем случае, исходя из предоставленных данных, http_proxy и https_proxy уже настроены в .bash_profile
, что говорит о том, что ваш трафик может быть перенаправлен через соответствующий прокси.
Тем не менее, протокол SMTP не использует HTTP/HTTPS трафик; следовательно, использование настроек прокси для почтовой отправки несколько отличается. В основе вашей задачи — правильная маршрутизация SMTP трафика через прокси (если это необходимо) и корректная конфигурация для mutt
при работе через "jumphost".
Пример конфигурации
-
Настройка
muttrc
:Первым делом, необходимо убедиться, что файл настроек
muttrc
правильно настроен. Распределение параметров примерно следующее:set smtp_url="smtp://user@smtp.example.com:587/" set smtp_pass="yourpassword" set from="user@example.com" set realname="Your Name" set use_tls=yes
Здесь
smtp_url
— это URL вашего SMTP сервера. Надо использовать корректный порт (например, 587 для TLS) и убедиться, что ваш сервер поддерживает старт TLS. -
Настройка проекта через jumphost:
Если между вашим сервером и Интернетом есть "jumphost", который также служит прокси, вам нужно удостовериться, что SMTP трафик может проходить через него безбоязненно. Самый популярный инструмент, который может использоваться для проброса портов через "jumphost" — это
ssh
.ssh -L 587:smtp.example.com:587 user@jumphost
Это соединение откроет порт 587 на вашем локальном сервере и маршрутирует трафик на SMTP сервер через ваш jumphost.
-
Использование прокси:
Если прокси потребуется для маршрутизации SMTP, дополнительным инструментом может стать
corkscrew
.Corkscrew
используется для проброски SSH через HTTP proxy. Это не всегда необходимо для SMTP, но знание опций никогда не повредит.Установка corkscrew на CentOS:
yum install corkscrew
Затем настройте
.ssh/config
(если используете SSH как промежуточное соединение):Host smtp.example.com ProxyCommand corkscrew http-proxy.example.com 3128 %h %p ~/.ssh/proxy-auth
Здесь
http-proxy.example.com
— это ваш прокси сервер, аproxy-auth
может содержать авторизационные данные для прокси.
Применение на практике
После внесения всех необходимых изменений в конфигурационные файлы необходимо проверить работоспособность настроек.
-
Проверка соединения: Удостоверьтесь, что соединение через jumphost открылось корректно и SMTP сервер доступен через проброшенный порт. Пингуйте и запрашивайте соединение к SMTP серверу, чтобы проверить сетевые маршруты.
-
Проверка отправки почты через
mutt
: Напишите тестовое электронное письмо и отправьте его черезmutt
. Посмотрите на логи и убедитесь, что письма выходят и поступают на указанные адреса. -
Отладка ошибок: В случае ошибок проверяйте лог-файлы, такие как
/var/log/maillog
или аналогичные для вашего почтового сервера. Вmutt
можно также включитьset debug
для более ясного вида на процесс отправки.
Общая настройка почтовой системы в условиях, где сети зависят от прокси, может оказаться не тривиальной, но понимание как работает трафик и имеющиеся инструменты помогут достижению цели. Внесение корректных изменений и проверка их на практике всегда позволит добиваться нужных результатов.