1.

ARPA和Barkeley服务是在HP-UX网络或其他UNIX平台上使用最广泛的网络应用程序。

ARPA服务通常用在Internet上并且在其他非UNIX的系统上也能使用,而Barkeley服务只在UNIX系统上有效。

2.

ARPA服务

ARPA服务在现有的操作系统上都可以使用,这些服务流行是由于它们在INTERNET上使用。例如,你可以使用HP-UX、windows PC、linux或其他现代操作系统来使用这些网络服务。

常见的ARPA服务有:

  • telnet远程登录,服务器守护进程为telnetd。伪终端用于建立一个telnet会话。缺省数量是60。可以通过npty命令增加。
  • FTP传输文件
  • 网络时钟协议NTP,用于与标准时钟源同步机器的系统时钟,服务器守护进程为xntpd。
  • 使用GATED动态路由,动态路由表可以根据可用路径和这些路径负载情况改变,守护进程为gated。

3.

Berkeley服务

Berkeley服务是那些用Berkeley系统发布(BSD)的应用程序,很多用作客户进程的命令以字母r开头并且有时在LAN中使用更方便,当从一个系统转换到另一个系统不用输入登录名和口令。然而安全性与ARPA相比较低。

  • 使用rlogin远程登录,用于远程登录的命令是rlogin,同telnet一样,它需要远程系统名作为第一个参数。
  • 使用rpc远程拷贝,rpc命令用于从一个网络上的主机拷贝文件或拷贝到一个主机。语法同CP一样,其中一个远程系统名跟一个冒号被添加到源或目的的文件名即可。例如rcp hp0:/etc/profile,将远程系统hp0的profile文件拷贝到当前目录,在远程系统上执行rpc命令需要一定的权限。
  • 使用remsh远程执行,用于在网络上其他系统远程执行命令,命令结果显示在本地的终端屏幕上面。例如:在远程系统hp0上执行ll命令,remsh hp0 ll /etc ,hp0上面必须有一个和你登录名同名的账户。
  • BIND用于主机名解析,BIND服务的系统也叫DNS域名服务器,可以用于解析主机名到IP地址,反之亦然。
  • SENDMAIL用于在网络中或跨网传送电子邮件。
  • 远程打印,rlpdaemon负责管理远程的打印请求。
  • 可以用finger获取远程系统上其他用户的信息,用ruptime命令获取服务器启动多长时间的信息。

4.

由r开头的命令的安全性

如果维护适当的安全性,由字母r开头的命令(rlogin/rcp/remsh)可以用在网络上。

有两种方式可以使一个系统的用户能够使用这些命令远程地访问其他系统。

第一种方法是允许一个系统上所有的用户访问其他系统上的服务,这种方法叫做主机信任。

第二种是单独的用户可以允许其他用户以它们自己登录名访问系统,这种方法叫做用户信任。

主机信任:

使用/etc/hosts.equiv文件来允许一个远程系统上的所有用户访问本地系统。

  • 如果一个远程系统名列在这个文件中而且本地用户也匹配远程系统的用户名,远程主机用户名的用户允许访问本地系统。
  • 如果主机名以一个减号开头,那个系统上所有用户的访问被拒绝,然而单独用户的访问可以由用户信任赋予。
  • 如果一行包含一个+号,它匹配一个主机,例如,如果该文件只包含一个+号的行,则每一个主机被赋予访问。

用户信任:

一个用户通过覆盖主机信任可以设置它自己使用r开头命令的权限,远程用户和本地用户有相同的权限和限制。

每一个用户可以在主目录中创建.rhosts文件,这个文件的语法同/etc/hosts.equiv一样,唯一不同的是不和本地用户名匹配的用户名也可以被声明赋予对该账户的访问。

+ moko           #赋予远程用户moko从任何主机系统登录本地系统时不需要口令。

myhp moko     #只允许用户moko从主机myhp访问。

这个文件应用如下规则:

这个文件允许或拒绝访问,覆盖了/etc/hosts.equiv文件。

只包含一个主机名的行允许那个主机上同名的用户访问。

一个以主机名开头并包含一个用户名的行允许从那个主机上名字相同的用户访问。

如果在一个主机名中使用一个+号,所有的主机被赋予权限。

如果一个主机名或用户名由一个减号开始,那么这个主机或用户的访问被拒绝。

 

这两个文件必须对每一个用户可读,写权限只有文件所有者具有。

5.

启动INTERNET服务

网络服务有两种方法启动。

第一种方法为一个服务守护进程在引导时借助于rc脚本启动,这些脚本保存在/sbin/init.d目录中并且连接到/sbin/rcN.d目录中的启动和关闭脚本,这里N表示一个系统运行级别。这些脚本的配置文件在/etc/rc.config.d目录中提供。借助于/sbin/rc脚本,服务器守护进程被启动。它在每一个系统运行级扫描/sbin/rcN.d目录,里面的链接文件由S或K开头,S表示启动,K表示停止。

第二种方法是通过inetd守护进程,它也叫做TCP warpper并监听很多的网络端口,通过它启动相关的服务。当一个连接请求到达一个特定的端口时,它根绝配置文件中的那个服务条目,来启动一个服务进程。inetd守护进程在运行级2启动,它为很多服务监听进入的连接请求。在启动时,inetd读取它的配置文件/etc/inetd.conf,它包含一个由inetd服务的服务列表。

/etc/inetd.conf文件摘:

<service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
        ftp                stream            tcp       nowait   root      /usr/sbin/ftpd    ftpd

       telnet          stream      tcp   nowait   root   /usr/sbin/tcpd   telnetd

  • service_name 这是文件/etc/services中列出的服务的标志符。 
    socket_type 用来标志使用的数据传输服务的类型。 
    proto 标识传输协议的名字。是UPD和TCP 
    flags 可以被设为"等待"和"非等待"。如果被设为"等待" 状态,inetd在恢复监听端口上的其他请求时,必须等待服 务协议释放将其连接到网络的连接。"非等待"可以使 inetd立即监听其他的请求。大多数TCP协议的采用"非等 待"方式,而UDP采用"等待"方式。 
    user 表示调用服务的用户名。 
    server_pathname 表示inetd在响应相关服务请求时必须调用的 服务程序的完整路径名。 
    Args 该域包括服务的程序所使用的命令行参数。即以程序名开始,然后跟随用户设置的参数。

/etc/services文件映射服务名到相应的端口号并用于端口的协议,服务在文件/etc/inetd.conf文件中提到。

当inetd守护进程读取它的配置文件/etc/inetd.conf文件并决定哪个服务该启动时,它参考/etc/services文件来决定每一个服务的端口号。

为了给inetd守护进程添加安全性,使用/var/adm/inetd.sec文件。这个文件给inetd启动的服务提供了额外的一层安全性。这是一个服务自身附加的安全性。使用/var/adm/inetd.sec文件,inetd守护进程可以有选择地允许或拒绝到其他主机的访问,如下是它的规则:

如果这个文件不存在,所有主机被赋予访问来启动一个inetd服务。

如果这个文件存在但为空,则允许访问所有的inetd服务。

如果这个文件存在并且包含一些以特殊格式提供的服务名,只允许访问被列出的服务。

例: ftp allow 192.168.1.* hp0           #赋予允许网络192.168.1中所有主机访问hp0的权利

6.

这里总结了 ARPA/Berkeley服务的配置文件:

  • /etc/inetd.conf                    inetd守护进程的配置文件
  • /etc/services                      列出这些服务的服务名和端口/协议
  • /var/adm/inetd.sec             为inetd守护进程增加额外的安全性
  • /etc/host.equiv                   主机信任文件
  • $ HOME/.rhosts                 用户定义的信任文件

7.

一个连接建立的过程(服务器端):

在实际的数据通信开始之前,客户和服务器建立一个通信会话。

如果服务器进程在引导时作为一个守护进程被启动,它在预先定义的端口中监听任何进入的连接。

如果服务器进程由inetd控制,inetd首先读它的文件配置/etc/inetd.conf,从/etc/services文件中获取所有服务的端口号,并开始监听所有的这些端口,一旦一个连接请求到达一个端口,inetd启动相应的服务守护进程。

转自:http://moko39848381.blog.163.com/blog/static/139827331201032611340243/