22.2.4 举例:通过xinetd启动SSH服务

来源:互联网 发布:如何更改ss 端口 编辑:程序博客网 时间:2024/06/01 23:11

22.2.4  举例:通过xinetd启动SSH服务

作为例子,本节将带领读者配置SSH服务的xinetd实现。总的来说,在xinetd中添加服务无非是下面这几步:

1)修改(增加)配置文件;

2)停用该服务的守护进程;

3)重启xinetd使配置生效;

4)如果需要,从相应的rc目录中移除该服务的启动脚本。

下面就来逐一实现以上各个步骤。首先在/etc/xinetd.d目录下建立文件ssh,包含下面这些内容。

 

service ssh

{

        socket_type     = stream

        protocol        = tcp

        wait            = no

        user            = root

        server          = /usr/sbin/sshd

        server_args     = -i

        log_on_success  += DURATION

        disable         = no

}

 

注意log_on_success参数允许使用“+=”这样的赋值方式,表示在原有默认值的基础上添加,而不是推倒重来。类似地,也可以使用“-=”在默认值的基础上减去一些值。参数的默认值通常在/etc/xinetd.conf中设置。

下一步停用SSH守护进程,为xinetd接管22端口铺平道路。

 

$ sudo /etc/init.d/ssh stop

 * Stopping OpenBSD Secure Shell server sshd                             [ OK ]

 

重新启动xinetd使配置生效。

 

$ sudo /etc/init.d/xinetd restart

 * Stopping internet superserver xinetd                                  [ OK ]

 * Starting internet superserver xinetd                                  [ OK ]

 

运行netstat -tulnp命令查看22端口的情况,发现xinetd已经顺利接管了SSH通信     端口。

 

$ sudo netstat -tulnp | grep 22                     ##查看22端口状态

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      8356/xinetd

 

现在尝试连接本地的SSH服务。对于客户端而言,看上去和standalone方式没有什么不同。

 

$ ssh localhost -l lewis

lewis@localhost's password:

 

如果在安装SSH服务器的时候选择了随系统启动(通常这是默认配置),那么接下来还要从相应的rc目录中移除SSH服务的启动脚本,否则下次启动系统的时候xinetd将无法运行。假设系统默认启动到运行级5(可以参考22.1节获取有关运行级的详细信息)。

 

$ cd /etc/rc5.d/                              ##进入相应的rc目录

$ ls | grep ssh                                 ##查找SSH启动脚本

S16ssh

$ sudo mv S16ssh ../rc_bak.d/S16ssh_rc5_bak    ##移动到另一个地方备份起来

%注意:不要随便删除启动脚本,而应该把它移动到另一个地方,并且取一个有意义的名字。这样在以后需要的时候可以方便地找回来。

原创粉丝点击