Проект

Общее

Профиль

Программа и методика испытаний

Choose a language: RU | EN | ZH

Table of contents

Роли, которые может выполнять Почтовый сервер TEGU, и варианты возможных архитектурных решений столь различны, что практически невозможно рассмотреть все. Поэтому настоящий документ является краткой методикой испытания основных функций Почтового сервера TEGU.
В качестве примера используется сервер mail.tegu.online.

1. Основные системные параметры

1.1. Какие порты слушает TEGU

Выполняется на почтовом сервере TEGU

# netstat -tulpn | grep tegu
tcp        0      0 127.0.0.1:8899          0.0.0.0:*               LISTEN      87974/tegu          
tcp6       0      0 :::993                  :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::465                  :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::25                   :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::143                  :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::8808                 :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::8809                 :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::8888                 :::*                    LISTEN      87974/tegu          
tcp6       0      0 :::9999                 :::*                    LISTEN      87974/tegu

1.2. А какие порты видит клиент на сервере TEGU

Выполняется на клиенте

$ nmap mail.tegu.online
Starting Nmap 7.93 ( https://nmap.org ) at 2024-02-03 13:16 MSK
Nmap scan report for mail.tegu.online (79.137.210.127)
Host is up (0.072s latency).
Not shown: 995 filtered tcp ports (no-response)
PORT     STATE  SERVICE
25/tcp   open   smtp
80/tcp   closed http
465/tcp  open   smtps
993/tcp  open   imaps
9999/tcp open   abyss

Сравните с документацией, сделайте вывод. В случае необходимости даже прочтите документацию.

1.3. Проверка DNS зоны

Откройте Панель управления сервером https://mail.tegu.online:9999/ с административным аккаунтом. Прочтите и проанализируйте содержимое поля "Рекомендации для зоны DNS".
Используйте его для настройки зон собственных доменов.
Вы также можете проверить правильность настройки с помощью различных внешних сервисов (к примеру https://smtp.bz/ )

1.4. Балансировка кластера вычислительных узлов

Направьте в сторону Почтового сервера TEGU поток сообщений.
С помощью интегрированного системного лога наблюдайте поочередную обработку потока сообщений вычислительными узлами сервера.

1.5. Отказоустойчивость (резервирование) TEGU

Направьте в сторону Почтового сервера TEGU поток сообщений.
Поочередно отключайте вычислительные узлы TEGU, при этом с помощью интегрированного системного лога наблюдайте поочередную обработку потока сообщений теми вычислительными узлами сервера, которые остались в работе.
Сохраняйте управление над кластером TEGU (т.е. доступ к Панели управления) до тех пор, пока работоспособен хотя бы один вычислительный узел.

1.6. Нагрузочное тестирование

С помощью специального приложения (к примеру Apache JMeter) создайте заведомо чрезмерный поток запросов к Почтовому серверу TEGU по протоколам SMTPS, IMAPS, CalDAV, CardDAV. С помощью системного лога наблюдайте за поведением сервера. Выбирая архитектурное решение для размещения Apache JMeter, лучше сделать это с собственной локальной сети т.к. пропускная способность внешнего канала связи скорее всего не позволит вам создать действительно достойный трафик.
По поведению сервера судите о достаточности аппаратных ресурсов, выделенных вами для TEGU.

1.7. Тестирование антивирусного и антиспамового ПО

Подключите антивирусное и антиспамовое ПО по протоколу Milter.
Направьте в сторону TEGU некоторое количество сообщений.
С помощью интегрированного системного лога анализируйте поведение сервера.
С помощью почтовой программы прочтите отметки антивирусного и антиспамового ПО в заголовках сообщений.
С помощью правил обработки входящих сообщений настройте действия сервера в ответ на сообщения в заголовках писем.

2. Панель управления сервером

  1. Откройте с помощью браузера Панель управления сервером по адресу https://mail.tegu.online:9999 , введите административный логин и пароль.
    Результат: Наблюдайте систему меню и элементы управления сервером. Используйте параметры, отображенные на дашборде для подключения пользовательских программ.
  2. Выполните выход из системы управления и войдите с помощью пользовательского аккаунта login: pwd: ххххххх .
    Результат: Наблюдайте систему меню и элементы управления пользовательским профилем. Используйте параметры, отображенные на дашборде для подключения пользовательских программ.

3. Основные функции почтовой подсистемы

3.1. Аутентификация

Доступность и аутентификация IMAP

Подключение к серверу по протоколу IMAPS удобнее всего проверить с помощью утилиты openssl. Выполните сценарий из примера ниже:

$ openssl s_client -connect mail.tegu.online:993
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = mail.tegu.online
verify return:1
---
Certificate chain
 0 s:CN = mail.tegu.online
   i:C = US, O = Let's Encrypt, CN = R3
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Dec 28 10:20:52 2023 GMT; NotAfter: Mar 27 10:20:51 2024 GMT
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Sep  4 00:00:00 2020 GMT; NotAfter: Sep 15 16:00:00 2025 GMT
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
   a:PKEY: rsaEncryption, 4096 (bit); sigalg: RSA-SHA256
   v:NotBefore: Jan 20 19:14:03 2021 GMT; NotAfter: Sep 30 18:14:03 2024 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIE7TCCA9WgAwIBAgISBOK5RG1yE1V4NeDeXdHNY1QqMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMzEyMjgxMDIwNTJaFw0yNDAzMjcxMDIwNTFaMBsxGTAXBgNVBAMT
EG1haWwudGVndS5vbmxpbmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDG+iMOf4+E5oY3IkYxfjLg+ifgocK6gVT5A94uvfOKCQk7AYE1y5N8Rp5dfCkl
lGnB9H2+XRIVMBE3Ey3zCM482h+PJaKEnzB6ygcuK41q8ovGTeLbG2RiqYHRdGxk
9iYS/wdtmWu+vXfQy+YRQzNW4uHYs/tUZ1JYqT6vzXJeGeMKHv6V1hZz5KhLIbgv
Fyu0wazy2GR6E3I1YNopv/i2OY1MZ8SVgLor1nYTcCqqTHa+omrBebYNCizJfvdo
Rl+9AhbqfQZVH4RRzieMx+M412nSeYkNKhxaPMch0uPD/VMJagfpXhReBBsWul0z
s8u43+vm9sqW4X/NpfELR84dAgMBAAGjggISMIICDjAOBgNVHQ8BAf8EBAMCBaAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYD
VR0OBBYEFNZALKKtXM0MPYXhTFrVQeeGp/ZVMB8GA1UdIwQYMBaAFBQusxe3WFbL
rlAJQOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDov
L3IzLm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5v
cmcvMBsGA1UdEQQUMBKCEG1haWwudGVndS5vbmxpbmUwEwYDVR0gBAwwCjAIBgZn
gQwBAgEwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdgA7U3d1Pi25gE6LMFsG/kA7
Z9hPw/THvQANLXJv4frUFwAAAYywJ+FCAAAEAwBHMEUCIQCTj716IucHj+kT6aVG
/t2fInv898xRagrDHr1rN4puugIgWKi01xVC/HjY9Ssw+xtsEEmyHaVZiZf965Ui
U8Rmg6sAdgDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYywJ+Fw
AAAEAwBHMEUCIETFIXZ7DyCQdUC2eOFXkkMdtV4cKHvt2LoPtIE1K01HAiEAtHHU
p2iAd5Yl0cCm6wGPhW1wzn5XmAJtXGO58cuOyuwwDQYJKoZIhvcNAQELBQADggEB
AI0bEM/jhoP/Ks9i2l97YMBSqw7y8rWJ4baX6r5d7Z/W8dFgO6g21+vWWNAPV2Xx
Rk5GFmY9DUhBg3P+d94N3r5rnnPgcETWKuWDncqWSGeUaMkYIvvbpkwvLy1I2h7C
9rpioPIqlbbmxyx9tseFSjR1ktnBivFb+V5UIfLI+TFa/FiO26UyjVPky21WFHlu
RqdV4JrqjpPJ8yJHc/PzM9TPng9OaFJ4ereJ6s0+FaN4vAGNzy7hU/bxWVGxVoQR
B/a4P1gU4oEl4qp/DlVBFhtdaVNn5QSg23FvlQcDLKRMHlCiIzTvCzZ8VARibBoJ
0E12qKPrOp+bD5f922Cu6tM=
-----END CERTIFICATE-----
subject=CN = mail.tegu.online
issuer=C = US, O = Let's Encrypt, CN = R3
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4501 bytes and written 386 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_128_GCM_SHA256
    Session-ID: 30C9C070D27CF79FC9BDB69546EEE3E1A3DF879EBDC4DD545BCD9D115C8291CE
    Session-ID-ctx: 
    Resumption PSK: C83741A728F647D9BA9D087C8AF978338307A681E8ABCF1890B5A64EDBE67ABB
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - d0 d1 6a ee e4 17 d7 8f-49 1c c7 45 e6 84 6a e9   ..j.....I..E..j.
    0010 - 7f 02 dc 11 ee b9 ae 3e-21 17 20 c4 5b a3 24 ad   .......>!. .[.$.
    0020 - 83 b1 e9 85 a0 7c a7 b2-e2 31 5f 8f a8 23 51 d4   .....|...1_..#Q.
    0030 - 52 11 dc 52 b1 a5 eb 17-b0 37 dd ac ec 90 92 a5   R..R.....7......
    0040 - e6 c2 14 5b 77 7f 56 ba-b1 26 ad e2 ff b2 5f 02   ...[w.V..&...._.
    0050 - 1f 29 39 9a b1 9b 48 4f-58 3e 41 42 39 82 46 4c   .)9...HOX>AB9.FL
    0060 - af a5 37 c8 1c b6 83 44-b8                        ..7....D.

    Start Time: 1706805153
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
* OK [CAPABILITY IMAP4rev1 ID AUTH=LOGIN AUTH=PLAIN]

a1 login monica@tegu.online Qwe123Poi
* CAPABILITY IMAP4rev1 ID QUOTA NAMESPACE
a1 OK Logged in.

a2 LIST "" "*" 
* LIST (\HasNoChildren) "." INBOX
* LIST (\HasNoChildren \Sent) "." &BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-
* LIST (\HasNoChildren \Archive) "." &BBAEQARFBDgEMg-
* LIST (\HasNoChildren \Trash) "." &BBoEPgRABDcEOAQ9BDA-
* LIST (\HasNoChildren \Junk) "." &BCEEPwQwBDw-
* LIST (\HasNoChildren \Drafts) "." &BCcENQRABD0EPgQyBDgEOgQ4-
* LIST (\HasNoChildren) "." Sent
* LIST (\HasNoChildren) "." Trash
* LIST (\HasNoChildren \Recovery) "." __RECOVERY__
* LIST (\HasNoChildren) "." "&BB4EMQRJBDgENQ- &BD8EMAQ,BDoEOA-.&BCAEMARBBEEESwQ7BDoEMA- CNEWS" 
* LIST (\HasNoChildren) "." "&BB4EMQRJBDgENQ- &BD8EMAQ,BDoEOA-.&BCAEMARBBEEESwQ7BDoEMA- &BBwEOAQ9BEYEOAREBEAESw-" 
a2 OK LIST completed.

a3 EXAMINE INBOX
* FLAGS ($Forwarded $has_cal $label1 Junk NonJunk \Answered \Deleted \Draft \Flagged \Seen)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 7 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 134205729] UIDs valid
* OK [UIDNEXT 595] Predicted next UID
a3 OK [READ-ONLY] Examine completed

a4 LOGOUT
* BYE Logging out
a4 OK Logout completed.
closed

Доступность и аутентификация SMTPS

Подключение к серверу по протоколу SMTPS удобнее всего проверить с помощью утилиты openssl.
Но прежде надо выполнить подготовительную функцию, а именно подготовить используемые логин и пароль в формате base64, это потребуется нам во время сессии.

Для этого выполните следующую команду:

$ echo -ne "\0<логин>\0<пароль>" | base64
AG1vbmljYUB0ZWd1Lm9ubGluZQBRd2UxMjNQb2k=

Не забывайте про нулевые байты \0

Теперь выполните сценарий из примера ниже:

$ openssl s_client -starttls smtp -connect mail.tegu.online:25
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = mail.tegu.online
verify return:1
---
Certificate chain
 0 s:CN = mail.tegu.online
   i:C = US, O = Let's Encrypt, CN = R3
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Dec 28 10:20:52 2023 GMT; NotAfter: Mar 27 10:20:51 2024 GMT
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Sep  4 00:00:00 2020 GMT; NotAfter: Sep 15 16:00:00 2025 GMT
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
   a:PKEY: rsaEncryption, 4096 (bit); sigalg: RSA-SHA256
   v:NotBefore: Jan 20 19:14:03 2021 GMT; NotAfter: Sep 30 18:14:03 2024 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIE7TCCA9WgAwIBAgISBOK5RG1yE1V4NeDeXdHNY1QqMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMzEyMjgxMDIwNTJaFw0yNDAzMjcxMDIwNTFaMBsxGTAXBgNVBAMT
EG1haWwudGVndS5vbmxpbmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDG+iMOf4+E5oY3IkYxfjLg+ifgocK6gVT5A94uvfOKCQk7AYE1y5N8Rp5dfCkl
lGnB9H2+XRIVMBE3Ey3zCM482h+PJaKEnzB6ygcuK41q8ovGTeLbG2RiqYHRdGxk
9iYS/wdtmWu+vXfQy+YRQzNW4uHYs/tUZ1JYqT6vzXJeGeMKHv6V1hZz5KhLIbgv
Fyu0wazy2GR6E3I1YNopv/i2OY1MZ8SVgLor1nYTcCqqTHa+omrBebYNCizJfvdo
Rl+9AhbqfQZVH4RRzieMx+M412nSeYkNKhxaPMch0uPD/VMJagfpXhReBBsWul0z
s8u43+vm9sqW4X/NpfELR84dAgMBAAGjggISMIICDjAOBgNVHQ8BAf8EBAMCBaAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYD
VR0OBBYEFNZALKKtXM0MPYXhTFrVQeeGp/ZVMB8GA1UdIwQYMBaAFBQusxe3WFbL
rlAJQOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDov
L3IzLm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5v
cmcvMBsGA1UdEQQUMBKCEG1haWwudGVndS5vbmxpbmUwEwYDVR0gBAwwCjAIBgZn
gQwBAgEwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdgA7U3d1Pi25gE6LMFsG/kA7
Z9hPw/THvQANLXJv4frUFwAAAYywJ+FCAAAEAwBHMEUCIQCTj716IucHj+kT6aVG
/t2fInv898xRagrDHr1rN4puugIgWKi01xVC/HjY9Ssw+xtsEEmyHaVZiZf965Ui
U8Rmg6sAdgDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYywJ+Fw
AAAEAwBHMEUCIETFIXZ7DyCQdUC2eOFXkkMdtV4cKHvt2LoPtIE1K01HAiEAtHHU
p2iAd5Yl0cCm6wGPhW1wzn5XmAJtXGO58cuOyuwwDQYJKoZIhvcNAQELBQADggEB
AI0bEM/jhoP/Ks9i2l97YMBSqw7y8rWJ4baX6r5d7Z/W8dFgO6g21+vWWNAPV2Xx
Rk5GFmY9DUhBg3P+d94N3r5rnnPgcETWKuWDncqWSGeUaMkYIvvbpkwvLy1I2h7C
9rpioPIqlbbmxyx9tseFSjR1ktnBivFb+V5UIfLI+TFa/FiO26UyjVPky21WFHlu
RqdV4JrqjpPJ8yJHc/PzM9TPng9OaFJ4ereJ6s0+FaN4vAGNzy7hU/bxWVGxVoQR
B/a4P1gU4oEl4qp/DlVBFhtdaVNn5QSg23FvlQcDLKRMHlCiIzTvCzZ8VARibBoJ
0E12qKPrOp+bD5f922Cu6tM=
-----END CERTIFICATE-----
subject=CN = mail.tegu.online
issuer=C = US, O = Let's Encrypt, CN = R3
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4652 bytes and written 419 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
250 SMTPUTF8
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_128_GCM_SHA256
    Session-ID: F59FCCB0C1F2F9DFE58466407DB5F32B1A72391E6AB778041F35AB33E0AA742A
    Session-ID-ctx: 
    Resumption PSK: 743B7B4FCF747DC6731831B667728172A792097BCC29345EDC3205E9D748301F
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - d3 42 10 43 6f 8f 5e eb-1f 0e 52 dc d4 39 42 5e   .B.Co.^...R..9B^
    0010 - ad 11 1e d8 41 18 b6 0a-10 99 1b 01 ae e3 3f 7c   ....A.........?|
    0020 - da 94 f6 90 89 d2 94 3b-00 33 46 48 c4 c5 85 81   .......;.3FH....
    0030 - a5 4b 09 67 ab 7b 09 c2-72 20 9b 2a 0f 8a 47 09   .K.g.{..r .*..G.
    0040 - e5 29 07 03 a9 51 62 72-cd 00 cf 16 16 30 dc e2   .)...Qbr.....0..
    0050 - e9 13 1a ea e5 c6 eb ff-27 16 fb 15 f2 40 bc 0e   ........'....@..
    0060 - 43 9c 39 64 9a 71 fc 7d-e2                        C.9d.q.}.

    Start Time: 1706954445
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK

Необходимо выполнить команду EHLO

EHLO tegu.online
250-mail.tegu.online
250-8BITMIME
250-SIZE 36700160
250-AUTH PLAIN LOGIN
250-PIPELINING
250 SMTPUTF8

Выбираем метод PLAIN

AUTH PLAIN
334

Нам предлагают ввести логин и пароль в формате base64. Эту комбинацию мы подготовили ранее. Вводим:

AG1vbmljYUB0ZWd1Lm9ubGluZQBRd2UxMjNQb2k=
235 Authentication successful

Аутентификация успешна.Теперь можно продолжить обычную сессию SMTP.

MAIL FROM: monica@tegu.online
250 OK
....

Подключение почтовой программы

Настройте почтовую программу согласно рекомендациям на дашборде Панели управления Почтового сервера TEGU. Если вы правильно настроили ресурсные записи доменной зоны, то все ресурсы CalDAV и CardDAV должны подключиться автоматически. Если нет, проверьте правильность настройки доменной зоны согласно "Рекомендации для зоны DNS", приведенной на дашборде Панели управления (в аккаунте admin).
Результат: В почтовой программе создана учетная запись, в почтовом интерфейсе отображаются базовые папки IMAP (Входящие, Отправленный и др.).

3.2. Создание почтовых ящиков

Почтовые ящики в почтовом сервере создаются автоматически при первой аутентификации пользователя. Таким образом, для создания почтового ящика необходимо, чтобы на сервере каталогов было разрешено его использование (поле email заполнено значением с именем почтового адреса). Фактическое создание почтового ящика вы можете контролировать в диалоге Панель управления сервером https://mail.tegu.online:9999/ "Хранилище почты / Панель управления / Почтовые ящики".

Тестирование локальной доставки сообщений

Создайте и отправьте email-сообщение локальному пользователю из вашей доменной зоны. К примеру: MAIL FROM: , RCPT TO: .
Отследите доставку сообщения в логе почтового сервера с помощью команды: journalctl -f -u tegu (при этом не забудьте проверить, что в конфигурации включено логирование: [Log] debug =true). С помощью почтовой программы наблюдайте доставку сообщений в обе стороны.

Тестирование внешней доставки сообщений

Создайте и отправьте email-сообщение внешнему адресату. К примеру: MAIL FROM: , RCPT TO: . В логе и в почтовой программе наблюдайте обмен сообщениями с внешними адресатами.

Управление сообщениями

Создайте дополнительную IMAP-папку и методом перетаскивания (Drag’n’Drop) переместите одно или несколько сообщений из одной папки в другую. Наблюдайте адекватную реакцию почтовой программы. Используйте метод для дальнейшей ручной сортировки своих сообщений.

Групповое управление сообщениями

Пользовательский уровень

Откройте Панель управления сервером https://mail.tegu.online:9999/ с пользовательским аккаунтом. В разделе "Общие папки" добавьте папку, присвойте ей имя на русском или английском языке (например: Общая папка Моники). С помощью кнопки "Редактировать доступ" добавьте доступ для пользователей или групп пользователей.
Для добавления доступа пользователям, введите email-адреса этих пользоваталей, для добавления групп используете выбор из списка доступных вам групп.
Помните, что папки поддерживают иерархию, таким образом, можно создать любое количество папок верхнего уровня, так и подпапок, находящихся внутри. При этом доступы не наследуются, для каждой из папок задается собственный уровень доступа.
К примеру мы добавили доступ для пользователя: .

Откройте почтовую программу с аккаунтом и обновите список папок IMAP. Наблюдайте появление папки "Общая папка Моники" в контейнере "Общие папки".
Теперь перейдите в почтовую программу с аккаунтом и обновите список папок IMAP. Наблюдайте появление папки "Общая папка Моники" в контейнере "Общие папки".
Таким образом, эти два пользователя разделяют общую папку, созданную пользователем .
Используйте общую папку для ручной сортировки, а также для написания автоматических правил сортировки на стороне сервера.

Уровень администратора

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора. В разделе "Общие папки" добавьте папку, присвойте ей имя на русском или английском языке (например: Общая системная папка). С помощью кнопки "Редактировать доступ" добавьте доступ для пользователей или групп пользователей.
К примеру мы добавили доступ для пользователя: и .
Помните, что папки поддерживают иерархию, таким образом, можно создать любое количество папок верхнего уровня, так и подпапок, находящихся внутри. При этом доступы не наследуются, для каждой из папок задается собственный уровень доступа.
Откройте почтовую программу и обновите список папок IMAP. Наблюдайте появление папки "Общая системная папка" в контейнере "Общие папки". Обратите внимание, что системная папка управляется администратором и не исчезает при удалении пользовательского аккаунта.
Используйте общие системные папки для ручной сортировки, а также для написания автоматических правил сортировки на стороне сервера.

3.3. Маршрутизация сообщений

В силу большой вариативности данный пункт испытаний предполагает проведение большого числа различных экспериментов с не столько с целью тестирования, сколько с целью ознакомления с различными механизмами маршрутизации.

Маршрутизация входящих сообщений на стороне сервера

Обработка выполняется на этапе очереди.

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора. В разделе "Маршрутизация / Входящих писем" для выбранного домена добавьте правило. Заполните поля "Название правила", условия выборки и действия.
В поле "Условия" выберите один из следующих критериев:
  • Дата
  • Кому
  • От кого
  • Тема
  • Получатель копии
  • Размер
  • Количество очков спама
  • Тело письма
  • Все письма
    При необходимости добавьте необходимое количество условий. Обратите внимание на логический ключ "и" "или" при обработке нескольких условий.
В поле "Действия" выберите одно или несколько действий из списка:
  • Положить в паку
  • Копировать в папку
  • Отметить как прочтенное
  • Отметить флагом
  • Перенаправить на
  • Отправить копию на
  • Ответить сообщением
  • Отклонить
  • Остановить обработку правил

Обратите внимание, что при выборе действия "Остановить обработку правил" все последующие действия, а также пользовательские правила для данной выборки не будут выполняться.

Направьте необходимое количество входящих писем в почтовый ящик пользователя таким образом, чтобы проверить каждое из условий и действий.

Маршрутизация исходящих сообщений на стороне сервера

Обработка выполняется на этапе очереди.

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора. В разделе "Маршрутизация / Исходящих писем" для выбранного домена добавьте правило. Заполните поля "Название правила", условия выборки и действия.
В поле "Условия" выберите один из следующих критериев:
  • Кому
  • От кого
  • Тема
  • Тело письма
  • Группа отправителя
  • Группа получателя
  • Все письма
    При необходимости добавьте необходимое количество условий. Обратите внимание на логический ключ "и" "или" при обработке нескольких условий.
В поле "Действия" выберите одно или несколько действий из списка:
  • Преобразовать адрес отправителя
  • Преобразовать адрес получателя
  • Добавить копию сообщения
  • Отправить на премодерацию
  • Отправить через смарт-хост
  • Запретить доставку внешним пользователям
  • Запретить доставку больше N писем внешним пользователям в день
  • Запретить доставку больше N писем внутренним пользователям в день
  • Запретить доставку группе
  • Запретить доставку участникам группы
  • Запретить доставку
  • Разрешить доставку внешним пользователям
  • Разрешить доставку группе
  • Разрешить доставку участникам группы
  • Разрешить доставку
  • Уведомление отправителя об ограничении

Направьте необходимое количество входящих писем в почтовый ящик пользователя таким образом, чтобы проверить каждое из условий и действий.

Изменение адресов на стороне сервера

Преобразование производится на этапе SMTP-сессии.

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора. В разделе "Маршрутизация / Изменение адресов" добавьте правило. Заполните поля "Название правила", условия выборки и действия.
В поле "Условия" выберите один из следующих критериев:
  • Кому
  • От кого
  • Группа отправителя
  • Группа получателя
  • Все письма
    При необходимости добавьте необходимое количество условий. Обратите внимание на логический ключ "и" "или" при обработке нескольких условий.
В поле "Действия" выберите одно или несколько действий из списка:
  • Преобразовать адрес отправителя
  • Преобразовать адрес получателя
При преобразовании адресов используется следующее правило *@(old_host.ru) => new_host.ru
На практике это означает:
  • Операнд * - любое количество символов, которое при преобразовании остается неизменным;
  • Операнд () - любое количество символов, которое будет заменено на фразу, стоящую после =>

Для тестирования любым удобным способом направьте серверу письмо, адресованное в домен, который он не обслуживает.
К примеру сервер TEGU настроен на обслуживание домена tegu.online.
Направляем ему письмо, адресованное , но при этом создаем правило: *@(example.com) => tegu.online
Сервер не должен принять письмо для т.к. не обслуживает домен example.com, однако на этапе SMTP-сессии (после команды data), прочтя заголовок сервер TEGU применяет правило преобразования адресов, в результате чего преобразуется в , такой пользователь в разрешенном домене на TEGU есть, следовательно, сервер принимает и доставляет письмо.

3.4. Разрешения и блокировки

Система защиты авторизации

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора.
Включите опцию "Основные настройки / Включить систему защиты авторизации (бан)".
Установите в поле "Основные настройки / Макс. количество провалов авторизации до бана" значение = 3.
Намеренно измените пароль тестируемого пользователя на неправильный.
Попробуйте выполнить авторизацию несколько раз.
После третье провальной попытки сервер заблокирует IP-адрес данного клиента.
Наблюдайте уведомление об этом в логе, вы также можете контролировать список таких адресов в опции "Заблокированные IP".
Вы можете вручную удалить IP адрес из блокировок.
Если вы не сделаете этого, то IP-адрес освободится автоматически через время, указанное в поле "Основные настройки / Длительность бана (минуты)".
Добавьте IP-адрес в поле "Основные настройки / Список исключения IP системы защиты авторизации (192.168.0.1 или 192.168.0.0/24)" - сервер не будет применять систему защиты к данному адресу.

Использование Greylist

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора.
Установите в поле "Основные настройки / Включить Greylist" значение On.
Направьте любое письмо с внешнего адреса в адрес пользователя сервера TEGU (к примеру: ).
Наблюдайте прием сообщения в логе.
Во время первой попытки вы увидите, greylisted (это означает, что попытка направить письмо отвергнута, но TEGU заполнил в сером списке домен и IP-адрес отправителя).
Когда сервер предпримет новую попытку отправки сообщения, в случае если домен и IP-адрес совпадут с теми, которые запомнены в сером списке, то адрес помещается в белый список и TEGU примет сообщение.
Адрес находится в сером списке в течение срока, указанного в поле "Основные настройки / Срок жизни записи серого списка greylist-а (часы)".
Адрес находится в белом списке в течение срока, указанного в поле "Основные настройки / Срок жизни записи белого списка greylist-а (часы)".
Добавьте домен в поле "Основные настройки / Список исключения доменов отправителей для greylist-а (один на строку)" - сервер не будет применять технологию Greylist к сообщениям данного домена.

Черные списки email и IP-адресов

Добавьте ваш IP-адрес в поле "Белые и черные списки SMTP / Черный IP серверов отправителей". Попробуйте выполнить авторизацию. Читайте записи в логе.
Добавьте ваш email-адрес в поле "Белые и черные списки SMTP / Черный email отправителей". Попробуйте выполнить авторизацию. Читайте записи в логе.

Белые списки email и IP-адресов

Добавьте ваш IP-адрес в поле "Белые и Белые списки SMTP / Белый IP серверов отправителей". Попробуйте выполнить авторизацию. Читайте записи в логе.
Добавьте ваш email-адрес в поле "Белые и Белые списки SMTP / Белый email отправителей". Попробуйте выполнить авторизацию. Читайте записи в логе.

3.5. Восстановление удаленных сообщений

Удаленные в почтовом ящике сообщения попадают в "Корзину". Однако, при опустошении Корзины сообщения не удаляются безвозвратно.
Для восстановления сообщения откройте Панель управления сервером https://mail.tegu.online:9999/ с пользовательским аккаунтом.
Откройте опцию меню "Папка восстановления".
Включите опцию "Отображать папку восстановления" и нажмите "Сохранить".
Откройте почтовую программу и синхронизируйте учетную запись.
Наблюдайте появление в списке IMAP-папок новой папки "_RECOVERY_".
Эта папка содержит все письма, удаленные из Корзины, либо удаленные из ящика мимо Корзины.
Сообщения в папке "_RECOVERY_" не могут быть удалены, но вы можете скопировать сообщения для его восстановления.

Управляйте папками "_RECOVERY_", войдя с правами администратора в Панель управления сервером https://mail.tegu.online:9999/ "Хранилище почты / Панель управления / Почтовые ящики".

4. Основные функции подсистемы адресных книг

4.1. Тестирование глобального списка адресов (GAL)

В большинстве программ (к примеру Thunderbird, Evolutinon, DAVx5) подключение DAV-ресурсов происходит автоматически в том случае, если вы правильно настроили ресурсные записи в доменной зоне. В противном случае используйте для подключения URL, который вы найдете на дашборде Панели управления сервером (как в пользовательском, так и в административном интерфейсах).
Откройте в почтовой программе вкладку "Адресные книги" и проконтролируйте подключение GAL.
Обратите внимание, что все элементы GAL доступны всем пользователям только для чтения (т.к. это по определению доменные данные).

4.2. Персональные сетевые адресные книги

По умолчанию в аккаунте каждого пользователя автоматически создается единственная персональная сетевая адресная книга "Персональная".
Откройте в почтовой программе вкладку "Адресные книги" и проконтролируйте подключение адресной книги "Персональная".
Откройте Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами пользователя.
Перейдите в меню "Адресные книги / Мои адресные книги".
С помощью кнопки "Создать" создайте новую сетевую адресную книгу (к примеру "Рабочая").
Откройте в почтовой программе вкладку "Адресные книги" и проконтролируйте подключение адресной книги "Рабочая".

4.3. Общие сетевые адресные книги

Пользовательский уровень

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами пользователя.
Перейдите в меню "Адресные книги / Мои адресные книги".
С помощью кнопки "Создать" создайте новую сетевую адресную книгу (к примеру "Общая адресная книга Моники").
С помощью кнопки "Редактировать доступ" добавьте доступ для пользователей или групп пользователей.
Для добавления доступа пользователям, введите email-адреса этих пользоваталей, для добавления групп используйте выбор из списка доступных вам групп.
Для каждого пользователя установите уровень доступа к адресной книге. Допускается:
  • Полный
  • Только чтение

Откройте в почтовой программе вкладку "Адресные книги" и проконтролируйте подключение общей адресной книги "Общая адресная книга Моники" для всех пользователей, которым вы дали права.

В случае если предоставлен полный доступ, записи адресной книги доступны для редактирования. Все книги в любом случае синхронизируются со всеми клиентскими устройствами пользователя.

Уровень администратора

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора.
Перейдите в меню "Адресные книги / Общие адресные книги".
С помощью кнопки "Создать" создайте новую сетевую адресную книгу (к примеру "Общая системная адресная книга").
С помощью кнопки "Редактировать доступ" добавьте доступ для пользователей или групп пользователей.
Для добавления доступа пользователям, введите email-адреса этих пользоваталей, для добавления групп используйте выбор из списка доступных вам групп.
Для каждого пользователя установите уровень доступа к адресной книге. Допускается:
  • Полный
  • Только чтение

Откройте в почтовой программе вкладку "Адресные книги" и проконтролируйте подключение общей адресной книги "Общая системная адресная книга" для всех пользователей, которым вы дали права.
Обратите внимание, что системная адресная книга управляется администратором и не исчезает при удалении пользовательского аккаунта.

В случае если предоставлен полный доступ, записи адресной книги доступны для редактирования. Все книги в любом случае синхронизируются со всеми клиентскими устройствами пользователя.

5. Основные функции подсистемы календарей

В большинстве программ (к примеру Thunderbird, Evolutinon, DAVx5) подключение DAV-ресурсов происходит автоматически в том случае, если вы правильно настроили ресурсные записи в доменной зоне. В противном случае используйте для подключения URL, который вы найдете на дашборде Панели управления сервером (как в пользовательском, так и в административном интерфейсах).
Откройте в почтовой программе вкладку "Календари" и проконтролируйте подключение календарей.

5.1. Персональные сетевые календари

По умолчанию в аккаунте каждого пользователя автоматически создается единственный сетевой календарь "Персональный".
Откройте в почтовой программе вкладку "Календари" и проконтролируйте подключение календаря "Персональный".

5.2. Общие сетевые календари

Пользовательский уровень

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами пользователя.
Перейдите в раздел "Календари / Мои календари". Кнопкой "Создать" создайте новый календарь.
Для этого задайте:
  • Название - как календарь будет отображаться в программе.
  • Предоставлять информацию о занятом времени (Free/Busy) - Если отметить этот пункт, то информация данного календаря будет учитываться в графике занятости.
  • Не отображать события старше N недель - TEGU для экономии трафика при синхронизации календарей (в ряде случаев это может привести даже к невозможности синхронизации) умеет показывать не все события, а лишь в заданном диапазоне. Используйте параметр чтобы ограничить глубину показа прошедших событий.
  • Не отображать события новее N недель - глубина во времени для показа предстоящих событий.
  • Цвет - цвет по умолчанию, который будет использован почтовой программой для данного календаря.
    Сохраните свойства календаря.

С помощью кнопки "Редактировать доступ" добавьте доступ для пользователей или групп пользователей.
Для добавления доступа пользователям, введите email-адреса этих пользоваталей, для добавления групп используете выбор из списка доступных вам групп.
Откройте почтовую программу с аккаунтами пользователей, которым предоставлен доступ, и обновите список календарей. Наблюдайте появление общего календаря.
Таким образом, эти два пользователя разделяют общий календарь, созданный пользователем.

Административный уровень

Откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора.
Перейдите в раздел "Календари / Общие календари / Домен". Кнопкой "Создать" создайте новый календарь.
Для этого задайте:
  • Название - как календарь будет отображаться в программе.
  • Предоставлять информацию о занятом времени (Free/Busy) - Если отметить этот пункт, то информация данного календаря будет учитываться в графике занятости.
  • Не отображать события старше N недель - TEGU для экономии трафика при синхронизации календарей (в ряде случаев это может привести даже к невозможности синхронизации) умеет показывать не все события, а лишь в заданном диапазоне. Используйте параметр чтобы ограничить глубину показа прошедших событий.
  • Не отображать события новее N недель - глубина во времени для показа предстоящих событий.
  • Цвет - цвет по умолчанию, который будет использован почтовой программой для данного календаря.

Сохраните свойства календаря.

С помощью кнопки "Редактировать доступ" добавьте доступ для пользователей или групп пользователей.
Для добавления доступа пользователям, введите email-адреса этих пользоваталей, для добавления групп используете выбор из списка доступных вам групп.
Откройте почтовую программу с аккаунтами пользователей, которым предоставлен доступ, и обновите список календарей. Наблюдайте появление общего календаря.
Таким образом, эти два пользователя разделяют общий календарь, созданный пользователем.

Обратите внимание, что системный календарь управляется администратором и не исчезает при удалении пользовательского аккаунта.

5.3. Создание событий

Создайте событие, при необходимости добавьте описание, приложения и ссылки, задайте периодичность повторов и напоминаний.
Дождитесь периодической синхронизации или синхронизируйте календарь вручную.
Откройте другую почтовую программу (к примеру на мобильном устройстве) и синхронизируйте календарь.
Наблюдайте событие в обоих календарях.

5.4 Приглашение пользователей

Создайте событие и пригласите к нему участников.
Если участники являются локальными для данного сервера TEGU наблюдайте их занятость в ближайшем к вашему временном диапазоне.
Отредактируйте время события с учетом занятости всех приглашенных участников.
Сохраните событие.

5.5. Уведомления о событиях

В общем случае уведомления о событиях могут быть отправлены как почтовым клиентом, так и сервером TEGU.
Конкретное поведение зависит от диалога между клиентом и сервером (они обмениваются доступными методами).
К примеру Thunderbird для случая, если сервер умеет отправлять уведомления, предлагает это делать серверу, но при необходимости вы можете это изменить на стороне почтовой программы.

Для управления уведомлениями на стороне сервера откройте Панель управления сервером https://mail.tegu.online:9999/ с правами администратора.
Выберите опцию "Календари / Общие настройки".
Здесь задаются параметры по умолчанию для всех календарей системы.
Задайте в параметре "Локальная часть (до @) адреса отправителя оповещений" адрес календаря, от имени которого сервер будет рассылать уведомления.
Создайте событие с приглашенными участниками, наблюдайте получение уведомлений участниками.

5.6. Напоминание о днях рождения

Следует понимать, что дни рождения и прочие даты, ассоциированные с контактами, хранятся не в календаре, а в адресных книгах.
Таким образом, их показ в календаре не является функцией сервера, а реализуется непосредственно клиентом.
К примеру, в Thunderbird для этого необходимо установить плагин Birthday Calendar и настроить даты каких именно адресных книг надо показывать в календаре.
Данная функция полностью совместима с Почтовым сервером TEGU.