The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Настройка fetchmail для проверки и получения почты Gmail (gmail mail fetchmail cert ssl)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: gmail, mail, fetchmail, cert, ssl,  (найти похожие документы)
From: Александр Марецкий <s0ldat@mail.ru.> Newsgroups: emil Date: Mon, 16 Mar 2009 17:02:14 +0000 (UTC) Subject: Настройка fetchmail для проверки и получения почты Gmail Постановка задачи Вы хотите получать/проверять почту Gmail используя программу fetchmail Исходные данные - у есть почтовый ящик gmail_account@gmail.com - вы используете Unix-подобную операционную систему (Linux, FreeBSD, etc...) Наличие необходимых программ Если программа fetchmail у вас еще не установлена, установите ее одним из способов, предусмотренных в вашей операционной системе. С помощью одной только программы fetchmail можно проверить наличие писем на почтовом сервере, но для того чтобы эту почту получить fetchmail использует MTA (Mail Transfer Agent) - другую программу. Обычно по умолчанию это sendmail, так что проверьте что sendmail тоже установлена. Sendmail настраивать не нужно - достаточно настроек по умолчанию. Для работы с ssl серификатами необходимо наличие пакета openssl. Быстрый старт - проверка новых сообщений на сервере В вашем домашнем каталоге создайте файл .fetchmailrc: $ touch /home/user/.fetchmailrc Установите для него права чтения/записи для владельца и запрет всего остальным: $ chmod 600 /home/user/.fetchmailrc Важное замечание: так как в этом файле будет пароль к учетной записи Gmail, вы должны быть уверены в том, что никто кроме вас не сможет посмотреть его содержимое. То есть тот кто имеет непосредственный или сетевой доступ к вашему компьютеру а также полномочия вашей учетной записи или учетной записи root может узнать ваш пароль Gmail. Откройте .fetchmailrc в своем любимом текстовом редакторе и создайте следующее содержимое: poll pop.gmail.com port 995 proto POP3 user 'gmail_account@gmail.com' pass 'gmail_password' ssl Подразумеваем что у вас есть подключение к Internet, поэтому можно сразу проверить наличие на сервере новых сообщений: $ fetchmail -c fetchmail: Ошибка проверки сертификата сервера: unable to get local issuer certificate fetchmail: Ошибка проверки сертификата сервера: certificate not trusted fetchmail: Ошибка проверки сертификата сервера: unable to verify the first certificate 1 сообщение для gmail_account@gmail.com на pop.gmail.com (6891 октетов). Опция -c говорит fetchmail не получать почту а только проверить наличие новых писем. Мы видим, что в почтовом ящике есть 1 новое сообщение. От предупреждений касающихся ssl сертификата избавимся позже - они имеют статус предупреждений только и не влияют на функционал. Кстати в некоторых версиях fetchmail вы вообще можете их не получить. Получение сообщений с сервера Для получения писем с сервера fetchmail использует MTA (Mail Transfer Agent), слушающий порт 25 (стандатртный порт mail службы). В качестве MTA используем sendmail, так как это вариант по умолчанию для большинства дистрибутивов. Если sendmail у вас уже работает как фоновый процесс (демон), то выполнив следующую команду, вы получите сообщения с сервера (в случае наличия там таковых конечно). Но для ясности настройки имеет смысл показать какой будет результат работы fetchmail, если sendmail не запущена (параметр -k говорит fetchmail не удалять письма на почтовом сервере после их получения): $ fetchmail -k fetchmail: Ошибка проверки сертификата сервера: unable to get local issuer certificate fetchmail: Ошибка проверки сертификата сервера: certificate not trusted fetchmail: Ошибка проверки сертификата сервера: unable to verify the first certificate 1 сообщение для gmail_account@gmail.com на pop.gmail.com (6891 октетов) считывается сообщение gmail_account@gmail.com@gmail-pop.l.google.com:1 из 1 (6891 октетов)... fetchmail: сбой подключения к localhost:smtp [127.0.0.1/25]: В соединении отказано. fetchmail: Сбой SMTP-подключения к localhost fetchmail: Ошибка SMTP-транзакция при выборке из gmail_account@gmail.com@pop.gmail.com и доставке на хост SMTP localhost fetchmail: Статус запроса=10 (SMTP) Это значит ваш компьютер отказал в приеме почты на порту 25. Запускаем sendmail с параметром -bd (переход в режим фонового процесса): # sendmail -bd Примечание: эту команду необходимо выполнять от пользователя root (или использовать для этого sudo), так как только запуск программы с полномочиями администратора позволят ей открыть порт 25. При успешном старте sendmail молча переходит в фоновую работу, ничего не выводя на терминал. Теперь повторяем запуск fetchmail: $ fetchmail -k fetchmail: Ошибка проверки сертификата сервера: unable to get local issuer certificate fetchmail: Ошибка проверки сертификата сервера: certificate not trusted fetchmail: Ошибка проверки сертификата сервера: unable to verify the first certificate 1 сообщение для gmail_account@gmail.com на pop.gmail.com (6891 октетов). считывается сообщение gmail_account@gmail.com@gmail-pop.l.google.com:1 из 1 (6891 октетов)...... не пропущено Все, сообщение находится в вашем каталоге для почты (по умолчанию это обычно /var/spool/mail/user): $ ls -l /var/spool/mail/user/ -rw------- 1 user users 7,2K 2008-11-30 02:47 msg.JHE Теперь можете читать его вашей любимой программой для работы с сообщениями, например mutt. Избавимся от предупреждений касающихся ssl сертификата В вашем домашнем каталоге создайте каталог .sslcerts (это только пример, вы можете создать другой каталог в другом месте): mkdir /home/user/.sslcerts Установите на него права чтения/записи/выполнения для владельца, остальным запрет: chmod 700 /home/user/.sslcerts Получите сертификат Gmail (у вас должен быть установлен пакет программ openssl): openssl s_client -connect pop.gmail.com:995 -showcerts > /home/user/.sslcerts/gmail.pem Откройте файл .sslcerts/gmail.pem в текстовом редакторе и удалите все содержимое кроме блока данных, включительно строки '-----BEGIN CERTIFICATE-----' и '-----END CERTIFICATE-----'. Таким образом получаем содержимое: -----BEGIN CERTIFICATE----- MIIC3TCCAkagAwIBAgIDCDijMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0 aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMDI1MTc1MzE2WhcNMDkxMjI0MTg1MzE2 WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN TW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xFjAUBgNVBAMTDXBv cC5nbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO03QxerFKZV 8yeomuL4zSl8Pr7hMWnKMMgp/CwhwadeBmL0LQHHbjL/6z/Z59ZQvrztqkwhchA2 APKzUwRVTyn7Shx6vBqk6oFmTqoOLmY6hbq6l8uVdUv0AfbHwio8CnLpK2+nbuFl flPwx1DH0E3grD8+CrH5SmScfTWbDkcXAgMBAAGjga4wgaswDgYDVR0PAQH/BAQD AgTwMB0GA1UdDgQWBBTJRG/OFpZt+BV43JM3NshHMjpwazA6BgNVHR8EMzAxMC+g LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDAf BgNVHSMEGDAWgBRI5mj5K9KylddH2CMgEE8zmJCf1DAdBgNVHSUEFjAUBggrBgEF BQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAOKr3mhxtwFCS3J6lbeaf 3KrHKi935BZkI75sRbON+hog0t2ovcM2i7fxs3xneH8USLsHgfxNBj9tkMogMK/K sO/NUVZ/IfyqcNNkp2619qTQXthKRH42JKpAKgNhT1bdno3pxn+eDEpqmU3CE7IP HDCjWOK1fGkZ/yFAuTxuxAc= -----END CERTIFICATE----- Выполряем хеширование сертификата с помощью c_rehash: c_rehash /home/user/.sslcerts/ Doing /home/user/.sslcerts/ gmail.pem => 7f549ca4.0 Получаем отпечаток ключа (fingerprint) сертификата: shell$ openssl x509 -in /home/user/.sslcerts/gmail.pem -noout -md5 -fingerprint MD5 Fingerprint=44:A8:E9:2C:FB:A9:7E:6D:F9:DB:F3:62:B2:9E:F1:A9 Теперь добавляем отпечаток ключа и путь к каталогу с сертификатами в файл .fetchmailrc, так что теперь он должен быть таким: poll pop.gmail.com port 995 proto POP3 user 'gmail_account@gmail.com' pass 'gmail_password' ssl sslcertpath /home/user/.sslcerts sslfingerprint "44:A8:E9:2C:FB:A9:7E:6D:F9:DB:F3:62:B2:9E:F1:A9" Все, fetchmail работает без ворчания: shell$ fetchmail -c fetchmail: Для gmail_account@gmail.com на pop.gmail.com почты нет Дополнительная информация Справочное руководство по Fetchmail на русском языке: http://linux.yaroslavl.ru/docs/serv/fetchmail/fetchmail-man.html

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, Аноним (-), 13:27, 19/03/2009 [ответить]  
  • +/
    то, что слушает на 25 порту называется MTA, MDA(он же LDA) это то, что раскладывается письма на хранение по папкам, файлам и т.д. обычно MTA и MDA совмещены, а бывает и нет. Вот в dovecot нет MTA, но есть агент доставки и агент доступа к почте

    sendmail для доставки почты вызывает mail.local

     
     
  • 2.5, s0ldat (ok), 21:41, 19/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >то, что слушает на 25 порту называется MTA, MDA(он же LDA) это
    >то, что раскладывается письма на хранение по папкам, файлам и т.д.
    >обычно MTA и MDA совмещены, а бывает и нет. Вот в
    >dovecot нет MTA, но есть агент доставки и агент доступа к
    >почте
    >
    >sendmail для доставки почты вызывает mail.local

    спасибо! внесу поправки

     

  • 1.2, tuman (??), 18:38, 19/03/2009 [ответить]  
  • +/
    c_rehash
    c_rehash: Command not found

    cd ~/.sslcerts/
    openssl x509 -in "gmail.pem" -out "$(openssl  x509 -noout -hash -in "gmail.pem").0"

     
     
  • 2.4, s0ldat (ok), 21:14, 19/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >c_rehash
    >c_rehash: Command not found
    >
    >cd ~/.sslcerts/
    >openssl x509 -in "gmail.pem" -out "$(openssl  x509 -noout -hash -in "gmail.pem").0"
    >

    у тебя не установлен пакет openssl
    установи этот пакет

     

  • 1.6, charon (ok), 12:12, 20/03/2009 [ответить]  
  • +/
    статья интересная, но есть куда развивать. И плюс эта путаница с МТА, MDA и вообще почти со всеми предложениями, куда входят эти слова.
    Я бы очень рекомендовал добавить фичу оставления писем на сервере (вообще-то именно отсутствие необходимости удалять письма - изначально одна из главных фишек Гуглмыла) - а для этого лучше POP3 заменить на IMAP.
     
  • 1.7, Аноним (-), 12:46, 21/03/2009 [ответить]  
  • +/
    Из man fetchmail:

    To obtain the fingerprint of a certificate stored  in  the  file cert.pem, try:
    openssl x509 -in cert.pem -noout -md5 -fingerprint

                  For details, see x509(1ssl).

     
  • 1.8, s0ldat (ok), 00:53, 04/04/2009 [ответить]  
  • +/
    2 Аноним (пост 7):
    Спасибо, ты абсолютно прав насчет получения отпечатка сертификата.
    Правлю статью...
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру