トップ «前の日記(2018-02-03(Sat)) 最新 次の日記(2018-02-12(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2018-02-06(Tue) 厳寒の日差し

lxc環境下でopendkimなど

仮設のサーバ(MXも逆引きもSPFも設定済みだけど) で、ようやく動くようになった。
VPSに立てたstretch 64bitにlxc(これもstretch) を何度も入れて試す。
一応動くものができたっぽいのでまとめておく。
なお全部ゼロから作ったというより、ほとんどは 別のクラウドサービスで試したファイルの使い回し だったりする。

VPSはグローバルIPv4アドレスを一つ借りている。lxcのために、 一種のNATにする。
ホストの/etc/network/interfaces編集。

auto lo
iface lo inet loopback
auto br0
iface br0 inet static
  address $GROBAL_IP
  netmask $MASK
  gateway $GW
bridge_ports ens3
iface br0 inet static
  address $PRIVATE_IP
  netmask $24BIT_MASK

/proc/sys/net/ipv4/ip_forwardを1にする。
iptablesのnatは次のようになった。

Chain PREROUTING (policy ACCEPT 74751 packets, 3257K bytes)
 pkts bytes target     prot opt in     out     source    destination
   18   748 DNAT       tcp  --  br0    *       0.0.0.0/0
           $HOST_IP      tcp dpt:80 to:$LXC_HOST:80
   11   460 DNAT       tcp  --  br0    *       0.0.0.0/0
           $HOST_IP      tcp dpt:443 to:$LXC_HOST:443
   16   904 DNAT       tcp  --  br0    *       0.0.0.0/0
           $HOST_IP      tcp dpt:25 to:$LXC_HOST:25
   14   840 DNAT       tcp  --  br0    *       0.0.0.0/0
           $HOST_IP      tcp dpt:587 to:$LXC_HOST:587
   10   600 DNAT       tcp  --  br0    *       0.0.0.0/0
           $HOST_IP      tcp dpt:995 to:$LXC_HOST:995
 
Chain POSTROUTING (policy ACCEPT 115 packets, 7009 bytes)
 pkts bytes target     prot opt in  out  source       destination
  723 47262 MASQUERADE  all  --  *  br0  $LXC_NET/24  0.0.0.0/0

LXC。lxc-create -n NAME -t DISTRO で作って、 configにネットワークを追加。

lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
lxc.network.hwaddr = XX:XX:XX:XX:XX:XX
lxc.network.ipv4 = PRIVATE_IPv4_ADDR
lxc.network.ipv4.gateway = PRIVATE_IPv4_GW

で、肝心のLXCコンテナの中身の方。
ネットワークの設定は、こちらの方ではなしでもいいようだ。
まず/etc/localtimeをAsia/Tokyoにし、メール送受信の ユーザを作った。面倒なのでシステムアカウント。

# LANG=C apt-get install vim-tiny lv less nmap tcpdump 
 rsync rsyslog nginx bsdcertbot postfix dovecot-pop3d 
 opendkim opendkim-tools iputils-ping -y

デフォルトではpingもない。rsyslogがないとログが記録されない。
LANG=C でないとPostfixのインストールが毎回失敗したり する。letsencryptなど省略。
postfix、dovecot、opendkimは一旦systemctl stop しておいた。

/etc/dkimkeysは opendkimユーザ、グループが所有していた が、どうもうまくいかない。中身もろともroot:rootに変える。
opendkimグループにpostfixを追加した。

$ opendkim-genkey -s SELECTOR_NAME -b 1024 -d DOMAIN.TLD

利用しているDNSサーバはデフォルトの鍵長(2048ビット)がTXT レコードに収まらないようだ。
ダブルクォートで括れ、というTipsも聞いたが、結局うまくいかず 1024ビットで我慢。

# grep -v "^$\|^#" /etc/opendkim.conf
Syslog			yes
UMask			000
Domain			kuzuore.net
KeyFile		/etc/dkimkeys/DOMAINKEY_NAME
Selector		SELECTOR_NAME
Canonicalization	relaxed/simple
Mode			sv
Socket			inet:8891@localhost
PidFile               /var/run/opendkim/opendkim.pid
OversignHeaders		From
TrustAnchorFile       /usr/share/dns/root.key
UserID                opendkim

postfixの関係部分はこれくらい。

milter_default_action = accept
milter_protocol = 2
non_smtpd_milters = inet:localhost:8891 
smtpd_milters=inet:127.0.0.1:8891

MUAより送信したメールのヘッダに、DKIM-Signature: が付いていることを確認。 gmailも'PASS'(シングル クォーテーションが幾分気になった)。

Authentication-Results: mx.google.com;
 dkim=pass header.i=@kuzuore.net header.s=myselector 
 header.b=G6bjuE4V;
 spf=pass (google.com: domain of UUUUUUU@kuzuore.net 
 designates YYY.YYY.YYY.YYY as permitted sender) 
 smtp.mailfrom=UUUUUUU@kuzuore.net

mail(1)などで内部から送信したメールには、 まだ付けられないでいる。
また、立ち上げがうまくないと、メール送受信はできてもDIMG-Signatureが 付かなかったりする。

Feb  6 11:33:59 $LXC_HOST postfix/submission/smtpd[10503]:
 warning: connect to Milter service inet:127.0.0.1:8891:
 Connection refused

ststemctlを色々と叩いたり lxc-stop lxc-startしたりしていた。 上のエラーの後、設定を変えてもいないのに、無事に通るようになった。

inetを少し変えて、本番サーバにもほぼ同じ設定。メールを投げ合って みたところ、とりあえずは動いてる、らしい。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。