Month: 6月 2021

  • ipv6 source address

    同一インターフェイスに複数のipv6アドレスが付いている時、通常使うアドレスを指定する方法。 サービスごとにアドレスつけてたりすると、どれをソースアドレスとして接続しに行くかわからんので優先順位をつける。何も設定しないと、大体アドレスの長い奴が優先されて、一番単純なアドレスが代表なのに使ってくれなかったりする。例:2001:db8::1>(代表)と2001:db8::143(dovecot imapd用)と2001:db8::53(bind用)があったりすると(16進ではなくてBCDなのです(言い訳))、他のPCに接続しに行くと大体2001:db8::143でログが残って、これ誰だっけ?になりやすい。本当は2001:db8::1で接続しに行って欲しい。 また、相手がv6アドレスで接続制御してたりするとソースアドレスが決められなくて困る。まあこういうやつはtransfer-source-v6とかオプションがあったりするので個別対応すればいいんではあるが。 /etc/systemd/network/interface.networkに、 とすると、PreferredLifetimeがinfinitが最優先、0だとソースアドレスとして使用しない事になる。 ちなみにRAでステートレスアドレスつけると有効期限がそのままPreferredLifetimeに付く。なので、 とかすればステートレスとかいいつつ2001:db8::1とホスト部が指定できて、デフォルトルートも設定できて、 ソースアドレスとして使用されない追加アドレスも設定できた。

  • StartTLS

    認証関係はやり始めると時間がかかる上、途中で辞められないので大変である。 やっとSSLとTLSとStartTLSの違いがわかった(気がする) SSLとTLSは実質一緒で、SSLがバージョンアップしてTLSになって、かつSSLはもう古いので使うな、ということらしい。でも通称SSLが多いのでSSL/TLSと表記することが多い、だそうな。 で、StartTLSは、最初から暗号通信するか途中から暗号通信するかの違いらしい。 httpsは最初から暗号通信を行う。http/StartTLSは最初httpで平文接続して、プロトコルの中でStartTLS -> ネゴシエーション -> 暗号化 という手順を行う。 同じポートで待ち受けできるので良いらしい。 そこでLDAPをTLS対応させてみたら色々はまりました。普通に間違えてつながらなくなってうひょーは割愛(これが大変だったのは確かだが… ldap.conf(のLDAPエントリ)に dn: olcDatabase={1}hdb,cn=configolcSecurity: tls=1 を追加すると、ldap://を受け付けるがStartTLSしないとダメ、と設定できる。この際なのでldapsの待ち受け消してldap/TLSのみにしてやろうと思ってやってみた。 結局のところ、クライアントにどうやってStartTLSを指示するか、が問題となった。あと、StartTLSをyesにして、ldaps://でつなぎに行くと2重になるのでエラーになる。なのでuri指定をldapi:/// ldap://…とldaps指定をやめた。ちなみにldapi:///指定でもStartTLSしないと弾かれる。UNIX socketなら暗号化は特にいらない気もするがまあ仕方ないのだろう。# それを言うとldap通信してるのは全部同一マシン内の仮想マシンなので根本的に暗号化の必要性は無いとも言えるが(汗 /etc/ldap/ldap.confにSSL start_tls でldap.confを読むやつはStartTLS対応になる。sudo-ldapなど。ただしTLS_REQCERTをneverとか、TLS_CACERTを適切に設定とかしないとはじかれる。nslcdもnslcd.confに同じ書き方で良さげ。 postfixはldap-*.cfにstart_tls = yes isc-dhcp-server-ldapはdhcpd.confにldap-ssl start_tls; wanderlust: .wlに(setq elmo-imap4-default-stream-type ‘starttls) openldap SyncRepl はstarttls=yesとtls_reqcert=allow|neverを指定。 と、ここまで来て困ってしまったのが、kerberos ldapだった。どうもMIT kerberosからLDAPを見に行くときにStartTLSの設定がないっぽい。このためだけにldapsを動かすのも嫌なのだが、諦めてldapsを指定してみる。 しかしオレオレ認証のためか検証エラーっぽくつながらない。やっぱりslapdのSecurity: tls=1 はダメなのだろうか・・・ 誰もkerberos ldap使ってないのだろうか。ググったけど1件だけ「まだ対応していないのでldapsにするかTLS諦めてね」というのがあっただけで、他は「対応しているかどうかは書かずに」「ldapにすれば動く」「ldapi:///でおけ」というものばかりだった。 世の中kerberosと言えばActive Directoryのようで、sambaとかAD使わずにkerberos+LDAP使っている人はかなり少数派のようである。 ldap://…/!StartTLSみたいなURIで指定する仕様もあるようだが、もちろんクライアントが対応していないと何ともならず。