您的位置:首页 > 其它

xinetd超级守护进程简介——实现简单访问控制

2017-03-19 23:33 399 查看
1、xinetd是什么?

系统上的程序分为:独立守护进程和瞬时守护进程。xinetd就是用来管理瞬时守护进程。xinetd代理瞬时守护进程接受用户的请求,之后启动真正的进程进行响应。

例如:telnet服务就是瞬时守护进程,所以telnet受到xinetd进程的管理。平时telnet服务不启动,只有用户请求telnet服务的时候才会被xinetd启动并接受客户端请求。

所以我们经常看到的23号端口的telnet服务不是真正的telnet服务,只有你请求连接时才会被xinetd替换成真正的telnet服务。

2、了解的常识:

xinetd超级守护进程有两种配置文件:

全局配置文件:/etc/xinetd.conf          ##这里的配置选项是全局的

局部的配置文件:/etc/xinetd.d/*         ##这里的所有配置文件都会被包含到/etc/xinetd.conf里边。这里的每个文件都对应一个服务。(比如telnet服务对应的就是/etc/xinetd.d/telnet)。xinetd就是通过这些文件对他所代理的服务进行管控的。

注意修改完配置文件都要重启xinetd服务才会生效,所有被xinetd代理的服务都只需要重启xinetd即可

比如要重启telnet服务只需要:  telnet    服务没安装? xinetd服务没安装?    yum install telnet-server  telnet   -y 即可把他们都安装上。

         service xinetd restart 

         chkconfig  telnet  on  ##可以用命令:chconfig --list | grep telnet   查看下是不是已经启动了

3、访问控制:通过修改xinetd的配置文件,我们就可以控制它所代理的服务。

以telnet服务为例总结访问控制方法:其他的服务也一样(必须是xinetd能代理的服务)。

3.1service xinetd restart  ##启动xinetd服务

3.2 chkconfig telnet on  ##启动telnet服务。其实这个chkconfig 命令就只是修改了/etc/xinetd.d/telnet 文件里边的disable = no,之后重启了xinetd服务。

3.3允许某些ip或网段访问telnet

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。       

        log_on_failure  += USERID

}

3.4不允许某些ip或网段访问telnet

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        no_access    = 172.16.100.200  ##不允许172.16.100.200访问telnet服务(可以指定网段的)。       

        log_on_failure  += USERID

}

3.5允许用户,在某时间段访问telnet服务

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。       

        access_time =10:00-14:00    ##允许用户在上午10点到下午2点之间访问telnet服务

        log_on_failure  += USERID

}

3.6进让telnet服务监听在某个ip上(当服务器有多个ip时可以这样控制)

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。    

        bind            =172.16.100.7  ##telnet服务仅仅监听在172.16.100.7这个ip上 

        log_on_failure  += USERID

}

3.7控制客户端同一个ip最多建立几个链接

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。       

        per_source = 10  ##表示同一个ip最多建立10个连接

        log_on_failure  += USERID

}

3.8telnet一共可以和客户端建立多少连接

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。       

        instances    = 50 ##表示telnet服务最多建立50个连接

        log_on_failure  += USERID

}

3.9如果某个服务启动的时候需要传递参数。可以用server_args = -d  

3.10每秒允许10个客户端连接进来,如果超过了  10个每s  这个速率。就要临时禁用telnet20秒(不能登陆telnet)。

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。       

        cps = 10 20  ##每秒链接进来的客户端不能超过10个,超过10的话就要禁用telnet服务20秒

        log_on_failure  += USERID

}

3.11 日志记录功能:默认是记录到系统日志:/var/log/message。这里改下记录的位置

        vim /etc/xinetd.d/telnet

         service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd

        only_from    = 172.16.0.0/16  ##仅允许172.16.0.0网段的ip访问telnet服务(可以指定ip的)。

        log_type      = FILE  /var/log/telnet.log      

        log_on_failure  += USERID

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xinetd