SSH连接监控以及新用户创建和系统资源访问限制

news2024/12/19 23:28:40

目录

  • 监控连接数
  • SSH连接数的限制和影响
    • 理论限制
    • 可能的影响
  • 创建SSH新用户
  • 为每个ssh用户配置系统资源限制
      • 1. 使用 `/etc/security/limits.conf` 限制资源
      • 2. 使用 cgroups 控制资源
      • 3. 磁盘配额限制
      • 4. 限制 SSH 访问
      • 5. 使用 PAM 限制
      • 6. 监控脚本示例
      • 7. 设置定期任务清理
      • 8. 检查配置是否生效
      • 注意事项:

监控连接数

netstat -nat | grep ESTABLISHED | grep ':22' | wc -l

当前有10个用户连接该服务器
在这里插入图片描述

SSH连接数的限制和影响

理论限制

系统层面的最大进程数限制
可用端口数量限制(理论上65535个)
系统文件描述符限制
内存资源限制

可能的影响

系统资源消耗:
CPU使用率增加
内存占用增加
网络带宽消耗
性能影响:
系统响应变慢
网络延迟增加
可能影响其他服务

创建SSH新用户

sudo useradd -m lilingfei
sudo passwd lilingfei

会配置账号密码且在Home且创建用户主目录
在这里插入图片描述
配置SHELL环境

echo $SHELL
sudo chsh -s /bin/bash lilingfei
# 复制 .bashrc
sudo cp /etc/skel/.bashrc /home/lilingfei/
sudo cp /etc/skel/.profile /home/lilingfei/
sudo cp /etc/skel/.bash_logout /home/lilingfei/
# 设置所有权
sudo chown lilingfei:lilingfei /home/lilingfei/.bashrc
sudo chown lilingfei:lilingfei /home/lilingfei/.profile
sudo chown lilingfei:lilingfei /home/lilingfei/.bash_logout
# 重新加载配置
source ~/.bashrc

重新用xshell登录一下
在这里插入图片描述
且新建用户是不能访问其他用户下的文件夹的
想访问ubuntu用户访问不到
在这里插入图片描述

为每个ssh用户配置系统资源限制

我来详细说明如何限制用户的系统资源访问:

1. 使用 /etc/security/limits.conf 限制资源

# 添加以下配置来限制用户 lilingfei

# 进程数限制
lilingfei          soft    nproc           1000
lilingfei          hard    nproc           2000

# 内存限制 (KB)
lilingfei          soft    as              2097152     # 2GB
lilingfei          hard    as              4194304     # 4GB

# 打开文件数限制
lilingfei          soft    nofile          1024
lilingfei          hard    nofile          2048

# CPU时间限制 (分钟)
lilingfei          soft    cpu             30
lilingfei          hard    cpu             60

# 最大文件大小限制 (KB)
lilingfei          soft    fsize           5242880     # 5GB
lilingfei          hard    fsize           10485760    # 10GB

2. 使用 cgroups 控制资源

# 1. 创建 cgroup
sudo cgcreate -g cpu,memory,blkio:/lilingfei

# 2. 设置限制
# CPU 限制 (20% CPU)
sudo cgset -r cpu.cfs_period_us=100000 lilingfei
sudo cgset -r cpu.cfs_quota_us=20000 lilingfei

# 内存限制 (2GB)
sudo cgset -r memory.limit_in_bytes=2G lilingfei

# 3. 将用户进程自动加入 cgroup
echo "lilingfei     cpu,memory,blkio   /lilingfei/" >> /etc/cgrules.conf

3. 磁盘配额限制

# 1. 启用配额
sudo apt-get install quota
sudo quotacheck -ugm /home
sudo quotaon -v /home

# 2. 设置配额
sudo edquota -u lilingfei

# 或使用命令行设置
sudo setquota -u lilingfei 5242880 10485760 0 0 /home

4. 限制 SSH 访问

# 限制最大会话数
Match User lilingfei
    MaxSessions 3
    MaxStartups 3

5. 使用 PAM 限制

# 确保包含以下行
session    required     pam_limits.so

6. 监控脚本示例

#!/bin/bash
# 监控用户资源使用情况

USER="lilingfei"

echo "监控用户 $USER 的资源使用情况:"
echo "----------------------------------------"

# CPU 使用
echo "CPU 使用情况:"
ps -u $USER -o pid,%cpu,%mem,cmd | head -n 5

# 内存使用
echo -e "\n内存使用情况:"
ps -u $USER --sort -rss -o pid,rss,cmd | head -n 5

# 磁盘使用
echo -e "\n磁盘使用情况:"
du -sh /home/$USER

# 进程数
echo -e "\n当前进程数:"
ps -u $USER | wc -l

# 打开的文件数
echo -e "\n打开的文件数:"
lsof -u $USER | wc -l

7. 设置定期任务清理

# 添加到 crontab
sudo crontab -e

# 每天凌晨清理临时文件
0 0 * * * find /home/lilingfei/tmp -type f -mtime +7 -delete

# 每周日清理旧日志
0 0 * * 0 find /home/lilingfei/logs -type f -mtime +30 -delete

8. 检查配置是否生效

# 查看限制
su - lilingfei -c 'ulimit -a'

# 查看 cgroup 配置
sudo cgget -g cpu,memory,blkio:/lilingfei

# 查看配额
sudo quota -v lilingfei

注意事项:

  1. 修改限制后需要用户重新登录才能生效
  2. 建议先在测试环境验证配置
  3. 定期检查日志确保限制合理
  4. 设置监控告警机制
  5. 保留一定的资源余量,避免设置过严格的限制

这些配置可以根据实际需求调整数值,建议从相对宽松的限制开始,根据实际使用情况逐步调整到合适的水平。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试工程师八股文04|计算机网络 和 其他

一、计算机网络 1、http和https的区别 HTTP和HTTPS是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。 ①http和https的主要区别在于安全性。http是一种明…

单片机学习笔记——入门51单片机

一、单片机基础介绍 1.何为单片机 单片机,英文Micro Controller Unit,简称MCU 。内部集成了中央处理器CPU、随机存储器ROM、只读存储器RAM、定时器/计算器、中断系统和IO口等一系列电脑的常用硬件功能 单片机的任务是信息采集(依靠传感器&a…

【青牛科技】D8563是低功耗的CMOS实时时钟/日历电路,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过IC总线接口串行传递。

概述: D8563是低功耗的CMOS实时时钟/日历电路,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过IC总线接口串行传递。最大总线速度为400Kbitss每次读写数据后,内嵌的字地址寄存器会自动产生增量。 主要特…

安卓获取所有可用摄像头并指定预览

在Android设备中,做预览拍照的需求的时候,我们会指定 CameraSelector DEFAULT_FRONT_CAMERA前置 或者后置CameraSelector DEFAULT_BACK_CAMERA 如果你使用的是平板或者工业平板,那么就会遇到多摄像头以及外置摄像头问题,简单的指…

R语言学习笔记-1

1. 基础操作和函数 清空环境:rm(list ls()) 用于清空当前的R环境。 打印输出:print("Hello, world") 用于输出文本到控制台。 查看已安装包和加载包: search():查看当前加载的包。install.packages("package_na…

Windows如何安装go环境,离线安装beego

一、安装go 1、下载go All releases - The Go Programming Language 通过网盘分享的文件:分享的文件 链接: https://pan.baidu.com/s/1MCbo3k3otSoVdmIR4mpPiQ 提取码: hxgf 下载amd64.zip文件,然后解压到指定的路径 2、配置环境变量 需要新建两个环境…

Mac上使用ln指令创建软链接、硬链接

在Mac、Linux和Unix系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种不同的文件链接方式。它们的主要区别如下: 区别: 硬连接: 不能跨文件系统。不能链接目录(为…

Unity A*算法实现+演示

注意: 本文是对基于下方文章链接的理论,并最终代码实现,感谢作者大大的描述,非常详细,流程稍微做了些改动,文末有工程网盘链接,感兴趣的可以下载。 A*算法详解(个人认为最详细,最通俗易懂的一…

博弈论3:图游戏SG函数(Graph Games)

目录 一、图游戏是什么 1.游戏特征 2.游戏实例 二、图游戏的必胜策略 1.SG 函数(Sprague-Grundy Function) 2.必胜策略(利用SG函数) 3.拿走游戏转化成图游戏(Take-away Game -> Graph Game) 一、图…

0101多级nginx代理websocket配置-nginx-web服务器

1. 前言 项目一些信息需要通过站内信主动推动给用户,使用websocket。web服务器选用nginx,但是域名是以前通过阿里云申请的,解析ip也是阿里云的服务器,甲方不希望更换域名。新的系统需要部署在内网服务器,简单拓扑图如…

qt-C++笔记之自定义类继承自 `QObject` 与 `QWidget` 及开发方式详解

qt-C笔记之自定义类继承自 QObject 与 QWidget 及开发方式详解 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QW…

Elastic 8.17:Elasticsearch logsdb 索引模式、Elastic Rerank 等

作者:来自 Elastic Brian Bergholm 今天,我们很高兴地宣布 Elastic 8.17 正式发布! 紧随一个月前发布的 Elastic 8.16 之后,我们将 Elastic 8.17 的重点放在快速跟踪关键功能上,这些功能将带来存储节省和搜索性能优势…

[C++]类的继承

一、什么是继承 1.定义: 在 C 中,继承是一种机制,允许一个类(派生类)继承另一个类(基类)的成员(数据和函数)。继承使得派生类能够直接访问基类的公有和保护成员&#xf…

Docker 用法详解

文章目录 一、Docker 快速入门1.1 部署 MYSQL1.2 命令解读: 二、Docker 基础2.1 常见命令:2.1.1 命令介绍:2.1.2 演示:2.1.3 命令别名: 2.2 数据卷:2.2.1 数据卷简介:2.2.2 数据卷命令&#xff…

【自动化】Python SeleniumUtil 油猴 工具 自动安装用户脚本

【自动化】Python SeleniumUtil 油猴 工具 【自动化】Python SeleniumUtil 工具-CSDN博客【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691 油猴工具 import timefrom selenium.webdriver.support.wait import WebDriverW…

盛元广通畜牧与水产品检验技术研究所LIMS系统

一、系统概述 盛元广通畜牧与水产品检验技术研究所LIMS系统集成了检测流程管理、样品管理、仪器设备管理、质量控制、数据记录与分析、合规性管理等功能于一体,能够帮助实验室实现全流程的数字化管理。在水产、畜牧产品的质检实验室中,LIMS系统通过引入…

clickhouse-数据库引擎

1、数据库引擎和表引擎 数据库引擎默认是Ordinary,在这种数据库下面的表可以是任意类型引擎。 生产环境中常用的表引擎是MergeTree系列,也是官方主推的引擎。 MergeTree是基础引擎,有主键索引、数据分区、数据副本、数据采样、删除和修改等功…

GEE+本地XGboot分类

GEE本地XGboot分类 我想做提取耕地提取,想到了一篇董金玮老师的一篇论文,这个论文是先提取的耕地,再做作物分类,耕地的提取代码是开源的。 但这个代码直接在云端上进行分类,GEE会爆内存,因此我准备把数据下…

Docker搭建kafka环境

系统:MacOS Sonoma 14.1 Docker版本:Docker version 27.3.1, build ce12230 Docker desktop版本:Docker Desktop 4.36.0 (175267) 1.拉取镜像 先打开Docker Desktop,然后在终端执行命令 docker pull lensesio/fast-data-dev …

校园点餐订餐外卖跑腿Java源码

简介: 一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合&am…