tcp_wrappersのちょっとした話
tcp_wrappers、言わずと知れた「/etc/hosts.deny」「/etc/hosts.allow」を使った
ネットワークサービスのアクセス制御です。
大抵、
- 「/etc/hosts.deny」に「ALL:ALL」
- 「/etc/hosts.allow」に「許可したいデーモン:許可したいネットワーク」
とするかと。
この場合、使うデーモンを許可しておかないと、アクセスできなくなることに。
inetdやxinetd経由で起動している場合は意識するのですが、
スタンドアロンで動かしているデーモンは忘れることも。
怪しいと思ったら、lddコマンドで調べてみるといいと思います。
lddコマンドを使うと、使用している共有ライブラリを調べることができます。
「libwrap.so」が含まれている場合はデーモン自身がtcp_wrappersを使うようになっているので、
「/etc/hosts.allow」に書いてやる必要があります。
下はSendmailの場合。
# ldd /usr/sbin/sendmail linux-gate.so.1 => (0x003f9000) libssl.so.6 => /lib/libssl.so.6 (0x004fa000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x00110000) libdb-4.3.so => /lib/libdb-4.3.so (0x00251000) libresolv.so.2 => /lib/libresolv.so.2 (0x007bb000) libnsl.so.1 => /lib/libnsl.so.1 (0x00a42000) libwrap.so.0 => /lib/libwrap.so.0 (0x00ede000) libhesiod.so.0 => /usr/lib/libhesiod.so.0 (0x00349000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x0034d000) libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x0037f000) libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0x005f4000) liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0x00398000) libc.so.6 => /lib/libc.so.6 (0x0062e000) libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00ddc000) libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00858000) libcom_err.so.2 => /lib/libcom_err.so.2 (0x00a00000) libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x003fa000) libdl.so.2 => /lib/libdl.so.2 (0x003a6000) libz.so.1 => /usr/lib/libz.so.1 (0x003ab000) libpthread.so.0 => /lib/libpthread.so.0 (0x00952000) /lib/ld-linux.so.2 (0x003c6000) libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x003e3000) libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x003be000) libselinux.so.1 => /lib/libselinux.so.1 (0x00420000) libsepol.so.1 => /lib/libsepol.so.1 (0x00438000)
OpenSSHなんかも。
# ldd /usr/sbin/sshd linux-gate.so.1 => (0x00d74000) libwrap.so.0 => /lib/libwrap.so.0 (0x00110000) libpam.so.0 => /lib/libpam.so.0 (0x00d61000) libdl.so.2 => /lib/libdl.so.2 (0x00713000) libselinux.so.1 => /lib/libselinux.so.1 (0x00a3e000) libaudit.so.0 => /lib/libaudit.so.0 (0x00d3a000) libfipscheck.so.1 => /usr/lib/libfipscheck.so.1 (0x00bd6000) libresolv.so.2 => /lib/libresolv.so.2 (0x005e5000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x00799000) libutil.so.1 => /lib/libutil.so.1 (0x00cfe000) libz.so.1 => /usr/lib/libz.so.1 (0x006e8000) libnsl.so.1 => /lib/libnsl.so.1 (0x00118000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x0044e000) libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00131000) libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00517000) libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00622000) libcom_err.so.2 => /lib/libcom_err.so.2 (0x00f98000) libnss3.so => /usr/lib/libnss3.so (0x0029f000) libc.so.6 => /lib/libc.so.6 (0x008da000) /lib/ld-linux.so.2 (0x00dd2000) libsepol.so.1 => /lib/libsepol.so.1 (0x003d7000) libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x0015f000) libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00cee000) libnssutil3.so => /usr/lib/libnssutil3.so (0x00168000) libplc4.so => /usr/lib/libplc4.so (0x00c1b000) libplds4.so => /usr/lib/libplds4.so (0x00181000) libnspr4.so => /usr/lib/libnspr4.so (0x00b3a000) libpthread.so.0 => /lib/libpthread.so.0 (0x00184000)
「libwrap.so」が含まれていたら、後は「/etc/hosts.allow」に書いてやるだけ。
今日はこんなところで。