の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ その4
メールサーバー postfix, dovecot, etc |
今回もメールサーバーを立ち上げます。 従来どおりpostfixとdovecotの組み合わせを使用します。 |
|
|
そろそろ一番面倒なメールサーバーをやらなくてはなりません。 何回やってもめんどうなのであまり気乗りしませんが、春もきたことだしそろそろやらないと。 およそ以下のような方針でやります。(基本的には従来とあまり変わりませんが。) 1. | メールサーバー(MTA+MUA)として今回も同じくpostfixとdovecotの組合わせをインストールします。 | 2. | ウィルススキャナとしてclamavを使用し、clamavとpostfixの連携にはclamav-milterを使用します。 | 3. | メール関係のデータベースに従来どおりMySQLを使います。 | 4. | データベースの設定・確認にPostfixAdminを導入します。 | 5. | ユーザ認証には今までやった中で一番めんどうの少ないdovecot-saslを使うことにします。 | 6. | スパム対策として従来通りホスト名を逆引きできない接続からの受信はいったん遅延し、再要求があった場合にのみ受信するようにします。 | 7. | WEBメールソフトに従来どおりSquirrelMailを導入します。 |
|
1〜3はすでにやってありますので4のPostfixAdminから。
|
PostfixAdmin
php-imap を追加インストール。 http://sourceforge.net/projects/postfixadmin/ より PostfixAdmin-2.92.tar.gz をダウンロードし、http表示ディレクトリに展開し名前をpostfixadminとでも変更。 INSTALL.TXTを読みます。 postfixadmin/templates_c ディレクトリのowner:groupをapache:apacheに変更(すなわち書き込めるように)。 .htaccess を設置。単に念のためのアクセス制限。 postfixadmin/.htaccess Options -Indexes +FollowSymLinks DirectoryIndex index.php <FilesMatch "^setup\.php$"> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 ::1 192.168. </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Allow,Deny Allow from 127.0.0.1 ::1 192.168. </IfModule> </FilesMatch>
postfixadmin/config.local.php をつくり、データベース設定など記入。 ほとんど以前やった CentOS5でのPostfixAdminの設定と同じ。 このconfig.local.phpはconfig.inc.phpでincludeされてそれを上書きしますので、変更部分だけをこちらに記載すればいいです。 postfixadmin/setup.phpをwebブラウザでアクセスするといろいろチェックをしてくれます。問題があれば指示に従って修正。 MySQLのpostfixデータベースは古いバージョンのをそのまま持って来ていますが新しいバージョンのsetup.phpを起動しますと自動的にテーブルがアップデートされます。 以上、ためしにアクセスしてみてOK。 |
|
Dovecot
|
Postfix
今回のPostfixのバージョンは2.2.10、前回CentOS6ではpostfix-2.6.6。前回のバージョンの方が高いのはVDAパッチを適用方々最新版でビルドしたためですが、今回はめんどうなのでそのまま。 前回のCentOS6での設定とほとんど同じですが、ウィルスチェッカーがclam-smtpdからclamav-milterに変わっています。 その部分だけ変更。 /etc/postfix/main.cf content_filter = virus-scan:127.0.0.1:10025 receive_override_options = no_address_mappings
↓ smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket non_smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket milter_default_action = accept receive_override_options = no_address_mappings
master.confへのウィルスチェッカーの設定は必要なし。 |
|
ファイアウォール設定
CentOS7のファイアウォールにはSSLを使うpop3s,imapsサービスは登録されていますが、SSLを使わない従来のpop3,imapサービスは登録されていません。今後はとにかくSSLを使えということのようですが、古いメールソフトが使えないかもしれませんし、利用者に設定変更してもらうのも面倒です。 それに試してみたら信用できないSSL証明書だから接続するなという警告もでます。でも高いお金を払ってまで認証を受ける気もありません。
で、推奨されてはいませんが、pop3,imapサービスを追加します。 設定を「永続」にして、サービスに pop3 : port 110 imap : port 143 を追加し、poblicゾーンを再読み込みし、上記を有効に。
|
不正中継テスト
すべての設定を動作を確認したら最後に http://www.rbl.jp/svcheck.php で 不正中継のテストをしておきます。 すべてのテストで不正中継されないことを確認し、OK!。
|
|
|