2016年5月16日月曜日

RHEL7 系の slapd では SLAPD_ULIMIT_SETTINGS は使えない

RHEL6 系(CentOS 6, Scientific Linux 6 等)で、 /etc/sysconfig/slapd に
SLAPD_ULIMIT_SETTINGS="-n 4096" とか指定して too many open files の対策
をしていた人もいると思うが、RHEL7 だとこれは使えない。疑う人は
/proc/<pid>/limits で確認してみる。

この SLAPD_ULIMIT_SETTINGS は slapd が見る環境変数じゃなくて、RHEL6 系
の init.d 下のスクリプトが見てちょこちょこやってただけということで。

なので、systemd 的には ulimit -n な設定は /etc/systemd/system/slapd.service
に LimitNOFILE で定義する。ファイル編集後は systemd daemon-reload を忘れずに。

# /usr/lib/systemd/system/slapd.service を直してしまうと、おそらく update 時
# に上書きされる。これは openldap-servers の config ファイル扱いになってない。

# cp /usr/lib/systemd/system/slapd.service /etc/systemd/system/
# vi /etc/systemd/system/
  : (snip) 
[Service]
Type=forking
  : (snip)
ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS
LimitNOFILE=4096 
  : (snip)  

2016年5月12日木曜日

RHEL7 で xinetd から起動してるプロセスからのコア吐き

そもそも RHEL7 で xinetd 使うなってことは置いておいて、xinetd から起動している
自作のプログラムからコアが吐けない。

http://blog.urban-theory.net/2014/08/27/why_the_coredump_fails_or_removed_too_quickly

/etc/abrt/abrt-action-save-package-data.conf

いろいろ試して上記の情報で吐けるようにはなったのだが、試した中でどれがいらない
要素かわかないのでとりあえず他にやった設定全部メモ。


  • /usr/lib/systemd/system/xinetd.service に LIMITCore=infinity を追加。
  • ソース自体に下記を追加

struct rlimit rl = { RLIM_INFINITY, RLIM_INFINITY };
setrlimit(RLIMIT_CORE, &rl);


2016年5月6日金曜日

pwdMinLength 挙動メモ

OpenLDAP の ppolicy で pwdMinLength が効かないので調べた単なるメモ。
結論として、これを効かせるには pwdCheckQuality を 1 か 2 にしなきゃならん。
どこぞに userPassword がハッシュだと効かないとか書いてあったが、どうもそれは違うみたい。

とにかく pwdMinLength を有効にしたいなら pwdCheckQulity:1 (または2)にする必要あり。

2016年4月19日火曜日

Open vSwitch の内部ポートを tcpdump

Open vSwitch の内部ポートを tcpdump したいんだが、普通に -i にそのポートを指定する
と No such device exists で蹴られる。

ググったらすぐ見つかったが、コマンドの意味が全然わからないのでおまじないだと思って
ここにコピペメモ。

http://docs.openstack.org/ja/openstack-ops/content/network_troubleshooting.html

  1. ダミーインターフェース snooper0 を作成して起動します。
    # ip link add name snooper0 type dummy
    # ip link set dev snooper0 up
    
  2. snooper0 デバイスを br-int ブリッジに追加します。
    # ovs-vsctl add-port br-int snooper0
    
  3. patch-tun のミラーを snooper0 に作成します (ミラーポートの UUID を返します)。
    # ovs-vsctl -- set Bridge br-int mirrors=@m  -- --id=@snooper0 \
    get Port snooper0  -- --id=@patch-tun get Port patch-tun \
    -- --id=@m create Mirror name=mymirror select-dst-port=@patch-tun \
    select-src-port=@patch-tun output-port=@snooper0 select_all=1
  4. これでうまくいきます。tcpdump -i snooper0 を実行して、patch-tun の通信を参照できます。
  5. br-int にあるすべてのミラーを解除して、ダミーインターフェースを削除することにより、クリーンアップします。
    # ovs-vsctl clear Bridge br-int mirrors
    
    # ovs-vsctl del-port br-int snooper0
    
    # ip link delete dev snooper0
    

2016年4月3日日曜日

resolv.conf's filetype

なんか /etc/resolv.conf の selinux context が下のようになってた。

system_u:object_r:svirt_sandbox_file_t:s0:c243,c503

docker のファイルタイプになっちゃっててさらに MCS が c254,c503
っつーのがついちゃって、全然覚えがないんだけど...

docker いじってたときに間違ったか?

Current mode:   enforcing だから dhclient 起動したときに DNS サーバ
の修正が Permission denied になってる。

仕方なく restorecon -F /etc/resolv.conf なんだけどなにか負けた気がする...
-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/resolv.conf


2016年2月18日木曜日

NGINX はクライアント証明書の失効を OCSP でできない?

NGINX はサーバ証明書の OCSP stapling は可能だが、クライアント証明書
の失効検証は CRL だけで OCSP は出来ないらしい。↓2014 年のやりとりだ
けど、おそらく今も無いでしょう。no plan ということだそうで。

OCSP stapling for client certificates

まぁ Apache も無いんじゃねーのか?よく調べてないけど。

2016年2月17日水曜日

ELB の Connection Settings Idle Timeout

ELB の Connection Settings にある Idle Timeout のデフォルトが 30 秒で結構短い。

このまま NGINX の proxy_read_timeout を 30 秒以上にしちゃうと、upstream の
サーバ応答が長時間なかった場合に、502 エラーを吐く前に TCP セッションが切ら
れてしまうという...

原因解明に 1 時間を要してしまった...