WAVE Log
メールの受信(Gmail へ転送)と送信(Roundcube)

【受信】
受信は自動転送にしています。
「root 宛てメールの転送」の要領で。
アカウント名(例:player)を Gmail へ転送。

~]# vi /etc/aliases

追加

player: tensousaki@gmail.com

設定反映。

~]# newaliases

【送信】
送信専用に Roundcube をインストールしました。

【返信】
返信の場合は下記のような手間がかかります。

Gmail で受信メールを読む
 ↓
必要なメールだけ .eml として保存
 ↓
Roundcube にインポート
 ↓
Roundcube で返信

《 Roundcube をインストール 》

必要パッケージのインストール。(ほとんどインストール済みですが)

~]# dnf install httpd mariadb-server php php-fpm php-mysqlnd php-mbstring php-xml php-gd php-intl php-zip php-pdo php-json wget tar php-cli php-opcache php-fileinfo

Roundcube 用データベース作成

~]# mysql MariaDB [(none)]> CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'your_strong_password'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;

最新版(Complete版)の確認

~]# cd /tmp tmp]# wget https://github.com/roundcube/roundcubemail/releases/download/1.7.3/roundcubemail-1.7.3-complete.tar.gz

解凍と配置

tmp]# tar -xvf roundcubemail-1.7.3-complete.tar.gz tmp]# mv roundcubemail-1.7.3 /var/www/roundcube

データベースの初期スキーマをインポート

tmp]# mariadb -u roundcube -p roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql

所有者変更

tmp]# chown -R apache:apache /var/www/roundcube tmp]# chmod -R 755 /var/www/roundcube

サンプル設定をコピーし、設定ファイルを作成・編集します。

tmp]# cd /var/www/roundcube/config && cp config.inc.php.sample config.inc.php

~]# vi /var/www/roundcube/config/config.inc.php

変更追加

・・・ ・・・ $config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail'; ↓↓↓ $config['db_dsnw'] = 'mysql://roundcube:your_strong_password@localhost/roundcubemail'; ・・・ ・・・ $config['imap_host'] = 'localhost:143'; ↓↓↓ $config['imap_host'] = '127.0.0.1:143'; // 接続オプション(TLS を無効化して接続) $config['imap_conn_options'] = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, ], ]; ・・・ ・・・ $config['smtp_host'] = 'localhost:587'; ↓↓↓ $config['smtp_host'] = '127.0.0.1:25'; // TLS を明示的に無効化し、証明書検証エラーを回避 $config['smtp_conn_options'] = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, ], ]; ・・・ ・・・ $config['des_key'] = 'rcmail-!24ByteDESkey*Str'; ↓↓↓ $config['des_key'] = '半角24文字'; ・・・ ・・・ // 送信元のデフォルトドメイン指定(@127.0.0.1 から @wave440.com へ変更) $config['mail_domain'] = 'wave440.com';

パスワード部分(your_strong_password)をシングルクオートなどで囲んではいけません。
パスワードに特殊文字(記号)が含まれる場合、URL エンコード(パーセントエンコーディング) を行う必要があります。
パスワードに英数字以外の記号が含まれていて「エンコードが必要かどうかわからない」と迷った場合は、すべての記号を URL エンコードしておくのが最も安全です。

Bash :

# 例: 'my=pass@word#' をエンコードする場合 php -r "echo urlencode('my=pass@word#') . \"\n\";" # 出力結果: my%3Dpass%40word%23

$config['des_key']
Roundcube のデフォルトの暗号化方式では、des_key は厳密に「半角24文字」で指定する必要があります。

安全な 24 文字キーの生成方法 :

openssl rand -base64 24 | cut -c 1-24

英数字のみで記号が入りませんが問題ありません。
des_key に必要な条件は、「暗号化用鍵として十分な長さ(24バイト/24文字)があり、第三者に推測されないランダムな文字列であること」です。記号の含有は必須要件ではありません。

VirtualHost の設定
Roundcube をサブディレクトリ (Alias) 方式ではなく、サブドメイン方式(mail.wave440.com) で動かしています。

~]# vi /etc/httpd/conf.d/roundcube.conf

<VirtualHost *:443> ServerName mail.wave440.com # Roundcube の公開ディレクトリ DocumentRoot /var/www/roundcube/public_html # Roundcube が .htaccess を使うため必須 <Directory /var/www/roundcube/public_html> AllowOverride All Require all granted </Directory> # SSL(ワイルドカード証明書) SSLEngine on SSLCertificateFile /etc/letsencrypt/live/wave440.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/wave440.com/privkey.pem # ログ(分離推奨) ErrorLog /var/log/httpd/roundcube_ssl_error.log CustomLog /var/log/httpd/roundcube_ssl_access.log combined </VirtualHost>

Apache 再起動

~]# apachectl configtest ~]# systemctl restart php-fpm ~]# systemctl restart httpd

インストーラーディレクトリの削除(セキュリティ保護)

~]# rm -rf /var/www/roundcube/installer

Web メール(Roundcube)のみで運用し、メールソフトなど外部からの直接の IMAP 接続はしないので、143, 587, 993 のポートは閉じています。25 のポートは、外部のメールサーバーからメールを受信するため開けています。

~]# firewall-cmd --remove-port=587/tcp --zone=public --permanent ~]# firewall-cmd --remove-port=993/tcp --zone=public --permanent ~]# firewall-cmd --reload

アップデートについて。
Roundcube には付属の安全な更新用スクリプトが用意されています。
新しいバージョンの Complete 版を解凍後、以下を実行するだけで設定・DBを保持したまま更新可能です。

~]# /path/to/new_roundcube/bin/installto.sh /var/www/roundcube