2024/05/06(月)メモ:dma(8)を設定してみた。
/etc/rc.conf
既存のMTA等を殺しておく。うちのお試し用ホストならこんなもの。なお、dma(8)にはリモートからのメールを受信する機能はなく、そのせいか常駐していないので、ここに追加するネタは無い。sendmail_enable="NONE"
postfix_enable="NO"
cyrus_imapd_enable="NO"
dovecot_enable="NO"
/etc/mail/mailer.conf
MTAとしてdma(8)を起動するよう書き換える。# cp /usr/share/examples/dma/mailer.conf /etc/mail/mailer.conf # chown root:wheel /etc/mail/mailer.conf # chmod 0644 /etc/mail/mailer.conf
/etc/periodic.conf
作成して、sendmail(8)用のジョブを殺しておく。postfix(8)をインストールした人なら、お馴染みの作業。daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
/etc/dma/dma.conf
# メールサーバの実アドレス
SMARTHOST mail.example.jp
# imapサーバで受信するアドレスにしておくと、それなりに楽。
MASQUERADE a.example.jp
# ローカル受信禁止
NULLCLIENT
2024/05/06(月)メモ:cyrus-imapdとpostfixで複数ドメイン試してみた。
環境
- FreeBSD 14.0-RELEASE-p6
- postfix-sasl-3.9.0,1 (FreeBSD package)
- cyrus-imapd38-3.8.2 (FreeBSD package)
設定
postfix
複数ドメインを扱うので、virtual mailboxを使う。- main.cf(よりぬき)
myhostname = mbox.example.jp
virtual_transport = lmtp:unix:/var/imap/socket/lmtp
virtual_mailbox_domains = a.example.jp b.example.jp
virtual_mailbox_maps = hash:imap_users
- imap_users
foo@a.example.jp OK
bar@a.example.jp OK
hoge@b.example.jp OK
fuga@b.example.jp OK
cyrus-imapd
- imapd.conf(よりぬき)
unixhierarchysep: yes #FQDNには'.'が入るので、念のため。
sasl_pwcheck_method: auxprop
virtdomains: userid
defaultdomain: a.example.jp
admins: admin
- cyradm操作
% cyradm --user=admin localhost localhost>cm user/foo #'%'や'@'が無い場合、defaultdomainの下に入る。 localhost>cm user/bar@a.example.jp #FQDNで指定してもよい。 localhost>cm user/hoge@b.example.jp localhost>cm user/fuga@b.example.jp localhost>quit %
cyrus-sasl
# saslpasswd2 -c foo # defaultdomain したものは、既定のrealmで。 # saslpasswd2 -c bar # saslpasswd2 -c hoge@b.example.jp # defaultdomain 以外はFQDNで。 # saslpasswd2 -c fuga@b.example.jp※ submission認証@postfixにも同じID/passが使われる。
2023/05/01(月)トラブルのメモ
- 現象:複数のサーバで、DNS権威サーバとUDPでの通信ができない。TCPでは疎通。
- OSはFreeBSD 13.(1|2)-RELEASE
- DNSサーバはnsd(from FreeBSD ports)
- 対策?:現象を深掘りしようと、pfを設定して入ってくるパケットのログ取りをすると、疎通
する。しなかった。
drill -t @[サーバ] では通るし、traceroute -P UDP -p [ポート番号] で
2023/01/07(土)またDMZこけた。
1月3日の午後から兆候は出ていた。DMZホスト(FreeBSD13.1R on conoha)へのsshセッションが妙に切れる。postfixやらなにやらがいつの間にやら死んでいる。迷惑メール対策でいろいろ設定をいじっていたので再起動し忘れたかなと思ってた。深夜になると、いよいよつながらなくなる。VPSの制御コンソール経由で再起動かけてもダメ。それどころかブートシーケンスの途中で "out of swap space" とほざいて死んでいく。まだシングルユーザモードでは立ち上がるので、増設ディスク借りてスワップ増量してもだめ。「仕事始めの直前でこれかよ」と思ったよ。
そこで、諦めて次の手を打つ。
- 借りた増設ディスクにUFSパーティションを切る。
- インストールしたpackageのリストを "pkg info" でとって増設ディスクに保管。
- /home, /etc, /usr/local/etc, /usr/local/www (このサイトのデータ)をtarでバックアップして増設ディスクへ。
- dumpで / をフルダンプして増設ディスクへ。
- VPSの制御コンソールからサーバ再構築。
- restore かけてみる。→ 再発。
- も一度再構築。freebsd-updateでOSを最新に。
- tarとったデータとpackageデータ見ながら、DMZのサービスを1つずつ復元する。
- NTP
- DNS
- postfix
- apache
- let's encrypt(認証にapacheが必要なので、順序としてはここ。)
- Webアプリ
- バックアップを圧縮して自宅に待避 ←いまここ
- 待避完了したら増設ディスクを返して終了。
xz -9 でdumpイメージ圧縮しているが、終わらない。圧縮後のファイルがまだ5%ぐらいだから、1ヶ月かかるのか。失敗した。先に自宅に移すべきだった。この日記書く裏で思い立って転送始めたが、書いているうちに自宅サーバへの転送終わっちゃった。さあ、増設ディスクを切り離して返却しないと。
2022/08/20(土)Panic!
幸い、portupgrade経由でインストールしたもののログが残っていて、どんなpackageがどんなオプションつけて入っているかは分かっている。
そこで、次の手順で復旧かな。
- /var/db/pkg を初期化。
- ログを基に入れられるだけportsから再インストール。ただし、perl/ruby/pythonは現在のports正式採用分のみ。
- packageのautoremoveフラグを再設定。必要なアプリ以外はautoremoveフラグを立てる。
- pkg autoremoveで不要なpackageを削除。