Системни изисквания: - хардуер с минимум 4GB RAM, за слабо натоварен сървър, 8GB и нагоре за натоварен, - свободни номера на UID/GID (потребител/група) 2000, 2001, 2002, - домейн може и под домейни с дефинирани А и МХ записи, - инсталиран Debian 12. Какво имаме: - инсталирана ОС Debian 12, - име на домейна - my.tlan.net - име на поддомейни в DNS-a - mail.my.tlan.net, ns1.my.tlan.net, www.my.tlan.net - име на хоста - ns1 - FQDN на хоста - ns1.my.tlan.net Започваме с няколко проверки. Първата е да определим FQDN (пълното име на хоста в домейна).
hostname -f ns1.my.tlan.net
Искаме да го променим.
hostnamectl set-hostname mail.my.tlan.net
На практика смени в /etc/hostname ns1 на mail.my.tlan.net Да проверим.
hostname -f mail.my.tlan.net
Правилно. Да поправим файла обвързващ IP с име на хоста.
nano /etc/hosts 127.0.0.1 localhost 127.0.1.1 ns1.my.tlan.net ns1 185.163.245.186 ns1.my.tlan.net ns1
Забележете, тук за 185.163.245.186, FQDN е ns1.my.tlan.net ns1, а когато тестваме за hostname отговора е mail.my.tlan.net.
За самата инсталация ще ни трябват пакети wget и gzip. Да ги инсталираме.
apt install wget gzip -y
В случая бяха инсталирани, но все пак трябва да се провери. Самата инсталация на iRedMail се прави от архив наличен на сайта на iRedMail. Нека да смъкнем архива на нашия сървър. С браузъра отиваме на : https://www.iredmail.org/download.html. Там където е описана стабилната версия. Копираме линка към архива. След това изпълняваме на нашия сървър:
cd /root/ wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz
На практика в /root папката смъкнахме файла 1.6.8.tar.gz (инсталационния архив на iRedMail). Да го разархивираме.
tar xvf 1.6.8.tar.gz
Прехвърляме се в папката на архива.
cd iRedMail-1.6.8
Променяме правата на инсталационния скрипт, така че да може да се изпълнява.
chmod +x iRedMail.sh
Стартираме инсталационния скрипт
bash iRedMail.sh
Предлага да инсталираме iRedMail чрез помощник.
Предлага къде да се намират пощенските кутии с принадлежащите им файлове.
В случая ще се намират във /var/vmail. Отново се съгласяваме, Next за продължение.
Предлага да ползваме Nginx web сървър за пощенския клиент.
Ще ползваме MariaDB за база данни Предлага да създадем парола за главния потребител за MariaDB
Име на домейна на пощенския ни сървър. В случая е my.tlan.net.
Парола за администратора на пощенския сървър.
Предлага кои пакети да инсталираме за пощенския сървър: - Roundcubemail - WEB клиент на пощенския сървър, - SOGO - допълнителен WEB клиент, календар, адресна кника и т.н. - netdata - системно наблюдение - iRedAdmin - WEB базирано администриране на iRedMail - Fail2ban - блокиране по IP ако няколко пъти е въведена грешно паролата от потребителя Появява се следния надпис.
Storage base directory: /var/vmail * Mailboxes: * Daily backup of SQL/LDAP databases: * Store mail accounts in: MariaDB * Web server: Nginx * First mail domain name: my.tlan.net * Mail domain admin: postmaster@my.tlan.net * Additional components: Roundcubemail netdata iRedAdmin Fail2ban < Question > Continue? [y|N] y
Предлага да огледаме какво сме дефинирали до тук и ако всичко е вярно избираме y за потвърждение. Започва самата инсталация която продължава не малко време. След време се появява следния екран:
************************************************************************ * iRedMail-1.6.8 installation and configuration complete. ************************************************************************* < Question > Would you like to use firewall rules provided by iRedMail? < Question > File: /etc/nftables.conf, with SSHD ports: 6705. [Y|n] n
Предлага защитна стена за iRedMail. В слуая не ни е необходима, защото ползваме рутер със защитна стена в него. Завършихме. Появява се следния екран:
******************************************************************* * URLs of installed web applications: * * - Roundcube webmail: https://mail.my.tlan.net/mail/ * - netdata (monitor): https://mail.my.tlan.net/netdata/ * * - Web admin panel (iRedAdmin): https://mail.my.tlan.net/iredadmin/ * * You can login to above links with below credential: * * - Username: postmaster@my.tlan.net * - Password: TIT3x100bs * * ******************************************************************** * Congratulations, mail server setup completed successfully. Please * read below file for more information: * * - /root/iRedMail-1.6.8/iRedMail.tips * * And it's sent to your mail account postmaster@my.tlan.net. * ********************* WARNING ************************************** * * Please reboot your system to enable all mail services. * ********************************************************************
Адреси за ползване и управление на пощенския сървър: https://mail.my.tlan.net/mail/ - WEB клиент на пощенския сървър https://mail.my.tlan.net/netdata/ - адрес за наблюдение на пощенския сървър https://mail.my.tlan.net/iredadmin/ - адрес за администриране на пощенския сървър Рестартираме Debian.
reboot
След рестарта проверяваме по горните адреси за работоспособността на пощенския сървър. До тук всичко работи коректно. Остана да се преборим със сертификатите. Ще използваме на Let's Encrypt. За целта първо да инсталираме certbot.
apt install certbot -y
След това проверяваме дали можем да получим сертификат.
certbot certonly --webroot --dry-run -w /var/www/html -d my.tlan.net -d mail.my.tlan.net -d ns1.my.tlan.net Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): tachko@my.tlan.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Account registered. Simulating a certificate request for my.tlan.net and 2 more domains The dry run was successful.
Всичко е точно, проверката е успешна можем да получим истинския сертификат.
certbot certonly --webroot -w /var/www/html -d my.tlan.net -d mail.my.tlan.net -d ns1.my.tlan.net Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): tachko@my.tlan.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Account registered. Requesting a certificate for my.tlan.net and 2 more domains Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/my.tlan.net/fullchain.pem Key is saved at: /etc/letsencrypt/live/my.tlan.net/privkey.pem This certificate expires on 2024-07-19. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
По време на създаване на сертификата ще бъдете попитани за ел. поща на която ще се пращат уведомления ако сертификата автоматично не е подновен. Отваряме файла с настройки за нашия домейн.
nano /etc/letsencrypt/renewal/my.tlan.net.conf ### Търсим секцията [renewalparams] ### Отдолу под [renewalparams] в самата секция добавяме: renew_hook = /etc/iRedMail_ssl.sh
Сега да създаем и самия скрипт.
nano /etc/iRedMail_ssl.sh #!/bin/bash rm -f /etc/ssl/private/iRedMail.key rm -f /etc/ssl/certs/iRedMail.crt ln -s /etc/letsencrypt/live/my.tlan.net/privkey.pem /etc/ssl/private/iRedMail.key ln -s /etc/letsencrypt/live/my.tlan.net/fullchain.pem /etc/ssl/certs/iRedMail.crt systemctl restart dovecot systemctl restart postfix systemctl restart nginx
Дадения скрипт трие старите сертификати и на тяхно място създава нови. Правим скрипта изпълним
chmod +x /etc/iRedMail_ssl.sh
Стартираме скрипта
/etc/iRedMail_ssl.sh
Проверяваме дали работи правилно сертификата на: https://mail.my.tlan.net/mail С това приключваме. Имаме работещ пощенски сървър. Имаме инсталиран SQL в случая е MariaDB. Имаме инсталиран WEB сървър, който е Nginx. Да инсталираме PHPMyAdmin така, че да можем да го ползваме с Nginx. Инстгалираме PHPMyAdmin
apt -y install wget php php-cgi php-mysqli php-pear php-mbstring libapache2-mod-php php-common php-phpseclib php-mysql php-zip php-gd -y apt install phpmyadmin -y
По време на инсталацията за WEB сървър избираме Apache независимо, че го нямаме. Можете да проверите самата инсталация на http://tlan.net/menu/linux/debian/debian12/mysql_phpmyadmin/mysql_phpmyadmin12.php Тъй като ползваме Nginx, трябва да създадем линк на PHPMyAdmin към нашия WEB сървър
ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
Проверяваме как работи PHPMyAdmin на: https://my.tlan.net/phpmyadmin. Всичко е нормално.