/etc/hosts.allowの制限を受けるか否かを判断するには、サーバへの接続時に実行されるプログラムが使用するライブラリで判断する。
プログラムが使用するライブラリを確認するには以下の様に「ldd」コマンドで確認する。
# ldd /usr/sbin/sshd
/usr/lib/libcwait.so (0xb7f6e000)
libwrap.so.0 => /usr/lib/libwrap.so.0 (0xb7f5d000)
libpam.so.0 => /lib/libpam.so.0 (0xb7f54000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0xb7e5a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7e56000)
libutil.so.1 => /lib/libutil.so.1 (0xb7e52000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7e41000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb7e2a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7df8000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7de4000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7d7f000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7d5e000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7d5b000)
libresolv.so.2 => /lib/libresolv.so.2 (0xb7d47000)
libc.so.6 => /lib/libc.so.6 (0xb7c04000)
libaudit.so.0 => /lib/libaudit.so.0 (0xb7bf3000)
/lib/ld-linux.so.2 (0xb7f73000)
上記確認できる「libwrap」を参照しているものは、/etc/hosts.allowでの制限が可能だ。
sendmailが/etc/hosts.allowを認識するかは、コンパイルオプションを参照し確認しよう。
# sendmail -d0.1
Version 8.14.4
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS
TCPWRAPPERS USERDB USE_LDAP_INIT
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = xxxxxxxx
(canonical domain name) $j = xxxxxxxx.zzzzzzzzz.net
(subdomain name) $m = zzzzzzzzz.net
(node name) $k = xxxxxxxx.zzzzzzzzz.net
========================================================
Recipient names must be specified
#
上記「TCPWRAPPERS」を確認できれば、利用しているsendmailは/etc/hosts.allowを認識すると分る。
以上
コメント