WEB клиента е много удобно нещо. То позволява да се борави с пощата без да има инсталиран пощенски клиент на локалния компютър. Има много такива програми, но в момента ще се спрем на RoundCube. Самата програма идва от репозиторите на Debian 9, но проблема е, че никога инсталацията не протича гладко. Поне при мене е така. В Debian 9 инсталацията се чупи когато трябва да се създаде базата за RoundCube. Стъпките за поправката на този бъг са: - създаваме празна база - създаваме потребител управляващ базата - дефенираме права на потребителя върху базата
# mysql -u root -p Enter password: MySQL
Да проверим какви налични бази имаме:
MariaDB [(none)]> show databases; +-----------------------------+ | Database | +-----------------------------+ | information_schema | | mysql | | performance_schema | | pfdb | +-----------------------------+ 4 rows in set (0.01 sec)
Няма създадена база, значи ще я създадем
MariaDB [(none)]> create database roundcube; Query OK, 1 row affected (0.00 sec)
Да създадем и потребител който да има права върху базата
MariaDB [(none)]> create user roundcube@localhost; Query OK, 0 rows affected (0.00 sec)
Да дадем и парола на потребителя roundcube
MariaDB [(none)]> set password for roundcube@localhost=password("rcpass"); Query OK, 0 rows affected (0.00 sec)
Да дефинираме права на потребителя roundcube@localhost с парола rcpass върху базата roundcube
MariaDB [(none)]> grant all privileges on roundcube.* to roundcube@localhost identified by 'rcpass'; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit
Пакети за инсталиране roundcube - браузър базиран WEB клиент ползващ IMAP roundcube-plugins - допълнителни екстри към клиента като смяна на парола, архивиране на стара поща и т.н. roundcube-plugins-extra - набор от приставки които не се поддържат от авторите на RoundCube а са от Debian php-net-sieve - допълнителен пакет от Debian за ползване на услугата sieve
Време е да инсталираме и самите пакети
# apt-get install roundcube roundcube-plugins roundcube-plugins-extra php-net-sieve
RoundCube също създава една малка база в MySQL където записва управляваща информация и първия въпросителен екран е точно затова:
Казваме Yes и придължаваме нататък. А сега да създадем потребител за базата на RoundCube който ще има достъп само до RoundCube.
Преди това казахме, че паролата ще е rcpass и точно нея въвеждаме. Избираме Ok, натискаме Enter и продължаваме. Потвръжадаме паролата за съвпадение
До края инсталацията протича без проблеми.
По време на инсталацията на RoundCube се създаде файл /etc/roundcube/apache.conf. За да работи от всеки домейн той трябва да се ремонтира.
# vi /etc/roundcube/apache.conf # Търсим реда и го размаркирваме # Alias /roundcube /var/lib/roundcube # Трябва да изглежда така Alias /roundcube /var/lib/roundcube # service apache2 restart
Да проверим като напишем в браузъра https://home.tlan.net/roundcube/. Ще се получи долната снимка.
Прекрасно, работи. Има обаче един досаден проблем. Ние се свръзваме само с един сървър и е безмислено всеки път да се описва сървъра. Затова в конфигурационния файл го описваме като статичен с localhost
# vi /etc/roundcube/config.inc.php $config['default_host'] = 'localhost';
Презареждаме Apache2
# /etc/init.d/apache2 reload
И пишем в браузъра https://home.tlan.net/roundcube
Целта е постигната.
Инсталирахме множество приставки които улесняват работата с мейл клиента, но е нормално да ги активираме и настроим. Ще започнем с това клиента да може да променя паролата си и
# vi /etc/roundcube/config.inc.php // List of active plugins (in plugins/ directory) // Debian: install roundcube-plugins first to have any $config['plugins'] = array( 'managesieve', # Управлява Sieve 'password', # Клиента може да си променя паролата );
Активирахме двете приставки, сега да ги настроим, като започнем с managesieve
# cp /usr/share/roundcube/plugins/managesieve/config.inc.php.dist /etc/roundcube/plugins/managesieve/config.inc.php
Тази приставка позволява на потребителите да създават правила за автоматично управление на електронната поща. На практика файла не изисква някакви промени освен ако не искате нещо по-специално. Следва приставката за пароли.
# cp /usr/share/roundcube/plugins/password/config.inc.php.dist /etc/roundcube/plugins/password/config.inc.php
Тука обаче ще си поиграем малко:
# vi /etc/roundcube/plugins/password/config.inc.php // Require the new password to be a certain length. // set to blank to allow passwords of any length $config['password_minimum_length'] = 5; // Дължина на паролата // Enables saving the new password even if it matches the old password. Useful // for upgrading the stored passwords after the encryption scheme has changed. $config['password_force_save'] = true; // Разрешаваме старта парола да бъде и нова - да се препокрива // SQL Driver options // ------------------ // PEAR database DSN for performing the query. By default // Roundcube DB settings are used. $config['password_db_dsn'] = 'mysql://pfadmin:adminpass@localhost/pfdb'; // Връзка с базата даннита за смяна на парола // The SQL query used to change the password. // The query can contain the following macros that will be expanded as follows: // %p is replaced with the plaintext new password // %P is replaced with the crypted/hashed new password // according to configured password_method // %o is replaced with the old (current) password // %O is replaced with the crypted/hashed old (current) password // according to configured password_method // %h is replaced with the imap host (from the session info) // %u is replaced with the username (from the session info) // %l is replaced with the local part of the username // (in case the username is an email address) // %d is replaced with the domain part of the username // (in case the username is an email address) // Deprecated macros: // %c is replaced with the crypt version of the new password, MD5 if available // otherwise DES. More hash function can be enabled using the password_crypt_hash // configuration parameter. // %D is replaced with the dovecotpw-crypted version of the new password // %n is replaced with the hashed version of the new password // %q is replaced with the hashed password before the change // Escaping of macros is handled by this module. // Default: "SELECT update_passwd(%c, %u)" // $config['password_query'] = 'SELECT update_passwd(%c, %u)'; # маркира се най-отпред с // $config['password_query'] = "UPDATE virtual_users SET password=CONCAT('{SHA256-CRYPT}', ENCRYPT (%p, CONCAT('$5$', SUBSTRING(SHA(RAND()), -16)))) WHERE email=%u;"; // Дефинира как да се запише новата парола // {SHA256-CRYPT} - ползва SHA256 хеш // $5$ - означава, че се използва алгоритъма SHA-256 // SUBSTRING(SHA(RAND()), -16) - случайно разбъркване така, че да не се разбере истинската парола от кодирания низ // WHERE email=%u - гарантира правилния запис на паролата в базата данни
Рестарт на Apache
# service apache2 restart # service apache2 status
Ами това е, имаме правилно работеш RoundCube, през който може да се променят паролите и да се правят скриптове за автоматична поща. Има още един момент който лично мене ме притеснява. Дълго ми се вижда изписването на https://home.tlan.net/roundcube, предпочитам да е https://home.tlan.net/mail. За целта:
# vi /etc/roundcube/apache.conf # Търсим реда Alias /roundcube /var/lib/roundcube # И го променяме на: Alias /mail /var/lib/roundcube # service apache2 restart
И сега като напишем в браузъра: https://home.tlan.net/mail/, ще се отвори RoundCube С това завършваме инсталацията и настройката на WEB клиента към пощенския сървър, следва тестване доставка на поща.