バーチャルホストのメールサーバ④
(枕話)哲学入門
まずはこれを見て欲しい。
- 作者: 飲茶
- 出版社/メーカー: 河出書房新社
- 発売日: 2015/11/06
- メディア: 文庫
- この商品を含むブログを見る
先日この本を入手した。
また積んである状態だが、読む本リスト・エントリーNo.2で控えている。
現在は西洋哲学史 下巻を読んでいる最中である。
史上最強の哲学入門の作者、飲茶氏は言う。
今までの哲学入門書には何が足りなかったのか。
そう、「バキ」成分である。
ボクは激しく同意した。
すべての学問は哲学が源流である。
つまりすべての学問には「範馬」の名に相当するような、最強の血が流れているわけである。
彼らは数々の猛者との論争を繰り広げ、より最強の真実を、より最強の正しさを求めて続けた。
ソクラテス然り、
プラトン然り、
デカルト然り、
カント然り、
フッサール然り、
ハイデガー然り、
ジャック・ハンマー然りである。
累々たる理論に対して、破壊、混沌、分類、再構築、ドーピングを繰り返し、現代でも正しさや、生き方についての疑問を投じる手段として使用される。
もちろんそれは我々のような武器を持たざるものが安易に手を出せるものではないのだが、史上最強の哲学入門は、初めて持つ武器、となってくれることであろう。
この世には、地上最強の腕力、史上最強の哲学、そしてもう一つの最強がある。
電子上最強のOS(無理矢理過ぎて哀愁)。
現存する正式なUNIXにはデニス・リッチー(Dennis MacAlistair Ritchie)の血が流れている。
いずれボクも、彼から正式な血を引く息子(のような気持ちでいる者)として、「電子上最強のOS入門」とかいう本を書けたら良いなと思う。
前回からの続き
tokixy56.hatenablog.com
tokixy56.hatenablog.com
tokixy56.hatenablog.com
PostfixAdminの設定
PostfixAdminの入手
本家サイト: Postfix Admin - Web based administration interface
PostfixAdminソフトは下記からダウンロード可能。
ダイレクトリンク
PostfixAdmin入手、解凍、移動
$ wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.93/postfixadmin-2.93.tar.gz
$ tar xzvf postfixadmin-2.92.tar.gz
$ sudo mv postfixadmin-2.93 /var/www/html/postfixadmin
/var/www/html/postfixadmin/config.local.php
移動したディレクトリ内に、新規にこのファイルを作成する。
<?php $CONF['configured'] = true; //setup.phpで作成された文字列を設定する。 $CONF['setup_password'] = 'ハッシュ値'; $CONF['default_language'] = 'ja'; $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'パスワード'; $CONF['database_name'] = 'postfix'; $CONF['admin_email'] = 'メールアドレス'; $CONF['alias_domain'] = 'YES'; $CONF['dovecotpw'] = "/usr/bin/doveadm pw"; $CONF['show_password'] = 'YES'; $CONF['show_footer_text'] = 'NO'; $CONF['emailcheck_resolve_domain']='NO'; $CONF['create_mailbox_subdirs_prefix']=''; $CONF['new_quota_table'] = 'YES'; $CONF['quota'] = 'YES'; $CONF['used_quotas'] = 'YES'; $CONF['new_quota_table'] = 'YES'; $CONF['aliases'] = '100'; $CONF['maxquota'] = '0'; $CONF['domain_path'] = 'YES'; $CONF['domain_in_mailbox'] = 'YES'; $CONF['encrypt'] = 'md5crypt'; $CONF['user_footer_link'] = "http://ドメイン/postfixAdmin/users/main.php"; $CONF['mailbox_postcreation_script'] = 'sudo /var/www/html/postfixadmin/postfixadmin-mailbox-postcreation.sh'; $CONF['mailbox_postdeletion_script']='sudo /var/www/html/postfixadmin/postfixadmin-mailbox-postdeletion.sh'; $CONF['domain_postdeletion_script']='sudo /var/www/html/postfixadmin/postfixadmin-domain-postdeletion.sh'; ?>
上記が設定し終わったら、http://ドメイン/postfixadmin/setup.php
へアクセスする。
このページを表示すると、何が足りないとかメッセージが出る。
必要なモジュールのインストールや、MariaDBへのデータベースの作成など、エラーが無くなるまで実施する。
PostfixAdmin setup.php画面
"Setup Password"にパスワードを入力して「管理者追加」ボタン押す。
簡単過ぎるパスワードを入れると、
Your password must contain at least 3 character(s).
とか
Your password must contain at least 2 digit(s).
とか表示されるので、違うパスワードを入力する。
適切なパスワードを入力していると下記のような表示が出力される。
PostfixAdmin ハッシュ値出力
ここに表示されているハッシュ値をconfig.local.phpの'ハッシュ値'の部分にコピーする。
ハッシュ値記載後、"Setup Password"には上記で使用したパスワードを入力し、"管理者"、"パスワード"、"パスワード(確認)"のすべての項目を入力し、「管理者追加」ボタン押すと、下記のように管理者作成が完了した旨が表示される。
PostfixAdmin 管理者作成完了
設定が終わったらsetup.phpはリネームするなどして、実行できないようにしよう。
上記作業が終わったら、次はhttp://ドメイン/postfixadmin/login.php
へアクセスする。
PostfixAdmin ログイン画面
ここで先ほど追加した管理者情報を入力すればログインすることができる。
だが、まだこの時点では正常に動作しないので注意。
PostfixAdminディレクトリ内
$ cd /var/www/html/postfixadmin $ sudo cp ./ADDTIONS/postfixadmin-domain-postdeletion.sh . $ sudo cp ./ADDTIONS/postfixadmin-mailbox-postcreation.sh . $ sudo cp ./ADDTIONS/postfixadmin-mailbox-postdeletion.sh . $ sudo chmod 755 postfixadmin-domain-postdeletion.sh $ sudo chmod 755 postfixadmin-mailbox-postcreation.sh $ sudo chmod 755 postfixadmin-mailbox-postdeletion.sh $ sudo chown apache:apache ./template_c
/etc/sudoers
上記でコピーしたスクリプトに管理者権限での実行権限を与える。
apache ALL=(ALL) NOPASSWD: /var/www/html/postfixadmin/postfixadmin-mailbox-postcreation.sh apache ALL=(ALL) NOPASSWD: /var/www/html/postfixadmin/postfixadmin-mailbox-postdeletion.sh apache ALL=(ALL) NOPASSWD: /var/www/html/postfixadmin/postfixadmin-domain-postdeletion.sh
/var/www/html/postfixadmin/postfixadmin-domain-postdeletion.sh
# Change this to where you keep your virtual mail users' maildirs. basedir=/var/spool/vmailbox # Change this to where you would like deleted maildirs to reside. trashbase=/var/spool/vmailbox/.deleted-maildirs if [ `echo $1 | fgrep '..'` ]; then echo "First argument contained a double-dot sequence; bailing out." exit 1 fi if [ ! -e "$trashbase" ]; then echo "trashbase '$trashbase' does not exist; bailing out." exit 1 fi trashdir="${trashbase}/`date +%F_%T`_$1" domaindir="${basedir}/$1" if [ ! -e "$domaindir" ]; then echo "Directory '$domaindir' does not exits; nothing to do." exit 0; fi if [ ! -d "$domaindir" ]; then echo "'$domaindir' is not a directory; bailing out." exit 1 fi if [ -e "$trashdir" ]; then echo "Directory '$trashdir' already exits; bailing out." exit 1; fi mv $domaindir $trashdir exit $?
/var/www/html/postfixadmin/postfixadmin-mailbox-postcreation.sh
# Change this to where you keep your virtual mail users' maildirs. basedir=/var/spool/vmailbox if [ ! -e "$basedir" ]; then echo "$0: basedir '$basedir' does not exist; bailing out." exit 1 fi if [ `echo $3 | fgrep '..'` ]; then echo "$0: An argument contained a double-dot sequence; bailing out." exit 1 fi maildir="${basedir}/$3" parent=`dirname "$maildir"` if [ ! -d "$parent" ]; then if [ -e "$parent" ]; then echo "$0: strange - directory '$parent' exists, but is not a directory; bailing out." exit 1 else mkdir -p "${parent}" if [ $? -ne 0 ]; then echo "$0: mkdir -p '$parent' returned non-zero; bailing out." exit 1 fi fi fi if [ -e "$maildir" ]; then echo "$0: Directory '$maildir' already exists! bailing out" exit 1 fi #maildirmake "$maildir" #if [ ! -d "$maildir" ]; then # echo "$0: maildirmake didn't produce a directory; bailing out." # exit 1 #fi # 以下を追記(maildirmakeの代わり) ---> mkdir "$maildir" if [ ! -d "$maildir" ]; then echo "$0: mkdir didn't produce a directory; bailing out." exit 1 fi mkdir "${maildir}cur" if [ ! -d "${maildir}cur" ]; then echo "$0: mkdir didn't produce a directory; bailing out." exit 1 fi mkdir "${maildir}new" if [ ! -d "${maildir}new" ]; then echo "$0: mkdir didn't produce a directory; bailing out." exit 1 fi mkdir "${maildir}tmp" if [ ! -d "${maildir}tmp" ]; then echo "$0: mkdir didn't produce a directory; bailing out." exit 1 fi chown -R mailuser:mailuser "$maildir" chmod -R 700 "$maildir" #<--- exit 0
/var/www/html/postfixadmin/postfixadmin-mailbox-postdeletion.sh
# Change this to where you keep your virtual mail users' maildirs. basedir=/var/spool/vmailbox # Change this to where you would like deleted maildirs to reside. trashbase=/var/spool/vmailbox/.deleted-maildirs if [ ! -e "$trashbase" ]; then echo "trashbase '$trashbase' does not exist; bailing out." exit 1 fi if [ `echo $1 | fgrep '..'` ]; then echo "First argument contained a double-dot sequence; bailing out." exit 1 fi if [ `echo $2 | fgrep '..'` ]; then echo "First argument contained a double-dot sequence; bailing out." exit 1 fi #subdir=`echo "$1" | sed 's/@.*//'` subdir=$1 maildir="${basedir}/$2/${subdir}" trashdir="${trashbase}/$2/`date +%F_%T`_${subdir}" #maildir="${basedir}/${subdir}" #trashdir="${trashbase}/`date +%F_%T`_${subdir}" parent=`dirname "$trashdir"` if [ ! -d "$parent" ]; then if [ -e "$parent" ]; then echo "Strainge - directory '$parent' exists, but is not a directory." echo "Bailing out." exit 1 else mkdir -p "$parent" if [ $? -ne 0 ]; then echo "mkdir -p '$parent' returned non-zero; bailing out." exit 1 fi fi fi if [ ! -e "$maildir" ]; then echo "maildir '$maildir' does not exist; nothing to do." exit 1 fi if [ -e "$trashdir" ]; then echo "trashdir '$trashdir' already exists; bailing out." exit 1 fi mv $maildir $trashdir exit $?
と、まぁここまでやって初めてPostfixAdminが正常に動作する…はず!!w
あ、プロセス起動するの忘れてた
$ sudo systemctl start httpd $ sudo systemctl start mariadb $ sudo systemctl start postfix $ sudo systemctl start dovecot $ sudo systemctl enable httpd $ sudo systemctl enable mariadb $ sudo systemctl enable postfix $ sudo systemctl enable dovecot
あ、そういえばselinux無効化とポート解放も忘れてた
SELinux無効化コマンド
$ sudo setenforce 0
/etc/selinux/config
...
SELINUX=disabled
...
firewalld設定ファイルコピー
$ sudo cp /usr/lib/firewalld/services/imaps.xml /etc/firewalld/services $ sudo cp /usr/lib/firewalld/services/smtp.xml /etc/firewalld/services $ sudo cp /usr/lib/firewalld/services/smtp.xml /etc/firewalld/services/submission.xml
/etc/firewalld/services/submission.xml
<port protocol="tcp" port="587">
firewall設定コマンド
$ sudo systemctl restart firewalld $ sudo firewall-cmd --add-service=http --zone=public --permanent $ sudo firewall-cmd --add-service=imaps --zone=public --permanent $ sudo firewall-cmd --add-service=smtp --zone=public --permanent $ sudo firewall-cmd --add-service=submission --zone=public --permanent
はぁー今回長くなったな…。
次回
参考にさせて頂いたページと、RainloopというWebメールの設定をしたいと思う。
一応、ここまでで本筋の設定は完了する。
あとはThunderbirdなりiPhoneなりのメーラで設定すれば正常に動作するはずだ…。
自信ないけどw
それ以外のネットワークに関する設定は