chroot -- 限制其他用户liunx空间且监控生成子账户输出命令日志


前言

前提

  1. ecs 服务器,centos系统/乌班图系统
  2. 需要root榕湖

开始处理监狱问题

  1. 首先,登录到您的ECS机器。
  2. 创建一个新用户: 使用 adduser 命令创建一个新用户。例如,要创建一个名为 xushouchun 的用户,您需要运行:
sudo adduser xushouchun
sudo passwd xushouchun
  1. 对于通过 SSH 登录的用户,你需要在 /etc/ssh/sshd_config 文件中设置 ChrootDirectory 指令
cat /etc/ssh/sshd_config 
Match User xushouchun
ChrootDirectory /chroot
X11Forwarding no
AllowTcpForwarding no
systemctl restart sshd

限制文件上传下载

   #  ForceCommand internal-sftp
  1. 绑定设备和其他必要的目录 (可选):你可能需要把/dev、/proc、/sys等系统目录绑定到chroot环境中以确保某些功能能够正常工作:
mkdir -p /chroot/{dev,proc,sys}
sudo mount --rbind /dev /chroot/dev
sudo mount --rbind /proc /chroot/proc
sudo mount --rbind /sys /chroot/sys
  • . /dev:/dev 目录包含了代表系统中所有设备的特殊文件,包括硬盘、输入设备、随机数生成器等。在 chroot 环境中,如果你需要访问这些设备文件(例如,/dev/null, /dev/random),你需要将其绑定到 chroot/dev 下。
  • . /proc:/proc 是一个虚拟文件系统,包含了内核与进程的信息,许多程序都依赖于此目录来收集系统信息。绑定 /procchroot 环境中,允许在 chroot 环境中运行的程序访问到这些信息。
  • . /sys:/proc 类似,/sys 是另一个虚拟文件系统,提供了内核的设备和硬件信息,它允许用户态程序读取或对设备和驱动进行配置。将其
    绑定到 chroot 环境中可以让这些操作和信息在 chroot 中同样可用。
  1. 配置目录
 sudo mkdir -pv /chroot/{bin,lib64,etc,home,usr/share/terminfo}
  1. 配置环境隔离
cp /home/xushouchun/.bash_profile /chroot/home/xushouchun/.bash_profile
  1. 配置命令
mkdir -p /chroot/usr/share/terminfo/x/
mkdir -p /chroot/usr/bin/


cp -R /usr/share/terminfo/x/* /chroot/usr/share/terminfo/x/
sudo cp  -f /bin/clear /chroot/bin
sudo cp  -f /bin/bash /chroot/bin/
sudo cp  -f /bin/su /chroot/bin/
sudo cp  -f /bin/ls /chroot/bin/
sudo cp /usr/bin/ldd /chroot/usr/bin/
sudo cp /usr/bin/bash /chroot/usr/bin/

其次,你需要找出ls依赖了哪些库,你可以在系统的根环境(不是chroot 内)使用ldd 命令:

sudo ldd /bin/ls
  1. 所有依赖拉进来

cp -rf /lib64/* /chroot/lib64/

# 拉取对应的
sudo cp /lib64/libselinux.so.1 /chroot/lib64/
sudo cp /lib64/libcap.so.2 /chroot/lib64/
sudo cp /lib64/libacl.so.1 /chroot/lib64/
sudo cp /lib64/libc.so.6 /chroot/lib64/
sudo cp /lib64/libpcre.so.1 /chroot/lib64/
sudo cp /lib64/libdl.so.2 /chroot/lib64/
sudo cp /lib64/ld-linux-x86-64.so.2 /chroot/lib64/
sudo cp /lib64/libattr.so.1 /chroot/lib64/
sudo cp /lib64/libpthread.so.0 /chroot/lib64/

sudo ldd /bin/clear

在这里插入图片描述
10. 在chroot 环境中为 xushouchun 创建 home目录,并设置相应的权限和归属。

sudo mkdir -p /chroot/home/xushouchun
sudo chown -R xushouchun:xushouchun /chroot/home/xushouchun




vim  /chroot/home/gene/.bash_profile 
PATH="$HOME/.local/bin:$HOME/bin:/bin"
export PATH
11. 收回权限:(略)
```sehll
sudo chown -R root:root /chroot

进入监狱

sudo chroot /chroot



---
### 监狱方面总结 

`ssh ` 限制了` xushouchun `账户在 `home `家目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ac477e38d5734d999ae57f4ba9fbfd4a.png)
给定了对应的命令
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9fa0473dbdb949b2bb9c26ca3224e37f.png)
提供了对应的配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d6824a558f0f45c59c9d4e2219b9477a.png)
关于越狱问题,除非待讨论 除非对方有计算机基础,不然很难越狱

---
## 开始关于子账户监控命令日志

```shell
# 安装 auditd
yum install audit
# 启动auditd
systemctl start auditd
#  xushouchun 用户的 user ID(UID)
id -u xushouchun
# 配置规则
auditctl -a always,exit -F arch=b64 -S execve -F uid=1001 -k xushouchun-commands

当前脚本时间日志为当前日子的午夜(00:00)开始直到脚本运行时间为止的日志条目

cd /xushouchun
vim audit_commands.sh
#!/bin/bash
FILE="/xushouchun/log"
LOG_FILE="/xushouchun/log/xushouchun_commands.log"
ARCHIVE_FILE="/var/log/xushouchun_commands_$(date +'%Y%m%d').log"

if [ ! -f "$FILE" ];then
mkdir -p /xushouchun/log
fi

echo "------ $(date +'%Y-%m-%d %H:%M:%S') ------" >> $LOG_FILE
ausearch -k xushouchun-commands --start today -i | \
awk '
  /type=EXECVE/ {
    cmd_start = index($0, "a0=");
    cmd = substr($0, cmd_start);
    gsub(/a[0-9]+="/, "", cmd);
    gsub(/"/, "", cmd);
  }
  /type=SYSCALL/ {
    timestamp_start = index($0, "time->");
    timestamp = substr($0, timestamp_start, 23);
    gsub(/time->/, "", timestamp);
    printf("%s -> %s\n", timestamp, cmd);
  }
' >> $LOG_FILE

# 关于归档问题 定时每天执行
# mv $LOG_FILE $ARCHIVE_FILE
# touch $LOG_FILE

chmod +x audit_commands.sh
sh /xushouchun/audit_commands.sh

如果输出某一天的使用这个配置规则

ausearch -k xushouchun-commands --start 2021-04-17 18:00:00 --end 2021-04-17 19:00:00 -i

结果

在这里插入图片描述
关于定时追加
在终端中输入 crontab -e 来编辑当前用户的 crontab 文件。如果是第一次使用 crontab,可能会让您选择一个编辑器来编辑 crontab 文件。
crontab 文件的末尾添加一行以定义新的定时任务。cron 使用特定的格式来设定任务的执行时间,格式如下:


* * * * * /path/to/command arg1 arg2
其中,五个星号分别代表分钟、小时、日(月中的哪一天)、月(一年中的哪个月)、星期几。例如,若要每天早上 6 点运行脚本,添加以下内容:
0 6 * * * /path/to/your/audit_commands.sh
这表示在每天的 6:00 AM 运行 /path/to/your/audit_commands.sh(请把这个路径替换为您的脚本实际的路径)。
crontab -l 来列出当前用户的所有 cron 任务

总结查看日志

cat /xushouchun/log/xushouchun_commands.log
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值