xinetd 和tcpd的服务控制规则

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:黑体; panose-1:2 1 6 9 6 1 1 1 1 1; mso-font-alt:SimHei; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482945 953122042 22 0 262145 0;} @font-face {font-family:"/@黑体"; panose-1:2 1 6 9 6 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482945 953122042 22 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

                                              xinetd 和tcpd的服务控制规则

这里首先说点介绍点新知识:

我们系统中的进程分为超级守护进程和依赖以超级守护进程的进程,我们分别又可以称之为独立进程和非独立进程

独立进程是一些系统必须的或者是我们平时要经常要用到的进程,他们监听一个端口,但是一直在监听,而xinetd 是非独立守护进程的管理者,Xinetd 代为管理一些我们平时我们不经常用的进程,监听所有自己监控的端口,只有当client 请求时,xinetd 才唤醒对应的服务,这样可以大量较少对系统资源的消耗。

tcpd 是代为检查服务的规则。系统中凡是连接到libwarp.so 库的超级守护进程,都受tcpd 规则的限制,在这其中包含了xinetd ,所以,由xinetd 管理的的非独立进程也间接的受到tcpd 的管理 。

 

查看服务依赖的库文件:#ldd   /usr/Kerberos/bin/telnet

注意这里不是服务的文件的名字,而是服务对应的demon process

默认情况下系统在接受到client 请求时先查看tcpd 规则中是否允许

这些规则定义在/etc/hosts.allow  /etc/hosts.deny ,默认情况下按allow deny 的顺序来读,当两个都不填是默认是允许

其中文件的demon  process 可以用which 名令来查找文件的全路径,以上命令可以用#ldd  `which  telnet` 替换

设置服务可以在在哪些启动级别下启动,使用chkconfig 命令

--add  增加所指 定的系统服务,让chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

--del  删除所 指定的系统服务,不再由chkconfig 指令管理,并同时在系统叙述文件内删除相关数据。

--level< 等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕

--list  列出系统服务的级别

以前经典小知识回顾

1 当我们想要开机运行或者禁用掉哪些进程是我们可以在/etc/rc.d/rc[0-9].d 中编辑以k 或者s 开头的文件即可,需要注意的是,这里的文件全部都是连接文件,而且全部都是以K 或者S 开头的,而真实文件在/etc/rc.d/init.d 中。这也是我们可以在/etc/rc.d/rc[0-9].d 中添加以K 或者S 文件来实现我们开机运行的目的

2 当我们要在用户登录的同时显示东西或者运行脚本是,我们可以在~/bash_profile 文件中添加我们要运行的命令

 

 

 

Xinetd 配置文件中的的参数含义

#Vim  /etc/xinetd.conf

Log_on_failure log_on_success   =HOST|USERID|ATTEMPT   当登录失败/ 成功是记录clientHOST|USERID|ATTEMPT

Only_from  IP 只允许$IP 登录

No_access  IP 黑名单,不允许$IP 登录

Only_fonm no_access 两者均为空时,只鱼讯anyone 访问,这里需要注意下,好好理解下这里的匹配原则就很好理解了

Bind   当自己服务器有多块网卡时,指定从那块网卡进出数据

Cps  N  N 指定单位时间内最大的链接数,第一个N 指最大的链接数,第二个N 指当超过最大限制时,服务暂时停顿N

Per_source 定义一个ip 的最大并发链接数

Instaces   定义某个服务最大的链接数

Wait   yes |no    yes 时这里意思是当xinetd 唤醒A 服务后,一直等到服务停止,这期间一直由xinetd 来负责,否则,即为no 时,则xinetd 只负责唤醒,其他是事情转交给service 自己来负责。

access times     格式为hoursmin-hour:min   这里需要注意的是,不能隔着子夜来定义时间段,可以定义为两段。

/etc/hosts.allow/etc/hosts.deny 文件中有这样几个参数可以用

DENY

ALLOW 可以在hosts.allowhosts.deny 同时运用

EXCEPT    顾名思义  ,除了....

spawn  定义指定的命令

banners    输出

twist

ALL   

KNOWN      能解析出主机名的

UNKNOWN       不能解析出主机名的

PERANOID      正向反向解析主机名不一致的

不同个服务进程之间用 分割,同一条规则不同段之间用 分割

下面我们一telnet 为例来深入理解

首先我们要确保系统已经安装好了xinetdtelnet 的包

#Yum  list  all  xinetd

#Yum   list   all    telnet-server  |telnet

没装的使用#yum  install servername

#vim   /etc/xinetd.d/telnet

# default: on

# description: The telnet server serves telnet sessions; it uses /

#       unencrypted username/password pairs for authentication.

service telnet

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user             = root

        server          = /usr/sbin/in.telnetd

        log_on_failure  += USERID

        per_source      =2

}

~                                                                              

~ 在重启 xinetd 服务后 我们在用客户端去 telnet 同一个 ip 最多只能链接两次 这里 per_source 受到 instances 的限制                                                                              

~                                                                              

~                                                                                                                                                                                                                                         

"/etc/xinetd.d/telnet" 14L, 317C

 

 

这里我们需要注意的是,我们在/etc/xinetc.conf 中定义的对所有xinetd 控制的服务均生效,相当于“umask” 的效果,这里大家好好理解下。当我们再在xinetd 管理的服务配置文件中来配置设置时,有这样的几个选项需要注意下,=     +=         =  这里都是相当于在xinetd 配置文件中的设置来说的,就好比说telnet   log_on_failure   +=  USERID 是在/etc/xinetd.conf  log_on_failure =HOST 来说的   telnet   log_on_faliure 实际=USERID HOST, 这里需要注意,同时这个文件下的服务规则编辑后无需重启立即生效。

下面我们以telnet 为例来看看tcpd 的具体规是怎样实现的是怎样实现的

如图所示:

in.telnetd :    192.168.0. :spawn /bin/echo "your log is " %c %d |mail -s "loghin  in "  root

in.tftpd :      192.168.0. :spawn /bin/echo "your log is " %c %d |mail -s "loghin  in "  root

in.tftpd :      192.168.0. :spawn /bin/echo "your log is " %c %d |mail -s "loghin  in "  root

in.tftpd : 192.168.0.   :twist /bin/echo "you log is " %c %d

in.tftpd : 192.168.0.   :banners /var/log/mylog.txt

格式为

Service demon name  :IP: commend

第一行命令当client 登录时,系统会会一封邮件给root用户

第二行命令式client 登录时,系统会给其发一条信息,并阻止其登录

第三行命令当client 登录时,系统会同时给他发一条信息,但不阻止他登录

第四行和第五行是一条规则,这里原来的本意是想定义192.168.1.0 网段中除了192.168.1.10 可以访问,其他的都不能访问,但是这里要注意的是,192.168.1.10 也是不能访问的 ,记着我们前面说的,tcpd读取规则是,是逐条读取的,当匹配到192.168.1.0 网段时,192.168.1.10 已经匹配,他就不会继续往下读的。当然了,我们也可以在hosts.deny 中定义,这里我们只是想说ALLOW ,DENY 可以在同一个文件里出现

这里我只写了四条记录但希望可以把这几个容易混淆的知识点说清楚

这里需要补充的是c% d%的含义

s    the server information

d   服务进程名

c   the  daemon process name

H%   反向解析主机名

%%     转义%

%p     daemon process  id

%a     all the available information

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值