OS起動時に起動されるサービスは/etc/inetd.confに記述されている.
起動しないサービスには,行の先頭に#を記入する.
なお,/etc/inetd.confを変更した場合,必ずinetdをkill -HUPして変更を反映させなければならない.
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd in.rshd
#login stream tcp nowait root /usr/sbin/tcpd in.rlogind
#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
#comsat dgram udp wait root /usr/sbin/tcpd in.comsat
talk dgram udp wait nobody.tty /usr/sbin/tcpd in.talkd
ntalk dgram udp wait nobody.tty /usr/sbin/tcpd in.ntalkd
#dtalk stream tcp wait nobody.tty /usr/sbin/tcpd in.dtalkd
% ps ax | grep inetd
458 ? S 0:00 inetd
% kill -HUP 458
ここでは,ftpとtelnetをローカルのネットワークだけに提供する設定を示す. tcpdはこれらのプロトコルで接続要求が発生した場合に起動され, /etc/hosts.denyと/etc/hosts.allowという二つのファイルを参照して,接続の許可・不許可を決定する. RedHatの場合,デフォルトではこの二つのファイルは空である(コメントのみ書かれている).
まず,hosts.denyですべてのアクセスを不許可にする.
ALL: ALL
次に,hosts.allowをローカルネットワークからのアクセスだけ許可するように編集する.
in.ftpd: 133.***.***.0/255.255.255.0
in.telnetd: 133.***.***.0/255.255.255.0
これで,ftpとtelnetは133.***.***.1から133.***.***.254までのIPアドレスからしか受け付けなくなる. tcpdは接続要求の度に起動されるので,host.denyおよびhost.allowを変更しても tcpdを再起動する必要はない.
tcpdchk(/usr/sbin/tcpdchk)はinetd.conf,host.allowおよびhost.denyの正当性をチェックする. tcpdchkを実行し,何も表示されなければ問題ないが,errorやwarningが表示された場合は 記述に矛盾がある.
tcpdを使った場合,アクセス要求のあったホストに関するログが/var/log/secureに記録される
(デフォルトでこのファイルはroot以外見ることはできない).
アクセスが拒否された場合は,次のようなログが残る.
Oct 12 10:00:25 fukunm12 in.ftpd[12980]: connect from 133.***.***.xxx
Oct 12 11:41:32 fukunm12 in.telnetd[999]: connect from 133.***.***.yyy
Oct 12 11:41:44 fukunm12 login: LOGIN ON 0 BY akasaka FROM mech3
しかしながら,実際にアクセスしてみないと許可/拒否がわからないのでは少々心もとない.
そこでtcpdmatch(/usr/sbin/tcpdmatch)というプログラムが用意されている.
これを使うと,引数として指定したアドレスからのアクセスが可能であるかを調べることができる.
以下は,in.telnetdサービスが133.5.145.100からアクセス可能かを調べた例である.
Oct 12 09:41:01 fukunm12 in.telnetd[12873]: refused connect from 133.15.***.***
最後のaccessがdeniedの場合,アクセス不可能である.
アクセス可能な場合は,
% tcpdmatch in.telnetd 133.5.145.100
client: address 133.5.145.100
server: process in.telnetd
matched: /etc/hosts.deny line 10
access: denied
のようになる.
% tcpdmatch in.telnetd 133.***.***.zzz
client: address 133.***.***.zzz
server: process in.telnetd
matched: /etc/hosts.allow line 8
access: granted
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||