・2008/06/07 里親になりそうです
・2008/06/15 やってきた
・2008/06/16 写真と動画
・2008/07/18 もみちゅぱ
・2008/07/20 もみちゅぱ動画
・2010/06/09 猫を飼ってる人には判ること
・2011/04/30 もみもみちゅぱちゅぱ
・2011/05/01 むにゅーん
☆エイプリルフール
・2005/04/01
・2004/04/01
・2003/04/01
☆サーバ設定
・2004/12/14(1) ハード・ソフト一覧
・2004/12/14(2) OS Install
・2004/12/15(1) /etcの下
・2004/12/15(2) 各portの設定
・2004/12/17(1) RAIDディスク監視
・2004/12/17(2) IDEディスク監視
・2004/12/17(3) HotSaNIC
・2008/05/31 メンテナンスのお知らせ文テンプレ
・2008/06/01 ECCエラーなHDD入れ替え
・2008/12/30 HDD入れ替え
・2009/06/06 電源が壊れたときの作業ログ
・2011/05/29 tDiaryを3.0系統に入れ替えたときのパッチ
☆Xperia acroHD・Android
・2012/12/22 root取り~Titaniumまで
・2013/01/06 アプリ整理・Link2SD
・2013/01/21 旧端末→新端末アプリ移動
・2013/02/09 旧端末分解・アプリ整理
☆写真
・2002/12/31 冬コミ ブリジットコス
・2004/02/16 Babyロリ服
・2011/03/09 リーマンコス(笑)
・2011/07/19 BABYロリ服・浴衣
・2011/08/13 夏コミ2日目。薄桜鬼千鶴・BABYロリ服
・2011/08/14 夏コミ3日目。リリカルなのは制服・薄桜鬼千鶴
☆その他
・2004/08/08 tDiary改造メモ
・2003/02/18 キャッチセールスの断り方
・2010/08/12 リネ2 FFC応募作品
・2011/07/12 リネ2とTERAとの比較記事
2016-02-26 (Fri)
★AWS上のdovecotでtcp wrapper
※※※やっぱりiptablesで行う方針にしたので、この日記の内容は途中で切れます&どこかに間違いがあるかもしれません※※※
imapとかの、パスワードを入力するサービスを使っていると、やっぱりアタックっていっぱい来ます。だから、接続元を日本国内に限った上で、不審なホスト (ブルートフォースアタックがあったホスト(侵入られてる?)とか) からのを落としたい。
家のサーバではdovecot+ipfw使って delegated-apnic-latest というファイルから変換していました。FWに相当するものはAWSにもあるんですが…何百行も書くの大変すぎる… (AWSのコマンドラインコンソール使えば解決するレベルの問題ではありますが)
というわけで、標準で入っている TCP Wrapper 経由でのアクセスということにしました。
そういう方針にする、って決めたはいいんですが、Amazon Linux の dovecot に対して ldd しても libwrap が見つからない。つまり TCP Wrapper 経由でアクセスできるようにコンパイルされていない。
あーもうどうしよう…
しばらく cyrus imap とか試した上で、やっぱり dovecot でいいや、移行めんどいし、ということにしました。
まずはAWSコンソールから、同じ設定の別マシンを作ります。セキュリティグループを自分のみしか繋げない設定にして、そちらでビルド作業をします。
また、怖いのでrootでの作業はしません。ホントはrpmbuild専用のユーザ(mockbuild)作るんですが、手を抜いて自ユーザでやっちゃうことにしました。
とりあえず yum から SRPMS を取ってきます。
$ yumdownloader --source yum
Loaded plugins: priorities, update-motd, upgrade-helper
(略)
Nothing to download
…なんだかしらんけど、無い、だと!? 拒否られた…Σ( ̄□ ̄;
調べてみたところ、どうも Amazon Linux では get_reference_source というコマンドを使うらしいです。blogによっては --aws-account-id を指定するとなっているものもありますが、現行バージョンでは不要の模様。
$ get_reference_source -p dovecot
Requested package: dovecot
Found package from local RPM database: dovecot-1:2.0.9-7.14.amzn1.x86_64
Corresponding source RPM to found package : dovecot-2.0.9-7.14.amzn1.src.rpm
Are these parameters correct? Please type 'yes' to continue: yes
Source RPM downloaded to: /usr/src/srpm/debug/dovecot-2.0.9-7.14.amzn1.src.rpm
というわけで、ダウンロードできました。コマンドは一般ユーザで実行できます。/usr/src/srpm ディレクトリが 1777 (sticky) になっているようです。
rpmbuild は入ってないので入れます。
$ sudo yum install rpm-build
設定
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
ファイルを取り出します
$ rpm -ivh /usr/src/srpm/debug/dovecot-2.0.9-7.14.amzn1.src.rpm
mockbuildユーザじゃないのでエラーが出ますが無視。
rpmbuildディレクトリに展開されるので
$ vi rpmbuild/SPECS/dovecot.spec
%configure に --with-libwrap を追加し、Requires: tcp_wrappers と BuildRequires: tcp_wrappers-devel を追加します。
そしてビルド
$ rpmbuild -bb ~/rpmbuild/SPECS/dovecot.spec 2>&1 | tee -a log.txt
1回目はBuild dependency入れてないので、エラーで終わります。必要なものを入れて再実行
で、完成です。
…なにか間違ったのか ldd dovecot しても libwrap が出てきませんでした。
iptables で設定する方針に変更したので、これ以上は追っていません。