Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • Елементарен сървър за електронна поща върху Debian 12

    Ако не сте следили статиите за Debian 12, горещо препоръчвам да ги прочетете, защото тази тема е продължение на предните. За пояснение: ● инсталирахме Debaian 12 ● настроихме Debian 12 ТУК ● настроихме DNS сървъра ТУК ● инсталирахме и настроихме Apache ТУК ● инсталирахме и настроихме MySQL и PHPMyAdmin ТУК Ще създадем най-елементарен сървър за електронна поща. За да работи правилно трябва да се пренасочат някои от портовете ако сте зад рутер. Ако пък сте директно в Интернет с реално IP то тогава освободете портовете в защитната стена. Портовете са: TCP - 25 - SMTP TCP - 587 - SMTP Start TLS TCP - 465 - SMTP SSL TCP - 110 - POP3 TCP - 995 - POP3 SSL TCP - 143 - IMAP Start TLS TCP - 993 - IMAP SSL TCP - 589 - IMAP4 SSL

    Как работи пощенския сървър

    Приема писма

    Pic01

    Изпраща писма

    Pic02

    Нагледни картинки за получаване и изпращане на електронна поща. Няма да пояснявам на https://tlan.net/menu/linux/debian/debian9/09Mail/mailDebian9.php подробно съм обяснил работата на пощенския сървър. Или ако обобщим, PostFix играе ролята на MTA агент (приема/праща) писма до отсрещния МТА агент (пощенски сървър), а Dovecot (MDA) агент, отговаря за управлението на пощенските кутии. Ще проверим няколко неща преди да почнем. Започваме с DNS-a.

    nslookup > my.tlan.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: my.tlan.net Address: 185.163.245.186 > set q=mx > my.tlan.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: my.tlan.net mail exchanger = 10 ns1.my.tlan.net. > exit

    Също ни е необходимо и пълното име на хоста (FQDN). По-нататък ще го ползваме когато инсталираме PostFix.

    hostname -f ns1.my.tlan.net

    Инсталиране на PostFix

    PostFix е агент за получаване/изпращане на писма. Той е основен компонент в мейл сървърите Да го инсталираме.

    apt update -y apt upgrade -y apt install postfix -y

    Pic01
    Pic02
    Pic03

    Забележете, FQDN на хоста ни е ns1.my.tlan.net, видяхме го малко по-нагоре Правим копие на конфигурационните файлове.

    cp /etc/postfix/main.cf /etc/postfix/main.cf.original cp /etc/postfix/master.cf /etc/postfix/master.cf.original


    Проверяваме PostFix дали работи правилно.

    telnet gmail-smtp-in.l.google.com 25 Trying 172.217.218.26... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP m7-20020a17090679c700b00a522e9112f5si6994578ejo.264 - gsmtp quit

    Връзваме се към пощенския сървър на Google. Първи извод !!!. PostFix се използва да се изпрати писмото до определен получател. Работи със SMTP протокол на порт 25. В момента говорим в много груб вариант. Не разглеждаме връзки с MySQL и т.н. Може да пратим тестово писмо до някой адрес. Примерно до tachko@mail.bg. И пак с уговорка, ползвайте за тест електронни пощи не от рода на Gmail, защото веднага ще блокират мейла. Имат високо ниво на сигурност. Ползвайте елементарни пощи. За теста ще ползваме помощна програма mail, която първо трябва да я получим от пакета MailUtils.

    apt install mailutils -y

    Инстаирахме набор от помощни програми за сървъри за електронни пощи. Да направим и теста. Пращаме писмо до tachko@mail.bg.

    echo test | mail tachko@mail.bg

    В пощенската кутия на tachko@mail.bg трябва да пристигне писмо от root без заглавие и със съдържание test. До тук всичко работи нормално. Да проверим в логовете какво се случва.

    cat /var/log/mail.log 2024-04-26T06:22:20.809158-04:00 ns1 postfix/pickup[2676]: C575214026E: uid=0 from=<root@ns1.my.tlan.net> 2024-04-26T06:22:20.814443-04:00 ns1 postfix/cleanup[5284]: C575214026E: message-id=<20240426102220.C575214026E@ns1.my.tlan.net> 2024-04-26T06:22:20.815779-04:00 ns1 postfix/qmgr[2677]: C575214026E: from=<root@ns1.my.tlan.net>, size=315, nrcpt=1 (queue active) 2024-04-26T06:22:22.867769-04:00 ns1 postfix/smtp[5286]: C575214026E: to=<tachko@mail.bg>, relay=mail.tachko.com[109.160.80.230]:25, delay=2.1, delays=0.01/0.01/0.22/1.8, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 1135C52C0C4B) 2024-04-26T06:22:22.868000-04:00 ns1 postfix/qmgr[2677]: C575214026E: removed

    Чрез PostFix изпратихме писмо от root@ns1.my.tlan.net до tachko@mail.bg. Веднага се набива на око, че ползваме root@ns1.my.tlan.net. Това е така защото работим на машината с главния потребител root, а пълното име (FQDN) на машината е ns1.my.tlan.net И ако проверим дали има запис там където се разполагат пощенските кутии за потребителя root@ns1.my.tlan.net ще видим следното:

    ls -l /var/mail/ total 0

    Няма нищо. Това е така защото не сме получили за сега нищо за потребителя, а само сме пращали. Дойде време да получим писмо. За целта правим обратното, пращаме от tachko@mail.bg до нас. Като казвам нас това означава адресс: root@my.tlan.net. За външния свят ние сме част от домейна my.tlan.net, а не хоста (машината) в домейна ns1.my.tlan.net.

    cat /var/log/mail.log 2024-05-02T05:28:04.898693-04:00 ns1 postfix/smtpd[3033]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T05:28:05.089795-04:00 ns1 postfix/smtpd[3033]: NOQUEUE: reject: RCPT from mx5.mail.bg[193.201.172.121]: 454 4.7.1 <root@my.tlan.net>: Relay access denied; from=<tachko@mail.bg> to=<root@my.tlan.net> proto=ESMTP helo=<mx5.mail.bg> 2024-05-02T05:28:05.135240-04:00 ns1 postfix/smtpd[3033]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8

    И още един тест. Пращаме от tachko@mail.bg до root@ns1.my.tlan.net

    cat /var/log/mail.log 2024-05-02T05:36:37.208474-04:00 ns1 postfix/smtpd[3057]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T05:36:37.408232-04:00 ns1 postfix/smtpd[3057]: 639FE140275: client=mx5.mail.bg[193.201.172.121] 2024-05-02T05:36:37.429221-04:00 ns1 postfix/cleanup[3059]: 639FE140275: message-id=<20fd8cd7ce2bbe290c13b71bcc9b59fc.mailbg@mail.bg> 2024-05-02T05:36:37.430594-04:00 ns1 postfix/qmgr[2661]: 639FE140275: from=<tachko@mail.bg>, size=1542, nrcpt=1 (queue active) 2024-05-02T05:36:37.430652-04:00 ns1 postfix/smtpd[3057]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7 2024-05-02T05:36:37.436703-04:00 ns1 postfix/local[3060]: 639FE140275: to=<root@ns1.my.tlan.net>, relay=local, delay=0.03, delays=0.03/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 2024-05-02T05:36:37.436819-04:00 ns1 postfix/qmgr[2661]: 639FE140275: removed ls -l /var/mail/ total 4 -rw------- 1 root mail 1654 May 2 05:36 root

    Писмото е пратено и доставено до пощенската кутия. Веднага бихте попитали защо първия път не стана. Отговора е прост. Защото когато инсталирахме PostFix казахме, че пред света (Интернет) ще се представя като ns1.my.tlan.net, затова можем да получаваме писма за root@ns1.my.tlan.net, а за root@my.tlan.net не можем. Нищо не е загубено, можем да поправим проблема.

    nano /etc/postfix/main.cf ### Търсим: mydestination = $myhostname, ns1.my.tlan.net, localhost.my.tlan.net, , localhost ### Заменяме на: mydestination = $myhostname, my.tlan.net, localhost.my.tlan.net, , localhost service postfix restart service postfix status

    Просто трием ns1.my.tlan.net, защото е едно и също с $myhostname. По-горе във файла се дефинира myhostname = ns1.my.tlan.net И наново пращаме писмо от tachko@mail.bg до root@my.tlan.net.

    cat /var/log/mail.log 2024-05-02T05:57:31.370947-04:00 ns1 postfix/smtpd[3544]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T05:57:31.576666-04:00 ns1 postfix/smtpd[3544]: 8CBD61407EF: client=mx5.mail.bg[193.201.172.121] 2024-05-02T05:57:31.597644-04:00 ns1 postfix/cleanup[3549]: 8CBD61407EF: message-id=<7a9524d64b38bb3326613e3009bfc85a.mailbg@mail.bg> 2024-05-02T05:57:31.598990-04:00 ns1 postfix/qmgr[3472]: 8CBD61407EF: from=<tachko@mail.bg>, size=1569, nrcpt=1 (queue active) 2024-05-02T05:57:31.599113-04:00 ns1 postfix/smtpd[3544]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7 2024-05-02T05:57:31.604734-04:00 ns1 postfix/local[3550]: 8CBD61407EF: to=<root@my.tlan.net>, relay=local, delay=0.03, delays=0.03/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 2024-05-02T05:57:31.604832-04:00 ns1 postfix/qmgr[3472]: 8CBD61407EF: removed

    Писмото е получено до root@my.tlan.net и записано във файла /var/mail/root Трябва да отговорим, защо потребителя на пощенската кутия е root и защо всички писма се записват в един общ файл. 1. Ползваме потребител root, защото работим с потребители от операционната система. По време на инсталацията създадохме два потребителя. Единия е root с пълни права върху системата и cccp с ограничени права. Така на практика имаме два потребителя на електронна поща. Ако искаме да не сме зависими от потребителите на операционната система ще се наложи да работим с виртуални домейни и виртуални потребители. 2. Писмата се записват в един общ файл защото работим по системата MBOX. Остарял начин на управление на писмата но за простота ще работим с него. Другия начин е ползването на Maildir но това ще е в следваща статия. Да видим и самото писмо:

    cat /var/mail/root ======================== Начало на първо писмо ">======================== From tachko@mail.bg Thu May 2 05:36:37 2024 Return-Path: <tachko@mail.bg> X-Original-To: root@ns1.my.tlan.net Delivered-To: root@ns1.my.tlan.net Received: from mx5.mail.bg (mx5.mail.bg [193.201.172.121]) by ns1.my.tlan.net (Postfix) with ESMTPS id 639FE140275 for <root@ns1.my.tlan.net>; Thu, 2 May 2024 05:36:37 -0400 (EDT) Received: from mail.bg (unknown [10.0.0.37]) by mx5.mail.bg (Postfix) with ESMTPA id EBFBC8098D52 for <root@ns1.my.tlan.net>; Thu, 2 May 2024 12:36:36 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mail.bg; s=default; t=1714642597; bh=irW/KUnW6bQ/FEP3xsi4YQfoGLLHeId3Pkl+L46EeYc=; h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type; b=Rd3geQWGgvxWU7NIVLcgYCjSHFiFywg67QQEC0lnHXHbb5oUOqj9LNWzj0kaFXnig /Ood1uUlnKPuWVlRp/6lcIq86jmh0rGp/3vRVcdYigw0T0MXZ986vmEJyiVdjTZ3V5 NRNCoN06Buk1K65Jgobbas3b/liXliFsWwPCocbo= Message-ID: <20fd8cd7ce2bbe290c13b71bcc9b59fc.mailbg@mail.bg> Date: Thu, 2 May 2024 12:36:36 +0300 Subject: s From: Tachko Tachev <tachko@mail.bg> To: root@ns1.my.tlan.net User-Agent: Mail.BG Webmail MIME-Version: 1.0 Content-Type: multipart/alternative;boundary="----=_20240502123636_21157" X-Priority: 3 (Normal) Importance: Normal X-Composed: 2024-05-02T12:36:36+03:00 ------=_20240502123636_21157 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable =0A=0A=0As ------=_20240502123636_21157 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <p valid=3D"true" style=3D"line-height: 16px; font-size: 13px; font-family:= Tahoma, sans-serif; margin: 16px 0px;">s</p> ------=_20240502123636_21157-- ======================== Край на първо писмо ">======================== ======================== Начало на второ писмо ">======================== From tachkot@mail.bg Thu May 2 05:57:31 2024 Return-Path: <tachko@mail.bg> X-Original-To: root@my.tlan.net Delivered-To: root@my.tlan.net Received: from mx5.mail.bg (mx5.mail.bg [193.201.172.121]) by ns1.my.tlan.net (Postfix) with ESMTPS id 8CBD61407EF for <root@my.tlan.net>; Thu, 2 May 2024 05:57:31 -0400 (EDT) Received: from mail.bg (unknown [10.0.0.37]) by mx5.mail.bg (Postfix) with ESMTPA id 744998098D63 for <root@my.tlan.net>; Thu, 2 May 2024 12:57:29 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mail.bg; s=default; t=1714643849; bh=lL8bKvkqb9gxXzg1u4x297mwyNMr4/g0FGYK9id4QQY=; h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type; b=NqY5+Dg+JMwE0VcZCzO9F3fQdaCqDGaxPogvNFrNpmYB8FFJMFo9aLGmMGXdvJ/Rt sRvKy698XJZ75Ur+RaaZ1k6JFdpkWz/5FcJ4EAWAAKqor0Pk3ZHFoVZ4naxr7f3SK5 FdKuownOiuI1MeI4KbBTbz6KvJZaFtfoOHvjxAZY= Message-ID: <7a9524d64b38bb3326613e3009bfc85a.mailbg@mail.bg> Date: Thu, 2 May 2024 12:57:29 +0300 Subject: d From: Tachko Tachev <tachko@mail.bg> To: =?utf-8?B?cm9vdEBteS50bGFuLm5ldMKg?= <root@my.tlan.net> User-Agent: Mail.BG Webmail MIME-Version: 1.0 Content-Type: multipart/alternative;boundary="----=_20240502125729_78615" X-Priority: 3 (Normal) Importance: Normal X-Composed: 2024-05-02T12:57:29+03:00 ------=_20240502125729_78615 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable =0A=0A=0Ad ------=_20240502125729_78615 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <p valid=3D"true" style=3D"line-height: 16px; font-size: 13px; font-family:= Tahoma, sans-serif; margin: 16px 0px;">d</p> ------=_20240502125729_78615-- ======================== Край на второ писмо ">======================== Надолу продължават още писма

    Виждаме, че всички писма се записват в един файл. Не добра практика но за сега ще е така. Внимание !!! PostFix участва също и при получаване на ел. писмо. След като го получи трябва да го запише в някоя папка на сървъра. В случая ползва управление на пощенските кутии тип MBOX. От казаното до тук ще се зарадвате. Супер елементарен сървър се получи. Но не всичко е толкова хубаво. Първия проблем с който ще се сблъскате, е как да си прочетете писмата така, че нагледно да са разбираеми. Няма да можете да ползвате разни клиенти за управление на пощенски кутии от типа на Thunderbird защото те работят с протоколи POP3 или IMAP, за WEB клиенти да не говорим, те са от по-ново поколение и задължително изискват работа с IMAP протокол. Затова ни трябва някой който да изпълнява всичко горе споменато. На помощ идва MDА агент, примерно Dovecot.

    Инсталиране на Dovecot

    Стигнахме до проблема с управление на пощенските кутии. За тази цел ще ползваме Dovecot. Той предоставя безопасен достъп до пощенските кутии по протоколи POP3 и IMAP. В случая PostFix получава писмото и го записва в /var/mail/root. Dovecot ще прочете писмото от файла. Втори вариант. Написали сме писмо през пощенски клиент и трябва да го пратим. Dovecot получава написаното писмо от клиента и го дава на PostFix да го изпрати. Много елементарно го обяснявам само за яснота, на практика нещата са по-сложни. Да инсталираме Dovecot и необходимите му плъгини.

    apt install dovecot-pop3d dovecot-imapd -y service dovecot restart service dovecot status

    Работи без грешки. Правим копие на конфигурационните файлове които на по-късен етап ще редактираме.

    cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.original cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.original cp /etc/dovecot/conf.d/auth-sql.conf.ext /etc/dovecot/conf.d/auth-sql.conf.ext.original cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.original cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.original cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.original cp /etc/dovecot/conf.d/15-mailboxes.conf /etc/dovecot/conf.d/15-mailboxes.conf.original cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.original cp /etc/dovecot/conf.d/20-lmtp.conf /etc/dovecot/conf.d/20-lmtp.conf.origianal cp /etc/dovecot/conf.d/15-lda.conf /etc/dovecot/conf.d/15-lda.conf.original cp /etc/dovecot/conf.d/90-quota.conf /etc/dovecot/conf.d/90-quota.conf.original

    От тук ни вълнува къде ще се разположат пощенските кутии. За целта:

    cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location mail_location = mbox:~/mail:INBOX=/var/mail/%u

    Ще ползваме стандарта mbox. Пощенските кутии ще се разположат в /var/mail/име на пощенския адрес. Променливата %u отговаря за потребителя на пощенската кутия. А от къде да знаем кои са потребителите и кои пощенски кутии ползват? Има няколко варианта на задачата. По-добрия е ползването на бази данни за тази цел. И ако погледнем снимките от началото на статията ще видим, че при получаване на поща PostFix се обръща за информация към базата данни, а при изпращане Dovecot работи с базата данни. PostFix и Dovecot разговарят помежду си чрез протокола LMTP. За сега обаче няма да ползваме SQL база данни. Ще работим с потребителите създадени в Debian. Значи имаме потребител root@ns1.my.tlan.net с пощенска кутия /var/mail/root и cccp@ns1.my.tlan.net с пощенска кутия /var/mail/cccp Сега да пратим писмо от външната поща tachko@mail.bg до cccp@my.tlan.net.. След това да проверим самата пощенска кутия на cccp. Но първо да проверим логовете.

    cat /var/log/mail.log 2024-05-02T06:42:16.278134-04:00 ns1 postfix/smtpd[7082]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T06:42:16.487025-04:00 ns1 postfix/smtpd[7082]: 76DB8140121: client=mx5.mail.bg[193.201.172.121] 2024-05-02T06:42:16.507429-04:00 ns1 postfix/cleanup[7086]: 76DB8140121: message-id=<75c7f402c6bbc865773ad82d19a751f7.mailbg@mail.bg> 2024-05-02T06:42:16.508781-04:00 ns1 postfix/qmgr[3472]: 76DB8140121: from=<tachko@mail.bg>, size=1530, nrcpt=1 (queue active) 2024-05-02T06:42:16.508908-04:00 ns1 postfix/smtpd[7082]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7 2024-05-02T06:42:16.514284-04:00 ns1 postfix/local[7087]: 76DB8140121: to=<cccp@my.tlan.net>, relay=local, delay=0.03, delays=0.03/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 2024-05-02T06:42:16.514406-04:00 ns1 postfix/qmgr[3472]: 76DB8140121: removed ls -l /var/mail/ total 12 -rw------- 1 cccp mail 3268 May 2 06:42 cccp -rw------- 1 root mail 7016 May 2 06:05 root

    Получихме писмо до cccp@my.tlan.net и бе записано в /var/mail/cccp. Сега и самото писмо.

    cat /var/mail/cccp

    Писмо получено от tachko@mail.bg до cccp@my.tlan.net. Писмото е в много неразбираем формат. До тук: - инсталирахме PostFix - МТА, транспортен агент за изпращане/получаване на поща - инсталирахме Dovecot - МDА агент, агент за доставка на поща, PОP3, IMAP сървър за боравене с пощенските кутии - формата на боравене с пощенските кутии е mbox - PostFix и Dovecot работят помежду си и се допълват - не се задълбаваме в конфигурационните файлове на PostFix и Dovecot - ползваме потребители създаден в операционната система, а не специално за пощенския сървър - това е най-простата базисна настройка. Можем вече да преглеждаме пощата използвайки клиенти за тази цел от рода на Thunderbird на Firefox с много големи уговорки. Ние обаче продължаваме нататък. Ще ползваме WEB клиент за работа с пощенските кутии по протокола IMAP. Доста често ще боравим с протоколите POP3 и IMAP. Втория е по-иновативен, по-стабилен с повече възможности. Вършат една и съща работа. Разликата примерно е, че POP3 сваля писмото на клиентската програма, а IMAP ги управлява директно на сървъра. За изпратените писма същата логика. POP3 ги създава и пази в клиента, IMAP на сървъра.

    Инсталиране на Roundcube

    За да ползваме Roundcube са необходими инсталирани WEB сървър наречен Apache и PHP с няколко приставки към него.

    Инсталиране на Apache и PHP

    Ако сте следвали статиите за Debian 12 от инсталацията до тук, ще имате инсталирани Apache и PHP. Но независимо от това някои допълнения примерно за PHP ги нямаме. Ако пък направо сте започнали с тази статия ще се наложи да инсталирате Apache и PHP. За целта ще ги инсталираме наново все едно, че почваме работа от тази статия. Не е проблем, че са инсталирани преди това, просто системата ще каже че ги има и ще прескочи инсталираните, а тези които не са ще ги инсталира.

    apt install apache2 apache2-utils -y apt install php libapache2-mod-php php-mysql php-net-ldap2 php-net-ldap3 php-imagick php-common php-gd php-imap php-json php-curl php-zip php-xml php-mbstring php-bz2 php-intl php-gmp php-net-smtp php-mail-mime -y

    Инсталиране и настройка на Roundcube

    Roundcube е WEB базиран клиент за електронна поща. В случая обаче не ни трябва да го инсталираме от репозиторите, защото когато е от разработчика ще можем да ползваме тестовата му част. От https://roundcube.net/download/, намираме бутона Download на LTS version. Копираме линка на бутона (текущата версия). Изпълняваме следното:

    cd /root wget sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.5.6/roundcubemail-1.5.6-complete.tar.gz ls -l total 7708 -rw-r--r-- 1 root root 7891534 Nov 5 09:39 roundcubemail-1.5.6-complete.tar.gz

    Смъкнахме файла roundcubemail-1.5.6-complete.tar.gz в папката /root.

    tar -xvf roundcubemail-1.5.6-complete.tar.gz mv ./roundcubemail-1.5.6 /etc/roundcube cd /etc/roundcube/ ls CHANGELOG.md SECURITY.md composer.json index.php program vendor INSTALL SQL composer.json-dist installer public_html LICENSE UPGRADING composer.lock logs skins README.md bin config plugins temp chown -R www-data:www-data /etc/roundcube/ chmod 755 /etc/roundcube/

    Разархивираме roundcubemail-1.5.6-complete.tar.gz, преместихме го в /etc, едновременно с това преименувахме ./roundcubemail-1.5.6 в ./roundcube Стараем се да разположим файловете така, че все едно сме инсталирали програмата от репозиторите.

    База данни на MySQL за Roundcube

    Да създадем база за Roundcube.

    mysql -u root create database roundcube DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; create user rcuser@localhost identified by 'rcpass'; grant all privileges on roundcube.* to rcuser@localhost; flush privileges; quit mysql roundcube < /etc/roundcube/SQL/mysql.initial.sql

    Настройка на Apache за Roundcube

    nano /etc/apache2/conf-available/roundcube.conf Alias /roundcube /etc/roundcube/ <Directory /etc/roundcube> AllowOverride None Options +Indexes +ExecCGI Order deny,allow Allow from all Require all granted </Directory> a2enconf roundcube systemctl reload apache2

    В браузъра пишем: https://my.tlan.net/roundcube/

    Pic04

    Всичко е правилно. Правилния линк е: https://my.tlan.net/roundcube/installer/

    Pic05

    Всички проверки са OK. Натискаме бутона NEXT за продължение.

    Pic06
    Pic07

    Тук правим една грешка нарочно. Инсталирали сме PostFix без да никакви настройки. Както идва от пакета. Нормално е да работи само на порт 25. Все още нямаме дефинирани сертификати. Проблема ще дойде от Use the current IMAP username and password for SMTP authentication. Не се указали никъде PostFix да се удостоверява, а тук го изискваме. Нарочно натъртвам на това място, на по-късен етап ще се разбере.

    Pic07a

    Тук порта е 143 (IMAP Start TLS).

    Pic07b

    Тук избираме кои допълнения към Roundcube ще ползваме. Лично аз ползвам managesieve и password. Не е грешка да изберете всички. Най-отдолу на страницата натискаме бутона CREATE CONFIG. Така създаваме конфигурационния файл за стартиране на Roundcube.

    Pic08

    Конфигурационния файл е създаден в /var/www/html/roundcubemail/config. Нтискаме бутона CONTINUE за продължение.

    Pic08a

    Отново грешка. Отново нарочно направена. Да проверим:

    ls -l /etc/ |grep roundcube drwxrwxr-x 13 cccp cccp 4096 Nov 5 04:11 roundcube ls -l /etc/roundcube/ total 440 drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 bin -rw-rw-r-- 1 cccp cccp 201319 Nov 5 04:11 CHANGELOG.md -rw-rw-r-- 1 cccp cccp 1037 Nov 5 04:11 composer.json -rw-rw-r-- 1 cccp cccp 1110 Nov 5 04:11 composer.json-dist -rw-rw-r-- 1 cccp cccp 107413 Nov 5 04:11 composer.lock drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 config -rw-rw-r-- 1 cccp cccp 11421 Nov 5 04:11 index.php -rw-rw-r-- 1 cccp cccp 12646 Nov 5 04:11 INSTALL drwxrwxr-x 3 cccp cccp 4096 Nov 5 04:11 installer -rw-rw-r-- 1 cccp cccp 35147 Nov 5 04:11 LICENSE drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 logs drwxrwxr-x 36 cccp cccp 4096 Nov 5 04:11 plugins drwxrwxr-x 8 cccp cccp 4096 Nov 5 04:11 program drwxrwxr-x 3 cccp cccp 4096 Nov 5 04:11 public_html -rw-rw-r-- 1 cccp cccp 3852 Nov 5 04:11 README.md -rw-rw-r-- 1 cccp cccp 967 Nov 5 04:11 SECURITY.md drwxrwxr-x 5 cccp cccp 4096 Nov 5 04:11 skins drwxrwxr-x 7 cccp cccp 4096 Nov 5 04:11 SQL drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 temp -rw-rw-r-- 1 cccp cccp 4657 Nov 5 04:11 UPGRADING drwxrwxr-x 14 cccp cccp 4096 Nov 5 04:11 vendor

    Навсякъде собственика е cccp:cccp, а на нас ни трябва да е www-data:www-data. Да поправим грешката:

    chown -R www-data:www-data /etc/roundcube


    Pic08b

    Натискаме върху линка Create config. Слизаме най-отдолу на страницата.

    Pic08c

    CREATE CONFIG

    Pic08d
    Pic08e

    Всичко е наред.

    Pic09

    Най-отдолу ни предупреждава след завършване на инсталацията да изтрием installer папката или да се убедим че enable_installer опцията във файла config.inc.php е със значение disabled. Същевременно с това имаме и опцията да тестваме. Имаме два потребителя root и cccp, още по време на инсталацията. Да създадем още един с права подобни на cccp.

    adduser tachko Adding user `tachko' ... Adding new group `tachko' (1001) ... Adding new user `tachko' (1001) with group `tachko' ... Creating home directory `/home/tachko' ... Copying files from `/etc/skel' ... New password: password Retype new password: password passwd: password updated successfully Changing the user information for tachko Enter the new value, or press ENTER for the default Full Name []: Enter Room Number []: Enter Work Phone []: Enter Home Phone []: Enter Other []: Enter Is the information correct? [Y/n] Y

    Нека да пратим тестово писмо от cccp@my.tlnan.net до tachko@my.tlan.net.

    Pic10

    Натискаме бутона Send test mail.

    Pic11

    Теста мина успешно. За да мине теста ни бяха необходими два потребителя, затова създадохме tachko на сървъра. Сега да тестваме и IMAP конфигурацията.

    Pic12
    Pic13

    Отново теста мина успешно. Вече можем да ползваме Roundcube на https://my.tlan.net/roundcube/

    Pic14

    Потребители имаме cccp и tachko. Да влезем като tachko.

    Pic15

    Имаме 2 писма, защото теста го направих два пъти. Да пратим писмо до cccp@my.tlan.net

    Pic16

    Натискаме бутона Изпрати.

    Pic17

    Не се получи защото SMTP в Roundcube изисква име и парола, а ние не сме дефинирали в PostFix да изисква това. Да поправим Roundcube.

    Pic17a
    Pic18

    Забележете, размаркирахме Use the current IMAP username and password for SMTP authentication. Не сме настроили PostFix да се удостоверява с име и парола.

    Pic19

    Обновяваме наново конфигурацията. UPDATE CONFIG

    Pic08d

    Pic16

    Наново да пратим писмото. Писмото се изпрати успешно. Ако проверим дали е дошло при cccp@my.tlan.net ще видим че е пристигнали. С това приключваме елементарния сървър за електронна поща. В следващите статии ще надграждаме сървъра. Ползвано видео: https://www.youtube.com/watch?v=IzG_Rbq_LmY