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
  • Сървър за електронна поща във вътрешна мрежа

    Наложи ми се да правя сървър за електронна поща, който да е много лек и с минимални защити. Сървъра се определяше от: ● сървъра ще работи само във вътрешна защитена мрежа ● сървъра трябва да е много лек защото ще е върху слаб хардуер ● сървъра трябва да поддържа POP3 и IMAP ● сървъра трябва да се управлява през WEB Ръководех се от: https://www.tecmint.com/install-postfix-mail-server-with-webmail-in-debian/

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

    apt install sudo -y nano /etc/sudoers root ALL=(ALL:ALL) ALL cccp ALL=(ALL:ALL) ALL

    Мрежовa настройка на хоста

    nano /etc/network/interfaces # The primary network interface # allow-hotplug ens32 # iface ens32 inet dhcp auto ens32 iface ens32 inet static address 192.168.11.67 netmask 255.255.255.0 gateway 192.168.11.1 /etc/init.d/networking restart

    Инсталация на пакети за адмнистрация

    Обновяваме системата.

    apt-get update -y apt-get upgrade -y

    Инсталираме пакети необходими за системна администрация.

    apt-get install curl net-tools bash-completion wget lsof nano -y

    Дефинираме DNS първо да чете /etc/hosts файла.

    nano /etc/host.conf order hosts,bind multi on

    Следва да настроим FQDN.

    hostnamectl set-hostname tar-mail.bgpost.bg echo "192.168.11.67 tar-mail.bgpost.bg tar-mail" >> /etc/hosts init 6 ### Това на практика е reboot reboot

    След рестарта проверяваме какво сме сътворили.

    hostname -f tar-mail.bgpost.bg cat /etc/hostname tar-mail

    Тестваме дали домейна правилно отговаря за локалните заявки. Домейна няма да възпроизвежда заявки от външни мрежи, а само от локалната мрежа. В случая команди от рода на host, nslookup или dig няма да работят.

    getent ahosts tar-mail.bgpost.bg 127.0.1.1 STREAM tar-mail.bgpost.bg 127.0.1.1 DGRAM 127.0.1.1 RAW 192.168.11.67 STREAM 192.168.11.67 DGRAM 192.168.11.67 RAW ping bgpost.bg ping tar-mail.bgpost.bg

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

    Най-важната част от софтуера, необходим за правилното функционира не на пощенския сървър, е MTA агентът. MTA е софтуер , изграден в архитектура сървър-клиент, който отговаря за прехвърлянето на поща между пощенските сървъри. В това ръководство ще използваме Postfix като агент за прехвърляне на поща. За да инсталирате postfix в Debian от официални хранилища, изпълнете следната команда.

    apt install postfix -y

    1
    2
    3

    Конфигуриране на PostFix

    Първо правим копие на конфигурационните файлове.

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

    След това конфигурираме /etc/postfix/main.cf.

    nano /etc/postfix/main.cf # See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on # fresh installs. compatibility_level = 2 # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_security_level=may smtp_tls_CApath=/etc/ssl/certs smtp_tls_security_level=may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = tar-mail.bgpost.bg mydomain = tar-mail.bgpost.bg alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # myorigin = /etc/mailname myorigin = $mydomain # mydestination = $myhostname, tar-mail.bgpost.bg, localhost.bgpost.bg, , localhost mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost relayhost = mynetworks = 127.0.0.0/8 192.168.11.0/24 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # inet_protocols = all inet_protocols = ipv4 home_mailbox = Maildir/ # SMTP-Auth settings smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

    Да проверим конфигурацията.

    postconf -n

    Рестартираме услугата и проверяваме как работи.

    /etc/init.d/postfix restart /etc/init.d/postfix status postfix.service - Postfix Mail Transport Agent Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled) Active: active (exited) since Tue 2024-06-18 04:59:50 EDT; 24s ago Process: 2401 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 2401 (code=exited, status=0/SUCCESS) CPU: 510us Jun 18 04:59:50 tar-mail systemd[1]: Starting Postfix Mail Transport Agent... Jun 18 04:59:50 tar-mail systemd[1]: Finished Postfix Mail Transport Agent. netstat -tlpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 480/sshd: /usr/sbin tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2398/master tcp6 0 0 :::22 :::* LISTEN 480/sshd: /usr/sbin

    PostFix "слуша" на порт 25. До тук всичко е правилно.

    Тест на PostFix

    За целта ни е необходим пакета mailutils.

    apt-get install mailutils -y

    Да изпратим писмо до root.

    echo "mail body"| mail -s "test mail" root mailq Mail queue is empty mail No mail for root ls /root/Maildir/ cur new tmp ls /root/Maildir/new/ 1718701804.V801I34000aM309770.tar-mail cat /root/Maildir/new/1718701804.V801I34000aM309770.tar-mail Return-Path: <root@tar-mail.bgpost.bg> X-Original-To: root@tar-mail.bgpost.bg Delivered-To: root@tar-mail.bgpost.bg Received: by tar-mail.bgpost.bg (Postfix, from userid 0) id 49EC72A0483; Tue, 18 Jun 2024 05:10:04 -0400 (EDT) Subject: test mail To: <root@tar-mail.bgpost.bg> X-Mailer: mail (GNU Mailutils 3.10) Message-Id: <20240618091004.49EC72A0483@tar-mail.bgpost.bg> Date: Tue, 18 Jun 2024 05:10:04 -0400 (EDT) From: root <root@tar-mail.bgpost.bg> mail body

    Може да проверим и логовете.

    cat /var/log/mail.log Jun 18 04:43:02 tar-mail postfix/postfix-script[1421]: starting the Postfix mail system Jun 18 04:43:02 tar-mail postfix/master[1423]: daemon started -- version 3.5.24, configuration /etc/postfix Jun 18 04:59:50 tar-mail postfix/postfix-script[1846]: stopping the Postfix mail system Jun 18 04:59:50 tar-mail postfix/master[1423]: terminating on signal 15 Jun 18 04:59:50 tar-mail postfix/postfix-script[2396]: starting the Postfix mail system Jun 18 04:59:50 tar-mail postfix/master[2398]: daemon started -- version 3.5.24, configuration /etc/postfix Jun 18 05:10:04 tar-mail postfix/pickup[2399]: 49EC72A0483: uid=0 from=<root@tar-mail.bgpost.bg> Jun 18 05:10:04 tar-mail postfix/cleanup[2723]: 49EC72A0483: message-id=<20240618091004.49EC72A0483@tar-mail.bgpost.bg> Jun 18 05:10:04 tar-mail postfix/qmgr[2400]: 49EC72A0483: from=<root@tar-mail.bgpost.bg>, size=359, nrcpt=1 (queue active) Jun 18 05:10:04 tar-mail postfix/local[2725]: 49EC72A0483: to=<root@tar-mail.bgpost.bg>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to maildir) Jun 18 05:10:04 tar-mail postfix/qmgr[2400]: 49EC72A0483: removed

    Инсталиране и конфигуриране на Dovecot

    Ще ползваме агент за доставка на пощата Dovecot. Агента работи с протоколи POP3 на портове (110, 995 за SSL) и протокол IMAP на портове (143, 993 за SSL). IMAP протокола отговаря за за четенето, изтриването или преместването на имейли между множество имейл клиенти. Освен това използва синхронизация, за да гарантира, че копие на всяко съобщение се записва на сървъра и позволява на потребителите да създават множество директории на сървъра и да преместват имейли в тези директории, за да сортират имейлите. POP3 протоколът няма да позволи на потребителите да създават множество директории на сървъра, за да сортират вашата поща. Имате само папката "Входящи", за да управлявате пощата. От горе казаното извода е, че ще инсталираме само Dovecot с протокола IMAP.

    apt install dovecot-core dovecot-imapd -y

    И да настроим Dovecot. Първоначално обаче правим копие на конфигурационните файлове.

    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/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

    И да настроим Dovecot. Първо нека да работи с IPv4 и IPv6 на всички интерфейси.

    nano /etc/dovecot/dovecot.conf #listen = *, :: listen = *, ::

    Да конфигурираме как да се удостоверяваме.

    nano /etc/dovecot/conf.d/10-auth.conf #disable_plaintext_auth = yes disable_plaintext_auth = no auth_mechanisms = plain login

    Да конфигурираме къде да се съхранява пощата.

    nano /etc/dovecot/conf.d/10-mail.conf # mail_location = mbox:~/mail:INBOX=/var/mail/%u mail_location = maildir:~/Maildir

    PostFix доставя писмата посредствено, а Dovecot позволява много повече неща. Затова PostFix ще даде права на Dovecot да съхрани получените писма. Връзката между PostFix и Dovecot се осъществява или чрез LDA (local delivery agent) или чрез LMTP. Втория е по-добър с по-добра производителност.

    nano /etc/dovecot/conf.d/10-master.conf # Postfix smtp-auth #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }

    Рестартираме Dovecot и проверяваме на кои портове "слуша".

    /etc/init.d/dovecot restart /etc/init.d/dovecot status netstat -tlpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 6244/dovecot tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 480/sshd: /usr/sbin tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2398/master tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 6244/dovecot tcp6 0 0 :::143 :::* LISTEN 6244/dovecot tcp6 0 0 :::22 :::* LISTEN 480/sshd: /usr/sbin tcp6 0 0 :::993 :::* LISTEN 6244/dovecot

    Проверка работоспособността на сървъра

    За целта е необходимо да се създаде втори потребител.

    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: Pa$$ Retype new password: Pa$$ 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]" натискаме Enter"

    И самия тест.

    nc localhost 25 220 tar-mail.bgpost.bg ESMTP Postfix (Debian/GNU) ehlo localhost 250-tar-mail.bgpost.bg 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250-SMTPUTF8 250 CHUNKING mail from: root 250 2.1.0 Ok rcpt to: tachko 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject: test Mail body . 250 2.0.0 Ok: queued as 439812A082E quit 221 2.0.0 Bye

    Да проверим в пощенската кутия какво имаме.

    ls /home/tachko/Maildir/new/ 1718705171.V801I2c000dM487860.tar-mail

    Имаме налично писмо. Всичко работи правилно. Можем да се свържем с пощенската кути чрез IMAP.

    nc localhost 143 * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot (Debian) ready. x1 LOGIN tachko Pa$$ x1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in x2 LIST "" "*" * LIST (\HasNoChildren) "." INBOX x2 OK List completed (0.002 + 0.000 + 0.002 secs). x3 SELECT Inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 1 EXISTS * 1 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1718705591] UIDs valid * OK [UIDNEXT 2] Predicted next UID x3 OK [READ-WRITE] Select completed (0.002 + 0.000 + 0.001 secs). x4 LOGOUT * BYE Logging out x4 OK Logout completed (0.001 + 0.000 secs).

    Инсталиране и конфигуриране на WebMail

    Потребителите ще управляват своите имейли чрез Rainloop Webmail клиент. За целта е необходим WEB сървър. Ще ползваме Apache. Също ще ползваме и PHP със съответните модули. Всичко това ще инсталираме наведнъж.

    apt install apache2 php libapache2-mod-php php-curl php-xml -y cd /var/www/html/ mv ./index.html ./index.html.original ls index.html.original curl -sL https://repository.rainloop.net/installer.php | php [RainLoop Webmail Installer] * Connecting to repository ... * Downloading package ... * Complete downloading! * Installing package ... * Complete installing! * [Success] Installation is finished!

    Да проверим. Ще администрираме. Влизаме на: http://192.168.11.67/?admin

    4

    Потребител admin и парола 12345

    5
    6
    7

    Да влезем с някои потребител на .

    8

    Влизаме като tachko@tar-mail.bgpost.bg и парола Pa$$.

    9

    За да добавите нов потребител:

    echo 'export MAIL=$HOME/Maildir' >> /etc/profile useradd -m name_user passwd name_user

    -m опцията на useradd указва да се генерира домашна папка на потребителя. Ако искате да пренасочите всички писма на root към определен потребител (в случая е tachko):

    echo "root: tachko" >> /etc/aliases newaliases