xinetd-相关说明
参考
在 Linux 中一些不长期使用的服务, 没有被作为单独的守护进程在开机时启用, Linux 把这些服务监听端口全部由一个独立的进程 xinetd 集中监听, 当收到相应的客户端请求之后, xinetd 进程就临时启动相应服务并把相应端口移交给相应服务, 客户端断开之后, 相应的服务进程结束, xinetd 继续监听.
也就是说用来管理一些服务, 将一个请求传给其他服务.
守护进程分为两种处理模式
- stand alone, 该程序始终监听, 一直处于运行状态
- super daemon, 始终处于 sleep 状态, 知道有人唤醒.
什么是 xinetd
全称为 extended interet daemon.
是网络守护进程服务程序, 常用来管理多种轻量级 Internet 服务.
使用
原则上任何系统服务都可以使用 xinetd, 最适合的是 Internet 服务.j
具体服务可以使用 xinetd 服务在 /etc/services
文件中指出. 文件中记录的内容为:
- 网络服务名
- 使用的端口号和协议
/etc/xinetd.conf
和 /etc/xinetd.d/*
xinetd 的配置文件是 /etc/xinetd.conf
, 但它只包括几个默认值及 /etc/xinetd.d
目录中的配置文件.
配置 xinetd
格式
1 |
|
service
是关键字.
操作符可以是 =
, +=
, -=
.
配置文件
除了/etc/xinetd.conf
和 /etc/xinetd.d/*
外还有 /etc/hosts.allow
及 /etc/hosts.deny
禁用和启用
disabled 列表和 enabled 列表.
参考 B站
在我的 /etc/xinetd.conf
文件里, 内容为:
1 |
|
最后一行的这个 includedir
表示 xinetd 管理的, 服务的 xinetd 配置所在的目录.
查看这个目录:
1 |
|
比如, 如果要让 xinetd 管理 telnet 服务, 在 /etc/xinetd.d/
目录下添加一个文件, 叫 telnet
, 然好添加内容 (这里 #
在实际中可能并不是注释符):
1 |
|
所有信息可以在 man xinetd.conf
中查看.
还有几个比较常用:
server_args
, 传给server
的参数port
, 如果/etc/services
里面列出了服务的 port, 必须和其一样
举 port 的例子, 如果 service 是这样写的:
1 |
|
你在另一个终端向 50000 端口发起连接:
1 |
|
你发现 ls
没有出现结果, 因为连接 50000 端口只是激活 netcat
这个服务, 然后再用:
1 |
|
发现成功连接到 shell.
可以设置, 允许谁访问, 谁不能访问, 最大连接数, 每个 IP 能有几个连接, 什么时间连接, 服务端口等.
启动 xinetd 服务
1 |
|
查看当前哪些端口是打开的:
1 |
|
-n
是 --numeric
, 显示数字地址而不是 symbolic.
-p
是 --program
, 显示 socket 所属的 PID.
-l
是 --listening
, 只显示监听 socket. 具体看 man netstat
.