随着从运行telnetd和FTPD转向运行SSHD的趋势,许多系统管理员正在从>system>stcp>services文件中删除"telnet"和"FTP"服务行。
#Name port Service Alias#ftpdata 20/tcpftp 21/tcp ftpdtelnet 23/tcp telnetdsmtp 25/tcpbootps 67/udp bootpdbootpc 68/udp bootp. . . . . . |
图1 - 在>system>stcp>services文件中的telnet和FTP条目。
如果你仍然需要运行telnet和/或FTP客户端与其他主机进行通信,这将导致问题。
telnet 172.16.1.34telnet: tcp/telnet: unknown serviceready 09:30:15 ftp 172.16.1.34ftp: ftp/tcp: unknown serviceready 09:30:26 |
图2--telnet和FTP客户端由missig服务条目引起的错误
原因是telnet和FTP客户端使用getervbyname函数来决定他们应该连接到哪个端口号。这个函数读取服务文件,如果服务名称"telnet"和/或"ftp"不在该文件中,该函数就不会返回端口号,客户端就会终止。
telnet客户端允许你通过在命令行提供一个端口号来绕过这个函数调用。
telnet 172.16.1.34 23Trying...Connected to 172.16.1.23.Escape character is '^]'. login: |
图3 - 为telnet客户端提供端口号
FTP客户端没有这个选项。
服务文件只是一个将服务名称映射到端口号和协议的平面文件数据库。删除"telnet"和"ftp"这两行并不能有效地提高模块的安全级别,因为文件中的这两行并不意味着这些服务会自动运行。除非您确定您的用户都不需要使用 telnet 和 FTP 客户端,否则您应该在服务文件中保留这些条目。
