Roundcube の受信トレイは IMAPでメールボックス (Maildir) の内容が表示され、送信はプロバイダーの SMTP 使用する
- IMAP には、dovecot-imapd
- POP3 には、dovecot-pop3d を使用
fetchmail でプロバイダーの pop3 より受信し
postfix から /usr/lib/dovecot/deliver 経由でメールボックスへ配信
dovecot-sieve でメールのフィルタリングを行う
Windows などの端末にインストールされたメールソフトからは
IMAP もしくは、pop3 で受信する
送信はプロバイダーの smtp を使用する
ダウンロード
- ubuntu-16.04.3-server-amd64.iso
- または: debian-9.0.0-amd64-DVD-1.iso
Linux ディストリビューションのインストール
BIOS UEFI 設定で DVD から起動
- ユーザー名: rcadmin
- サーバーIPアドレス: 192.168.11.9
- 言語: 日本語
- Server をインストール
- 場所: 日本
- キーボード / レイアウト: Japanese
- ホスト名: roundcubeserver
- 新しいユーザー: rcadmin
- パスワード: **
- 時間の設定: はい
- パティション: ガイドディスク全体を使う
- プロキシ: なし
- tasksel: 自動的にアップデートしない
tasksel では下記を選択 (不要なものも含まれている)
- LAMP server
- Mail server
- Samba file server
- standard system utilities
- OpenSSH server
インストール時の質問
- MySQL root のパスワード: **
- Postfix メール設定の一般形式: インターネットサイト
- システムメール名: example.com
- GRUB のインストール: はい
DVD からのインストール完了
su ができるように root のパスワード設定
1 |
sudo passwd root |
vim モノクロ表示に設定
編集: ~/.vimrc
1 |
syntax off |
カーネルパニック時に自動的に再起動
後で lsync を使用するので監視可能なファイル数を増やす設定もしておく
編集: /etc/sysctl.conf
1 2 3 4 5 |
# reboot if kernel panic. kernel.panic = 5 # lsyncd fs.inotify.max_user_watches = 960000 |
5 は再起動までの秒数 (1 – 60, 0: 再起動しない)
設定の反映
1 |
/sbin/sysctl -p |
確認
1 |
/sbin/sysctl -n 'kernel.panic' |
IPアドレス固定, ネームサーバー設定
編集: /etc/network/interfaces
1 2 3 4 5 6 7 |
# iface enp3s0 inet dhcp auto enp3s0 iface enp3s0 inet static address 192.168.11.9 netmask 255.255.255.0 gateway 192.168.11.1 dns-nameservers 192.168.11.1 |
設定の反映
1 |
service networking restart |
パッケージのインストール
debian では そのままだとパッケージが光学ドライブからインストールされるので
/etc/apt/sources.list
の下記の行をコメントアウトする
1 |
# deb cdrom:[Debian GNU/Linux 5.0.3 _Lenny_ - Official i386 CD Binary-1 20090905-08:23]/ lenny main |
インストール
1 2 3 4 5 |
apt-get update apt-get upgrade apt-get update apt-get install rsync lsyncd ntfs-3g alsa-utils fdclone imagemagick screen nkf ncftp postfix dovecot-imapd dovecot-managesieved aspell dovecot-sieve fetchmail php-pear dovecot-pop3d proftpd |
proftpd の起動方法を質問された場合: スタンドアロン
PHP 関連のパッケージのインストール
1 |
pear install Mail_Mime Net_SMTP Net_Sieve |
Mail_Mime
, Net_SMTP
, Net_Sieve
が非推奨になっていてインストールに失敗する場合
1 2 3 |
pear install Mail_Mime Net_SMTP Net_Sieve WARNING: "pear/Net_Sieve" is deprecated in favor of "channel://pear.horde.org/Horde_ManageSieve" |
github から取り寄せ zip を展開
1 2 3 |
wget https://github.com/pear/Net_Socket/archive/master.zip wget https://github.com/pear/Net_SMTP/archive/master.zip wget https://github.com/pear/Net_Sieve/archive/master.zip |
確認してコピー
1 2 3 4 5 6 |
ls /usr/share/php/Net/ mkdir /usr/share/php/Net/ cp -i Net_Sieve-master/Net/Sieve.php /usr/share/php/Net/ cp -i Net_Socket-master/Net/Net_Socket-master/Net/Socket.php /usr/share/php/Net/ cp -i Net_SMTP-master/Net/SMTP.php /usr/share/php/Net/ |
dovecot の設定
編集: /etc/dovecot/conf.d/10-mail.conf
変更箇所:
1 2 3 |
mail_location = maildir:~/Maildir mail_privileged_group = mail |
編集: /etc/dovecot/conf.d/15-lda.conf
変更箇所:
1 2 3 4 5 6 7 |
postmaster_address = info@example.com lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_plugins = $mail_plugins sieve |
postfix の設定
編集: /etc/postfix/main.cf
変更箇所:
1 2 |
# mailbox_command = procmail -a "$EXTENSION" mailbox_command = /usr/lib/dovecot/deliver |
dovecot pop3 の設定
編集: /etc/dovecot/dovecot.conf
変更箇所:
1 2 3 |
# Enable installed protocols !include_try /usr/share/dovecot/protocols.d/*.protocol protocols = imap pop3 sieve |
編集: /etc/dovecot/conf.d/10-master.conf
変更箇所:
1 2 3 4 5 6 7 8 9 |
service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } } |
編集: /etc/dovecot/conf.d/10-auth.conf
変更箇所:
1 2 3 4 5 |
#disable_plaintext_auth = yes disable_plaintext_auth = no #auth_mechanisms = plain auth_mechanisms = plain login |
設定の反映
1 2 |
/etc/init.d/dovecot restart /etc/init.d/postfix restart |
ローカルサーバー pop3 接続テスト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
telnet 192.168.11.9 110 Trying 192.168.11.9... Connected to 192.168.11.9. Escape character is '^]'. +OK Dovecot ready. USER rcadmin +OK PASS ****** +OK Logged in. RETR 1 -ERR There's no message 1. QUIT +OK Logging out. Connection closed by foreign host. |
ftp server の設定 (なるべく sftp を使うようにする)
編集: /etc/proftpd/proftpd.conf
変更箇所:
1 2 3 4 5 6 |
UseIPv6 off ServerType standalone DefaultRoot ~ IdentLookups off UseReverseDNS off ListOptions "-la" |
設定の反映
1 |
/etc/init.d/proftpd restart |
phpMyAdmin のインストール
1 |
apt-get install phpmyadmin |
- apache2 を選択
- phpmyadmin 用のデータベースを dbconfig-common で設定する
- パスワードを設定
接続してみる
1 |
http://192.168.11.9/phpmyadmin/ |
apache 設定
ウェブサーバーの初期ディレクトリーの入れ替えもする
シンボリックリンクを作成して、設定の有効化
(一部、既にファイルが存在しますと言われるが問題ない)
1 2 3 4 5 6 7 8 9 10 11 |
cd /etc/apache2/mods-enabled ln -s ../mods-available/userdir.conf . ln -s ../mods-available/userdir.load . ln -s ../mods-available/rewrite.load . ln -s ../mods-available/deflate.* . ln -s ../mods-available/expires.load . ln -s ../mods-available/headers.load . ln -s ../mods-available/cgi* . ln -s ../mods-available/rewrite.load . |
編集: /etc/apache2/apache2.conf
変更箇所:
1 2 3 4 5 6 7 8 |
# <Directory /var/www/> <Directory /home/rcadmin/public_html> # Options Indexes FollowSymLinks Options FollowSymLinks ExecCGI # AllowOverride None AllowOverride All Require all granted </Directory> |
編集: /etc/apache2/mods-available/mime.conf
変更箇所:
1 |
AddHandler cgi-script .cgi .pl |
編集: /etc/apache2/mods-available/php7.0.conf
変更箇所:
1 2 3 4 5 6 |
<IfModule mod_userdir.c> <Directory /home/*/public_html> # php_admin_flag engine Off php_admin_flag engine On </Directory> </IfModule> |
編集: /etc/apache2/mods-available/userdir.conf
変更箇所:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit Indexes AllowOverride All # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Options FollowSymLinks ExecCGI <Limit GET POST OPTIONS> Require all granted </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> </Directory> </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet |
編集: /etc/apache2/sites-available/000-default.conf
変更箇所:
1 2 |
# DocumentRoot /var/www/html DocumentRoot /home/rcadmin/public_html |
編集: /etc/php/7.0/apache2/php.ini
変更箇所:
1 2 |
;display_errors = Off display_errors = On |
設定の反映
1 |
/etc/init.d/apache2 restart |
php テスト用ファイル作成
1 |
mkdir /home/rcadmin/public_html |
編集: /home/rcadmin/public_html/index.php
1 2 3 |
<?php echo 'Test'; phpinfo(); |
apache2 動作テスト ウェブブラウザーで http://192.168.11.9/
を開いて確認する
screen のログ保存設定
保守の為に設定しておく
1 |
mkdir ~/log |
編集: ~/.screenrc
1 2 3 |
logfile $HOME/log/screen-output.%Y%m%d-%n.log logfile flush secs deflog on |
ssh 接続がタイムアウトしないようにする (必要な場合は)
編集: /etc/ssh/sshd_config
1 2 3 4 5 6 7 8 9 10 11 12 |
# server side setting ClientAliveInterval 15 # ClientAliveCountMax 3 # sshd restart: # CentOS 6 # sudo /etc/rc.d/init.d/sshd restart # CentOS 7 # sudo systemctl start sshd.service # sudo systemctl restart sshd.service # Ubuntu / Debian # sudo /etc/init.d/ssh restart |
編集: /etc/ssh/ssh_config
or ~/.ssh/config
1 2 |
# client side setting ServerAliveInterval 15 |
Maildir の雛形作成
フォルダ名について
&MFkweTBmMG4w4TD8MOs-
すべてのメール&MLQw33ux-
ゴミ箱&MLkwvzD8TtgwTQ-
スターあり&Tgtm+DBN-
下書き&j,dg0TDhMPww6w-
迷惑メール&kAFP4W4IMH8w4TD8MOs-
送信メール
雛形作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
cd /etc/skel mkdir 'Maildir' mkdir 'Maildir/.&j,dg0TDhMPww6w-' mkdir 'Maildir/.&j,dg0TDhMPww6w-/cur' mkdir 'Maildir/.&j,dg0TDhMPww6w-/new' mkdir 'Maildir/.&j,dg0TDhMPww6w-/tmp' mkdir 'Maildir/.&MFQwf3ux-' mkdir 'Maildir/.&MFQwf3ux-/cur' mkdir 'Maildir/.&MFQwf3ux-/new' mkdir 'Maildir/.&MFQwf3ux-/tmp' mkdir 'Maildir/cur' mkdir 'Maildir/.&kAFP4W4IMH8-' mkdir 'Maildir/.&kAFP4W4IMH8-/cur' mkdir 'Maildir/.&kAFP4W4IMH8-/new' mkdir 'Maildir/.&kAFP4W4IMH8-/tmp' mkdir 'Maildir/new' mkdir 'Maildir/.&Tgtm+DBN-' mkdir 'Maildir/.&Tgtm+DBN-/cur' mkdir 'Maildir/.&Tgtm+DBN-/new' mkdir 'Maildir/.&Tgtm+DBN-/tmp' mkdir 'Maildir/.&TuVSTTBuMOEw,DDr-' mkdir 'Maildir/.&TuVSTTBuMOEw,DDr-/cur' mkdir 'Maildir/.&TuVSTTBuMOEw,DDr-/new' mkdir 'Maildir/.&TuVSTTBuMOEw,DDr-/tmp' mkdir 'Maildir/tmp' chmod -R 700 Maildir |
Roundcube webmail
ダウンロードと配置
1 2 3 4 |
cd /home/rcadmin/public_html wget https://github.com/roundcube/roundcubemail/releases/download/1.3.3/roundcubemail-1.3.3-complete.tar.gz tar xvf roundcubemail-1.3.3-complete.tar.gz mv roundcubemail-1.3.3 roundcube |
データーベース作成
以下 ${hoge} の部分は使用するデーターベースの情報に合わせる
1 2 3 4 5 |
mysql -u root -p create database ${dbname} DEFAULT CHARACTER SET utf8; GRANT ALL PRIVILEGES ON *.* TO ${username}@${server} IDENTIFIED BY '${password}' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON ${dbname}.* TO ${username}@${server} IDENTIFIED BY '${password}' WITH GRANT OPTION; |
データーベース初期化
1 |
mysql ${dbname} -u ${username} -p < /home/rcadmin/public_html/roundcube/SQL/mysql.initial.sql |
設定ファイルの編集
契約しているサーバーのメール設定に合わせて設定する
編集: /home/rcadmin/public_html/roundcube/config/config.inc.php
編集: /home/rcadmin/public_html/roundcube/config/defaults.inc.php
変更箇所:
1 2 3 4 5 |
// $config['mime_types'] = null; $config['mime_types'] = '/home/rcadmin/public_html/roundcube/config/mime.types'; // $config['language'] = null; $config['language'] = 'ja_JP'; |
ファイル /home/rcadmin/public_html/roundcube/config/mime.types
は、http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types からダウンロードして編集
プラグインのインストール
- managesieve
- globaladdressbook
1 2 |
cd /home/rcadmin/public_html/roundcube/plugins/managesieve cp config.inc.php.dist config.inc.php |
/home/rcadmin/public_html/roundcube/config/config.inc.php
を編集してプラグインを有効にする
fetchmail の設定
fetchmail でプロバイダーのメールサーバーから pop3 で受信する
1 2 3 4 |
mkdir -m 700 /home/rcadmin/fetchmail touch /home/rcadmin/fetchmail/fetchmailrc chmod 700 /home/rcadmin/fetchmail/fetchmailrc touch /home/rcadmin/fetchmail/fetchmail.log |
編集: /home/rcadmin/fetchmail/fetchmailrc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
set postmaster root set nobouncemail # uidl set logfile /home/rcadmin/fetchmail/fetchmail.log # delay second auto recieve # set daemon 300 # set daemon 600 defaults protocol pop3 keep # flush no mimedecode smtphost localhost # user poll pop3.mail.example.com user "rcadmin@example.com" password "******" is rcadmin here # end |
定期的に受信及びメールサーバーから削除するように設定
1 |
crontab -e |
1 2 3 4 |
# m h dom mon dow command */10 * * * * /usr/bin/fetchmail --keep -f /home/rcadmin/fetchmail/fetchmailrc * 1 */20 * * /usr/bin/fetchmail --flush -f /home/rcadmin/fetchmail/fetchmailrc |
Roundcube webmail を開く http://192.168.11.9/roundcube/
ログインして個々のユーザー設定を行う
フォルダー
次のフォルダーを購読に指定: ごみ箱, 下書き, 迷惑メール, 送信メール, 以前のメール, 送信済み
識別情報
表示名, 電子メールを設定
フィルター
フィルターセット managesieve ができているので振り分け設定をここで行う
設定
メッセージの表示 > 初期設定の文字セット: ISO-2022-JP (日本語)
特殊なフォルダー
購読フォルダーとの対応関係を設定する
プラグイン
lkk_addressbook: https://github.com/ai-takeuchi/Roundcube-Plugin-LKK-AddressBook/
Webmin
http://doxfer.webmin.com/Webmin/Installation
apt (Debian/Ubuntu/Mint)
By adding the webmin repository and Jamie Cameron’s key it is possible to install & maintain the latest Webmin/Usermin versions.
Just Cut&Paste the entire text below and hit enter. This will install the latest Webmin version by adding the webmin-repo and corresponding key as well as installing necessary packages:
1 2 3 4 5 6 |
# sh -c 'echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list' # wget -qO - http://www.webmin.com/jcameron-key.asc | sudo apt-key add - # apt update # apt upgrade # apt update # apt install webmin |
https://192.168.11.9:10000/
Webmin > Webmin Configuration > SSL Encryption
Enable SSL : No
http://192.168.11.9:10000/
SSL: No では、Firefox 62 ではエラーが出てアクセスできない、Chrome では OK
1 2 3 |
Error - No cookies Your browser does not support cookies, which are required for this web server to work in session authentication mode |
Debian で /etc/rc.local が無い場合 使用できるようにする
See: https://stackoverflow.com/questions/44797694/where-is-rc-local-in-debian-9-debian-stretch
/etc/rc.local
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /bin/su -l USERNAME -c '/usr/bin/dropbox start' exit 0 |
1 2 3 4 5 6 7 8 9 10 |
# chmod +x /etc/rc.local # systemctl daemon-reload # systemctl start rc-local # systemctl status rc-local ● rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled) Drop-In: /lib/systemd/system/rc-local.service.d └─debian.conf Active: inactive (dead) Condition: start condition failed at Wed 2017-06-28 11:32:36 UTC; 3min 13s ago |