ISPmail (9): Quản lý mailserver

Managing users, aliases and domains

Cài đặt ISPmail Admin

ISPmail Admin là ứng dụng web giúp quản lý mail server.

— Web UI quản lý mail server —

Chúng ta sẽ dùng ${hostname}${adm_pwd} nên phải chắc các biến tương ứng còn hiệu lực.

Sau khi cài đặt, trang quản lý mail server và mật khầu xem ở ~/readme.txt

https://mx.example.org/mailadmin

[Domains]

Thêm/bớt domain. Với domain được thêm vào mydomain.ltd, chúng ta có thể tạo email account dạng @mydomain.ltd

[Accounts]

Thêm/Bớt/Thay đổi mật khẩu của email account thuộc domain đã thêm vào

[Aliases]

Thêm/Bớt alias (không phải email account đã có) của một địa chỉ email trong hệ thống mail server.

[Redirects]

Chuyển tiếp một địa chỉ email trong hệ thống (có thể không tồn tai) đến một địa chỉ email khác (có thể ngoài hệ thống)

Nơi đây, chúng ta sẽ tạo vài email account trước hết cho mục đích test, ngoài cách tạo bằng câu lệnh SQL.

Thí dụ: test@example.org, alias@example.org, nobody@example.org -> test@gmail.com

Chú thích

  • Ứng dụng này còn thiếu phần [Relay hosts], chúng ta sẽ bổ sung sau.
  • Đến đây, mặc dù đã có thể gởi local mail nhưng gởi external mail vẫn có thể bị trả lại vì mail server của chúng ta chưa đủ độ tin cậy. Còn phải làm vài việc nữa hoặc cuối cùng phải dùng relay host.

SQL queries

Dùng hàm sau đây (có trong Dovecot) để mã hoá mật khẩu:

pwd=$(doveadm pw -s BLF-CRYPT -p your_password)
Tạo mail domainINSERT INTO virtual_domains (name) VALUES (“example.org”);
Xóa mail domainDELETE FROM virtual_domains where name=’example.org’;
Tạo mail userINSERT INTO virtual_users (domain_id, email, password) VALUES (SELECT id FROM virtual_domains WHERE name=’example.org’), ‘john@example.org’,”‘$pwd’”);
Đổi mật khẩu userUPDATE virtual_users SET password=”‘$pwd’”) WHERE email=’email@address’;
Xóa mail userDELETE FROM virtual_users WHERE email=’john@example.org’;
Tạo chuyển tiếp mail INSERT INTO virtual_aliases (domain_id, source, destination) VALUES ( (SELECT id FROM virtual_domains WHERE name=’example.org’), ‘melissa@example.org’, ‘juila@example.net’);
Xóa chuyển tiếp mailDELETE FROM virtual_aliases WHERE source=’melissa@example.org’;

Script

#!/bin/bash
# Tên script: 08.mailadmin.sh
# Quản lý mail server
# © 2020 LNT <lnt@lyle.info>
# version 20200801
#
echo 'Cài đặt ISP mailadmin...'
## Tải về ISPmailadmin ##
web="/var/www/mailserver"
cd /tmp
wget -O ISPmailadmin.tar.gz "https://www.ima.jungclaussen.com/dwn/dwn.php?v=0.9.6&f=.tar.gz"
tar -xf ISPmailadmin.tar.gz
rm -rf $web/mailadmin
mv -f /tmp/ispmailadmin-0.9.6/htdocs $web/mailadmin
find $web/mailadmin -exec chown www-data:www-data {} \;

HOSTNAME=$(hostname)
DOMAIN=${HOSTNAME#*.}
ADM_PWD=$(sed -n '/mailadmin/{n;s/\s*password: \(.*\)/\1/;p;q}' ~/${DOMAIN}.txt)

## Cấu hình ISPmailadmin ##
isp_pwd=$(pwgen 30 1);
cat >> ~/${DOMAIN}.txt <<EOT

Quản lý mail server:
  https://${HOSTNAME}/mailadmin
  user: admin
  Password: $isp_pwd
EOT
sed "s/mysql_user/mailadmin/
s/mysql_pass/$ADM_PWD/
s/\(.*'IMA_CFG_ADM_USER'\).*/\1,'admin');/
s/\(.*'IMA_CFG_ADM_PASS'\).*/\1,'$isp_pwd');/
s/.*\(define.*IMA_LOGINTYPE_ACCOUNT.*\)/\1/
" -i /var/www/mailserver/mailadmin/cfg/config.inc.php
## Cấu hình website ISPmailadmin ##
grep -q 'Alias /mailadmin' /etc/apache2/sites-available/mailserver-http.conf || sed "/<\/VirtualHost>/i \  Alias /mailadmin $web/mailadmin" -i /etc/apache2/sites-available/mailserver-httpd.conf
## Khởi động lại Apache2 ##
systemctl reload apache2

Comments Off on ISPmail (9): Quản lý mailserver

Filed under Software

Comments are closed.