Ubuntu 利用 xinetd 限制 SSH 连接数

本文介绍如何通过安装xinetd并配置相关参数来管理SSH服务,包括调整最大连接进程数、日志记录方式及频率限制等。此外还涉及停用原SSH守护进程和重启xinetd使配置生效的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装 xinted

       sudo apt-get install xinetd



修改配置文件

       sudo vim /etc/xinetd.conf

 

在配置文件中加入下列配置

defaults

 

{

 

instances = 60

 

log_type = SYSLOG daemon info

 

log_on_success = HOST PID

 

log_on_failure = HOST

 

cps = 25 30

 

}

 

includedir /etc/xinetd.d

 

说明:

 

- instances = 60:表示最大连接进程数为60个。

 

- log_type = SYSLOG daemon info:表示使用syslog进行服务登记。

 

- log_on_success= HOST PID:表示设置成功后记录客户机的IP地址的进程ID.

 

- log_on_failure = HOST:表示设置失败后记录客户机的IP地址。

 

- cps = 25 30:表示每秒25个入站连接,如果超过限制,则等待30秒。主要用于对付拒绝服务攻击。

 

includedir /etc/xinetd.d:表示告诉xinetd要包含的文件或目录是/etc/xinetd.d.



/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

}



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

     sudo /etc/init.d/ssh stop



重新启动xinetd使配置生效

     sudo /etc/init.d/xinetd restart



运行netstat -tulnp命令查看22端口的情况

      sudo netstat -tulnp | grep 22

 

 

 

查看22端口状态

tcp 0 0 0.0.0.0:22

0.0.0.0:* LISTEN 8356/xinetd



转载于:https://www.cnblogs.com/zj1111184556/p/3580432.html

### 配置 xinetdUbuntu 系统中的使用 #### 安装 xinetd 要在 Ubuntu 上安装 `xinetd`,可以使用以下命令完成安装过程: ```bash sudo apt update sudo apt install xinetd ``` 这会更新软件包列表并安装 `xinetd` 及其依赖项[^4]。 #### 基本配置文件结构 `xinetd` 的主要配置文件位于 `/etc/xinetd.conf`,而具体的服务定义则存储在 `/etc/xinetd.d/` 目录下的独立文件中。每个服务都有自己的配置文件,这些文件决定了该服务的行为和参数设置[^4]。 以下是常见的配置选项及其含义: - **socket_type**: 指定网络套接字类型,可选值为 `stream` 或 `dgram`。 - **protocol**: 使用的 IP 协议,通常是 `tcp` 或 `udp`。 - **wait**: 设置是否允许多个连接同时存在,取值为 `yes` 或 `no`。 - **user**: 运行此服务的用户 ID。 - **server**: 执行的实际程序路径。 - **server_args**: 传递给目标程序的额外参数。 - **disable**: 是否禁用该服务,默认为 `yes` 表示禁用,设为 `no` 则启用。 - **flags**: 支持的互联网协议标志位,例如 IPv4 和 IPv6[^4]。 #### 创建自定义服务 假设需要创建一个新的服务名为 `myhttpd`,可以在 `/etc/xinetd.d/` 下新建一个配置文件: ```bash sudo nano /etc/xinetd.d/myhttpd ``` 编辑内容如下: ```plaintext service myhttpd { socket_type = stream protocol = tcp wait = no user = nobody server = /usr/local/bin/myhttpd_server server_args = --port=8080 disable = no } ``` 保存退出后重启 `xinetd` 生效更改: ```bash sudo systemctl restart xinetd ``` #### 查看监听状态 如果发现某些端口未按预期工作,比如 Telnet (23),可能是因为即使删除了对应配置文件,`xinetd` 仍保留对该端口的监控。此时可通过以下方法排查问题: ```bash sudo netstat -lp | grep :23 ``` 找到占用进程号 PID 后强制终止它即可解决冲突情况[^3]。 #### 调试与验证 为了确认新添加的服务正常运作,建议测试客户端请求响应状况;对于基于 TCP/IP 的应用来说,利用工具如 curl 或 telnet 是不错的选择。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值