The OpenNET Project / Index page

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

Использование OpenSSL для тестирования POP3, IMAP, SMTP, WEB сервера с TLS/SSL/SASL
Для тестирования работы  TLS/SSL на POP3 сервере можно использовать входящий в
состав OpenSSL клиент s_client (для тестирования SSL-клиентов по аналогии можно
использовать s_server):

   openssl s_client -connect имя_хоста:995

после чего можно сэмулировать типичную POP3-сессию:

   +OK Dovecot ready.

   user логин
   +OK

   pass пароль
   +OK Logged in.

выводим список сообщений на сервере и их размер:

   list
   +OK 2 messages:
   1 1759
   2 12422

читаем первое сообщение:

   retr 1
   +OK 1759 octets
   заголовки и текст 

Тестирование IMAP проводится в соответствии с теми же принципами:

   openssl s_client -connect imap_хост:993

   CONNECTED(00000003)
   ....
   * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

   login логин пароль
   a001 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR ... CONTEXT=SEARCH LIST-STATUS QUOTA] Logged in

выводим список папок:

   a002 list "" "*"
   * LIST (\HasChildren) "." "INBOX"
   * LIST (\HasNoChildren) "." "INBOX.INBOX_Trash"
   * LIST (\HasNoChildren) "." "INBOX.Trash"
   * LIST (\HasNoChildren) "." "INBOX.read"
   * LIST (\HasNoChildren) "." "INBOX.Queue"
   * LIST (\HasNoChildren) "." "INBOX.INBOX_Drafts"

посмотрим содержимое папки Inbox:

   a003 examine inbox
   * FLAGS (\Answered \Flagged \Deleted \Seen \Draft Junk NonJunk)
   * OK [PERMANENTFLAGS ()] Read-only mailbox.
   * 10 EXISTS
   * 0 RECENT
   * OK [UNSEEN 1] First unseen.
   * OK [UIDVALIDITY 1291459647] UIDs valid
   * OK [UIDNEXT 8026] Predicted next UID
   * OK [HIGHESTMODSEQ 2710] Highest
   a003 OK [READ-ONLY] Select completed.

В папке 10 сообщений, выведем содержимое текста четвертого сообщения, без заголовков:

   a004 4 rfc822.text
   * 4 FETCH (RFC822.TEXT {857}
   текст
   a005 OK Fetch completed.

выходим

   a005 logout
   * BYE Logging out
   a005 OK Logout completed.


Тестируем сайт по SHTTP:

   openssl s_client -connect www.test.com:443

   GET / HTTP/1.1
   Host: test.com


Проверяем SASL-аутентификацию при отправке почты:

   openssl s_client -connect smtp_хост:25 -starttls smtp

   220 mail.test.com ESMTP Postfix
   EHLO test.test.com

   250-mail.test.com
   250-PIPELINING
   250-SIZE 10240000
   250-ETRN
   250-AUTH DIGEST-MD5 PLAIN CRAM-MD5
   250 8BITMIME
   AUTH PLAIN пароль_в_base64_нотации

   235 Authentication successful

Перекодировать файл с паролем  в base64-представление можно командой:

   openssl enc -base64 -in file.txt -out mfile.b64

декодировать:

   openssl enc -d -base64 -in file.b64 -out file.txt


Другие полезные команды:

Шифруем файл симметричным шифром blowfish (если необходимо сохранение в
base64-представлении добавляем опцию "-a"):

   openssl enc -e -salt -bf -in file.txt -out file.blowfish
   enter bf-cbc encryption password: пароль

расшифровываем:

   openssl enc -d -bf -in file.blowfish -out file.txt
   enter bf-cbc decryption password: пароль

Рассчитываем SHA1-хэш для файла:

   openssl dgst -sha1 -c file.txt
   SHA1(test.txt)= 15:85:f1:af:a7:ca:1c:1c:5a:8b:c3:a7:1e:7f:4b:bd:3c:d4:22:ca


Для перехвата и расшифровки SSL/TLS трафика в отладочных целях можно использовать утилиту ssldump:

наблюдение за активностью внутри SSL-сессии:

   ssldump -a -A -H -i eth0

со служебными данными для полной отладки SSL-сессии:

   ssldump -a -A -H -k server.pem -i eth0

для расшифровки содержимого сессии:

   ssldump -d -k server.pem -i eth0

Для успешной расшифровки SSL-сессия должна быть перехвачена с самого начала,
включая момент обмена ключами на стадии инициирования сессии.
 
21.02.2011 , Источник: http://www.linuxplanet.com/linuxpla...
Ключи: pop3, imap, mail, ssl, openssl, ssldump, tcpdump / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / Mail, почта / Отправка и пересылка сообщений на уровне пользователя

Обсуждение [ RSS ]
  • 1, pavel piatruk (?), 23:16, 21/02/2011 [ответить]  
  • +/
    для тестирования smtp использую swaks (он умеет все виды авторизации), для остального SSL: telnet-ssl  
     
     
  • 2, artickl (?), 08:27, 22/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    openssl стоит на всех серверах и входит в стандартную поставку многих дистров, swaks и telnet-ssl надо ставить отдельно... а так да - ничего против их не имею, они тоже делают свое дело...
     

  • 3, hizel (ok), 12:49, 22/02/2011 [ответить]  
  • +/
    http://www.opennet.me/docs/RUS/exit_setup/ тут полнее
     
  • 4, phaoost (ok), 17:16, 10/03/2011 [ответить]  
  • +/
    хм. а что, -crlf уже не надо?
     

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




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

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