前言
前提
ecs
服务器,centos
系统/乌班图系统- 需要root榕湖
开始处理监狱问题
- 首先,登录到您的
ECS
机器。 - 创建一个新用户: 使用
adduser
命令创建一个新用户。例如,要创建一个名为xushouchun
的用户,您需要运行:
sudo adduser xushouchun
sudo passwd xushouchun
- 对于通过
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
- 绑定设备和其他必要的目录 (可选):你可能需要把
/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
是一个虚拟文件系统,包含了内核与进程的信息,许多程序都依赖于此目录来收集系统信息。绑定/proc
到chroot
环境中,允许在chroot
环境中运行的程序访问到这些信息。. /sys:
与/proc
类似,/sys
是另一个虚拟文件系统,提供了内核的设备和硬件信息,它允许用户态程序读取或对设备和驱动进行配置。将其
绑定到chroot
环境中可以让这些操作和信息在 chroot 中同样可用。
- 配置目录
sudo mkdir -pv /chroot/{bin,lib64,etc,home,usr/share/terminfo}
- 配置环境隔离
cp /home/xushouchun/.bash_profile /chroot/home/xushouchun/.bash_profile
- 配置命令
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
- 所有依赖拉进来
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