目录
- 监控连接数
- 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
注意事项:
- 修改限制后需要用户重新登录才能生效
- 建议先在测试环境验证配置
- 定期检查日志确保限制合理
- 设置监控告警机制
- 保留一定的资源余量,避免设置过严格的限制
这些配置可以根据实际需求调整数值,建议从相对宽松的限制开始,根据实际使用情况逐步调整到合适的水平。