・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-14 (Sun)
★[サーバ] AWSにメール制限の除外申請
AWSメールサーバを運用する方法は、大きくわけて2つあります。1つ目が共有のメール送信用ゲートウェイ(SES)に投げてリレーしてもらう方法。2つ目が外部サーバに対する25/tcp接続(SMTP)の制限を解除してもらう方法。
1番目のは、通常のSMTP接続じゃなくて、AWS APIとかcli経由になります。内部では暗号化してる模様で、secret keyが必要になります。postfixと連携する方法もあるんですが調べて設定するのが面倒なので今回は2番めの方法を取ることにしました。
2番目の方法は、普通のSMTPで外部接続できます。必要なのは、bounceなどの処理をきちんとすることと、英語でのやりとりです。bounce処理は、AWSにかぎらず当たり前のことなんですが、公式に記載があるためわざわざ記載してみました。なお公式スライドには「難しい場合は担当営業にご相談ください」と書いてあるんですが、会社契約ならまだしも、個人使用の場合は担当営業がついてるはずもなく…
申請したのは1週間前、2/7の夜でした。公式のスライドを見ての作業になります。うちの場合は、Elastic IPは取ってあるし、Route 53(DNS)も使用しているので、あとは申請するだけです。
ヘルプの該当項目「電子メールアプリケーションでの逆引き DNS の使用」から、Create Caseに飛び、ログイン。一番下のリンクから別ページに飛びます。あるいは公式スライドにあるようにAWSのHP下部「サービスの上限緩和を申請」でも同じところにたどり着くようです。制限タイプはEC2 Email
そして
こういうことになります。
申請内容は特に難しくありません。メールアドレス、何に使うかの説明(英語で記載)、自分のIP、逆引き設定をするホスト名。逆引き申請する前に正引きは登録しておく必要があります。
今回、使用目的は「自分のpersonal domainでメールを送る。自分と家族と友人しか使わないよ」って(英語で)書きました。
申請したのが週末だったためか、返信 (Your AWS Inquiryというメール)が来るまでに2日かかりました。日本時間では9日、現地? (+0000)時間で8日に返信がされています。Descriptionはいい加減な内容だった気はしますが大丈夫だったようで…。もちろん英語のメールです。DNS登録したよ、RBLからの除外には1週間くらいかかるよ、ってメールでした。
本日確認したところ、RBLから除外されていることを確認。AWS様ご対応ありがとうございました (←英語で書けよ)
まだ「IPアドレスからメールが送信できるようになった」だけで、送信の設定がされてません。そちらはこれからです…
2016-02-18 (Thu)
★某設定
とある設定のメモです。3(0~3の場合があるらしい)→2に書き換え
現行ver:設定はSQLiteで保存
# cd /data/data/jp.naver.line.android/databases
# /data/data/com.keramidas.TitaniumBackup/files/sqlite3 naver_line
sqlite> select * from setting where key="AU_USER_AGE_TYPE";
項目がある場合は書き換え、ない場合はinsertして良い模様
sqlite> insert into setting (key,value) values ("AU_USER_AGE_TYPE",2);
sqlite> .quit
古いver:設定はXML
# cd /data/data/jp.naver.line.android/shared_prefs/
# vi jp.naver.line.android.settings.xml
2016-02-20 (Sat)
★[サーバ] AWS上のposfixにSPFを設定
こちらの記事を参考に、SPFを設定してみてました。
このサーバでは、AWS上でAmazon Linux使ってるのですが、SPF用のパッケージが無い
…とおもったら、EPEL(Extra Packages for Enterprise Linux)のほうにありました。EPEL自体はAmazon Linuxに最初から入っていた模様。別にそんなミッションクリティカルな場所じゃないですし、3rd Partyのパッケージ使ってもいいよね…
というわけで、インストール
$ yum --enablerepo=epel install pypolicyd-spf.noarch
ドキュメントは /usr/share/doc/pypolicyd-spf-1.3.2 に、設定ファイルは /etc/python-policyd-spf/policyd-spf.conf にありました。
最初は Hard Fail ではなく、ヘッダにフラグを立てるだけにして、うまく動いていることを確認したのちに拒否にする、という運用です。
HELO_reject = False
Mail_From_reject = False
テストしてみたら動かない…
なんか、インストールしたときに python2.6 を依存関係でひっぱってきたのですが、使われているのが python2.7 で、ライブラリが見つからない模様。同じく依存関係で入った pyspf や pydns は python2.6 のディレクトリに入ってました。
というわけで /usr/libexec/postfix/policyd-spf を編集。ファイルの1行目を #!/usr/bin/python から python26 へ
自宅のほうから telnet したら、うまく動いたみたいです。(まだ設定途中なので自宅のみFWあけてます)
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 で設定する方針に変更したので、これ以上は追っていません。