FC2ブログ

スクリプトを混ぜたサーバー構築実験

前回、Webメールアプリ RoundCube その2
にて、メールサーバー機能がないため、導入が頓挫していましたので

これを機会に、再度ローカルメールサーバーを構築してみました
とはいっても、今回は以前のように暗号化などは行っていません

前回のローカルメールサーバー構築については
POP形式で行いました
そのときのメモがわりに書いたのが
メールサーバー構築(Postfix+Dovecot)
から載っています
カテゴリ Postfix+Dovecot
にいろいろと書き込んでありますので
もしよければ参考にしてみてください

それにしても、ブログでメモしておくと
後々同じようなトラブルが起きたとき対処しやすくなりますので
これからも続けていこうと思います

さて、話がそれましたが
今回は、シェルスクリプトを使ってのセットアップとなります
とはいっても、まだ if や switch などを使った制御ではなく
ただ単にコマンドの羅列程度です

参考にさせていただいたのは、前回のときと同じサイトです
ただし、今回の設定したのは fedora13 32bit
メールサーバー構築(Postfix+Dovecot)
のほうになります

ある程度はスクリプトでできたのですが、
どうしてもコマンドを入力する場面はでてきます
まぁそれは今後の課題ということで、まずは今回の実験結果です

それでは、今回作成したスクリプト
setup_fedora_mail_server.sh
の内容です

途中に cp コマンドがあるように
あらかじめ同ディレクトリ内に
procmail設定ファイルの procmailrc

そして
procmailログローテーション設定ファイルの
procmail
を用意する必要があります
----------------------------------
#!/bin/bash
#yum -y install yum-fastestmirror
#yum -y install nautilus-open-terminal
#/etc/rc.d/init.d/yum-updatesd stop
#yum -y remove yum-updatesd
#yum -y install yum-cron
#chkconfig yum-cron on
yum -y install postfix

#7行めに追記(自FQDN名を指定)
sed -i "77i myhostname = mail.linuxwiki.com" /etc/postfix/main.cf

#88行めに追記(自ドメイン名を指定)
sed -i "85i mydomain = linuxwiki.com" /etc/postfix/main.cf

#102行めに追記(ローカルからのメール送信時の送信元メルアド@以降にドメイン名>を付加)
sed -i '102i myorigin = $mydomain' /etc/postfix/main.cf


#perl-TimeDate のインストール
yum -y install perl-TimeDate

#外部からの受信を許可
sed -i "s/inet_interfaces = localhost/inet_interfaces = all/g" /etc/postfix/main.cf

#167行目、行末へ , $mydomain を追記
#($は特殊記号なのでエスケープが必須になる)
sed -i "167s/\$/, \$mydomain/" /etc/postfix/main.cf

#423行目追記(メールボックスの形式をMaildir 形式へ)
sed -i "423i home_mailbox = Maildir/" /etc/postfix/main.cf

#575行めにメールサーバーソフトの隠蔽を追記
sed -i "575i smtpd_banner = \$myhostname ESMTP unknown" /etc/postfix/main.cf

#最下行へ追記
#SMTP-Auth 設定
echo -e 'smtpd_sasl_auth_enable = yes' >> /etc/postfix/main.cf
echo -e 'smtpd_sasl_local_domain = $myhostname' >> /etc/postfix/main.cf
echo -e 'smtpd_recipient_restrictions =' >> /etc/postfix/main.cf
#行頭に空白がはいっていないと、なぜかエラーになるので注意
echo -e ' permit_mynetworks' >> /etc/postfix/main.cf
echo -e ' permit_sasl_authenticated' >> /etc/postfix/main.cf
echo -e ' reject_unauth_destination' >> /etc/postfix/main.cf


#受信メールサイズ設定
echo -e 'message_size_limit = 20485760' >> /etc/postfix/main.cf

#saslauthd 起動
/etc/rc.d/init.d/saslauthd start

chkconfig saslauthd on

sed -i "s/saslauthd/auxprop/g" /usr/lib/sasl2/smtpd.conf
mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/

sed -i "453i mailbox_command = /usr/bin/procmail" /etc/postfix/main.cf

## procmail procmailrc に関してはcp コマンドで作成済みファイルをコピー

cp -p procmailrc /etc/
cp -p procmail /etc/logrotate.d/
/etc/rc.d/init.d/sendmail stop
chkconfig sendmail off

#メールサーバー切り替え
#2を選択すること
alternatives --config mta

/etc/rc.d/init.d/postfix start
chkconfig postfix on


#Dovecot の導入
yum -y install dovecot

#設定ファイル変更
sed -i "21i protocols = imap imaps pop3 pop3s" /etc/dovecot.conf
sed -i "226i mail_location = maildir:~/Maildir" /etc/dovecot.conf

/etc/rc.d/init.d/dovecot start
chkconfig dovecot on

-----------------------------------------------------

ここまでで、大抵の設定はできるのですが
メールユーザの設定等は
自力で入力することになります

これはまだ、ログインなどの処理スクリプトをかけないのが原因です
このため、今回はメールユーザをそのまま fedora
パスワード関連に関しては
ローカル メールサーバー構築
を参考に
echo "hebereke" | saslpasswd2 -p -u linuxwiki.com -c fedora
としました

ユーザ登録のスクリプト化については
''簡単なユーザアカウント登録するシェルスクリプト'
とか
Linux処理の自動化 (GUI処理含む)
などを参考に、つくってみようと思います

今回の設定では、暗号化などは行っていません
このため、セキュリティには問題がありますので
実用はこのままではできません

次回は、前回中断してしまった RoundCube の導入を行おうと思います
スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック