telnetdやFTPDの実行からSSHDの実行に向かう傾向があるため、多くのシステム管理者は>system>stcp>servicesファイルから"telnet"と"FTP"サービスの行を削除しています。
#Name port Service Alias # ftpdata 20/tcp ftp 21/tcp ftpd telnet 23/tcp telnetd smtp 25/tcp bootps 67/udp bootpd bootpc 68/udp bootp . . . . . . |
図 1 - >system>stcp>services ファイルの telnet と FTP エントリ
これは、他のホストと通信するためにtelnetやFTPクライアントを実行する必要がある場合に問題が発生します。
telnet 172.16.1.34 telnet: tcp/telnet: unknown service ready 09:30:15 ftp 172.16.1.34 ftp: ftp/tcp: unknown service ready 09:30:26 |
図 2 - missig サービスエントリによって引き起こされる telnet および FTP クライアントのエラー
これは、telnet と FTP クライアントが getservbyname 関数を使用して、接続先のポート番号を決定するためです。この関数はサービスファイルを読み込み、"telnet"や"ftp"というサービス名がそのファイルにない場合、関数はポート番号を返さず、クライアントは終了します。
telnetクライアントでは、コマンドラインでポート番号を指定することで、この関数の呼び出しをバイパスすることができます。
telnet 172.16.1.34 23 Trying... Connected to 172.16.1.23. Escape character is '^]'. login: |
図3 - telnetクライアントにポート番号を提供する
FTPクライアントにはこのオプションはありません。
サービスファイルは、サービス名をポート番号とプロトコルにマッピングしたフラットファイルのデータベースにすぎません。telnet" と "ftp" の行を削除しても、モジュールのセキュリティレベルを効果的に上げることはできません。telnet と FTP クライアントを使う必要のないユーザがいないと確信しているのでなければ、サービスファイルのエントリは残しておくべきです。