KAL1 LINUX 官方文档之容器版本 --- Kali Linux LXC/LXD 镜像(更新于2022)
Kali Linux LXC/LXD 镜像
内容:
- 概述
- Ubuntu 主机上的命令行 Kali LXD 容器
- Ubuntu 主机上的 Gui Kali LXD 容器
- Kali 主机上的特权 Kali LXC 容器
- Kali 主机上的非特权 Kali LXC 容器
- 参考
概述
Kali Linux 容器是理想的解决方案
- 在其他 Linux 发行版中运行 Kali Linux
- 为开发或测试活动提供隔离环境
没有虚拟机的开销。 Docker 是应用程序的首选解决方案,而 LXC/LXD 是整个系统的首选解决方案。
Linux 容器提供快照和冻结等功能,这在开发或测试软件时非常方便。
Kali 镜像在LXC 和 LXD 的镜像服务器上可用,可以使用“images:”镜像服务器在 LXD 中轻松启动,也可以使用“lxc-download”模板在 LXC 中轻松启动。
LXC 是 Linux 内核包含特性的用户空间接口。通过强大的 API 和简单的工具,它可以让 Linux 用户轻松创建和管理系统或应用程序容器。
LXD 是下一代系统容器管理器。它提供了类似于虚拟机的用户体验,但使用的是 Linux 容器。它基于图像,包含可用于大量 Linux 发行版的预制图像,并围绕一个非常强大但非常简单的 REST API 构建。
LXD 与 LXC:
LXD 是两者中更方便的一种,但仅在 Ubuntu 或其他发行版(如 Kali)中作为 snap 包可用。
LXC 在更多发行版中可用,并且在 Kali 中是首选,因为它是本机支持的,并且不需要 snapd 来运行。
Ubuntu 主机上的命令行 Kali LXD 容器
在 Ubuntu 中安装 Kali Linux 容器只需要几个步骤:
- 安装 LXD
- 启动 Kali 容器
- 在容器内安装额外的包
- 创建非root用户
- 登录
1 - 通过 snap 安装 lxd 并执行初始设置:
kali@kali:~$ sudo snap install lxd
kali@kali:~$ lxd init
2 - 启动你的第一个 Kali Linux 容器
kali@kali:~$ lxc launch images:kali/current/amd64 my-kali
3 - 通过在容器内安装额外的包
kali@kali:~$ xc exec my-kali -- apt update
kali@kali:~$ xc exec my-kali -- apt install -y kali-linux-default kali-desktop-xfce
4 - 在本例中创建非 root 用户 - “kali”:
kali@kali:~$ lxc exec my-kali -- adduser kali
kali@kali:~$ lxc exec my-kali -- usermod -aG sudo kali
kali@kali:~$ lxc exec my-kali -- sed -i '1 i\TERM=xterm-256color' /home/kali/.bashrc
kali@kali:~$ lxc exec my-kali -- sh -c "echo 'Set disable_coredump false' > /etc/sudo.conf"
5 - 通过用户“kali”登录到新容器
kali@kali:~$ lxc console my-kali
瞧!
容器管理:
- 开始:
lxc start my-kali
- 停止:
lxc stop my-kali
- 消除:
lxc destroy my-kali
Ubuntu 主机上的 GUI Kali LXD 容器
安装 Kali 容器来运行 GUI 应用程序与前面的示例类似,但有几个额外的步骤:
- 安装 LXD
- 创建 GUI 配置文件并启动 Kali GUI 容器
- 在容器内安装额外的包
- 创建非root用户
- 启动 Kali Xfce 面板
- 自定义 Kali Xfce 面板
1 - 通过 snap 安装 lxd 并执行初始设置(如果尚未完成):
kali@kali:~$ sudo snap install lxd
kali@kali:~$ lxd init
2 - 启动你的第一个 Kali Linux 容器
kali@kali:~$ wget https://blog.simos.info/wp-content/uploads/2018/06/lxdguiprofile.txt
kali@kali:~$ lxc profile create gui
kali@kali:~$ cat lxdguiprofile.txt | lxc profile edit gui
kali@kali:~$ lxc profile list
kali@kali:~$ lxc launch --profile default --profile gui images:kali/current/amd64 gui-kali
3 - 通过在容器内安装额外的包
kali@kali:~$ lxc exec gui-kali -- apt update
kali@kali:~$ lxc exec gui-kali -- apt install -y kali-linux-default
kali@kali:~$ lxc exec gui-kali -- apt install -y kali-desktop-xfce
4 - 在本例中创建非 root 用户 - “kali”:
kali@kali:~$ lxc exec gui-kali -- adduser kali
kali@kali:~$ lxc exec gui-kali -- usermod -aG sudo kali
kali@kali:~$ lxc exec gui-kali -- sed -i '1 i\TERM=xterm-256color' /home/kali/.bashrc
kali@kali:~$ lxc exec gui-kali -- echo "export DISPLAY=:0" >> /home/kali/.bashrc
kali@kali:~$ lxc exec gui-kali -- sh -c "echo 'Set disable_coredump false' > /etc/sudo.conf"
5 - 通过启动 Kali Xfce 面板
kali@kali:~$ lxc exec gui-kali -- sudo -u kali xfce4-panel
根据需要自定义面板。
容器管理:
- 开始:
lxc start gui-kali
- 停止:
lxc stop gui-kali
- 消除:
lxc destroy gui-kali
Kali 主机上的特权 Kali LXC 容器
特权容器是由 root 创建并以 root 身份运行的容器。它们比非特权容器设置得更快,但本质上是不安全的。在 Kali 主机上安装特权 Kali Linux 容器只需要:
- 安装和设置 lxc
- 从镜像服务器下载kali镜像
- 启动容器
- 连接到容器
1 - 安装 lxc 并设置网络:
kali@kali:~$ sudo apt install -y lxc libvirt0 libpam-cgfs bridge-utils libvirt-clients libvirt-daemon-system iptables ebtables dnsmasq-base
kali@kali:~$
kali@kali:~$ sudo cat <<EOF > /etc/lxc/default.conf
lxc.net.0.type = veth
lxc.net.0.link = virbr0
lxc.net.0.flags = up
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
EOF
kali@kali:~$
kali@kali:~$ sudo virsh net-start default
kali@kali:~$ sudo virsh net-autostart default
2 - 从镜像服务器下载 Kali Linux 镜像
kali@kali:~$ lxc-create -t download -n my-kali
这将列出所有可用的图像。
出现提示时,输入:
- 分布:卡利
- 发布:当前
- 架构:amd64(或其他适用)
kali@kali:~$ sudo lxc-start -n my-kali -d
4 - 通过附加到容器
kali@kali:~$ sudo lxc-attach -n my-kali
你有它。接下来,您应该设置一个 root 密码并安装“kali-linux-default”元包。
容器管理:
- 开始:
sudo lxc-start -n my-kali -d
- 停止:
sudo lxc-stop -n my-kali
- 列表:
sudo lxc-ls -f
- 信息:
sudo lxc-info -n my-kali
- 消除:
sudo lxc-destroy -n my-kali
Kali 主机上的非特权 Kali LXC 容器
非特权容器在用户上下文中运行,被认为更安全,并且比使用特权容器更受欢迎。它稍微涉及的设置:
- 安装和设置 lxc
- 为非特权容器设置 LXC
- 从镜像服务器下载kali镜像
- 启动容器
- 安装一些额外的包
- 创建非root用户
- 登录
1 - 安装 lxc(如果需要):
kali@kali:~$ sudo apt install -y lxc libvirt0 libpam-cgfs bridge-utils libvirt-clients libvirt-daemon-system iptables ebtables dnsmasq-base
2 - 为非特权容器设置 LXC
kali@kali:~$ echo "$USER veth virbr0 10" | sudo tee -i /etc/lxc/lxc-usernet
kali@kali:~$ sudo sh -c 'echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/80-lxc-userns.conf'
kali@kali:~$ sudo sysctl kernel.unprivileged_userns_clone=1
kali@kali:~$ sudo chmod u+s /usr/libexec/lxc/lxc-user-nic
kali@kali:~$
kali@kali:~$ mkdir -p ~/.config/lxc
kali@kali:~$ cp /etc/lxc/default.conf ~/.config/lxc/default.conf
kali@kali:~$ sed -i 's/lxc.apparmor.profile = generated/lxc.apparmor.profile = unconfined/g' ~/.config/lxc/default.conf
接下来,我们必须添加两行~/.config/lxc/default.conf
,其 subuid 和 subguid 与 和 中列出的相/etc/subuid
匹配/etc/subgid
。首先让我们通过 id 获取cat /etc/s*i d grep $USER
结果应该如下所示:
kali:100000:65536
kali:100000:65536
将以下命令中的 ID 替换为上一个输出中的 ID:
kali@kali:~$ echo lxc.idmap = u 0 100000 65536 >> ~/.config/lxc/default.conf
kali@kali:~$ echo lxc.idmap = g 0 100000 65536 >> ~/.config/lxc/default.conf
3 - 从镜像服务器下载 Kali Linux 镜像
kali@kali:~$ lxc-create -t download -n my-kali
这将列出所有可用的图像。
出现提示时,输入:
- 分布:卡利
- 发布:当前
- 架构:amd64(或其他适用)
kali@kali:~$ lxc-start -n my-kali -d
但是在我们登录之前,我们会执行一些安装后的设置任务
5 - 安装默认包:
kali@kali:~$ lxc-attach -n my-kali apt update
kali@kali:~$ lxc-attach -n my-kali apt install -y kali-linux-default
6 - 创建一个非root用户:
kali@kali:~$ lxc-attach -n my-kali --clear-env adduser <username>
kali@kali:~$ lxc-attach -n my-kali --clear-env adduser <username> sudo
7 - 通过非root用户登录
kali@kali:~$ lxc-console
并在初始登录时执行以下操作以在控制台中获取一些颜色:
kali@kali:~$ sed -i '1 i\TERM=xterm-256color' ~/.bashrc
kali@kali:~$ . ~/.bashrc
容器管理:
- 开始:
sudo lxc-start -n my-kali -d
- 停止:
sudo lxc-stop -n my-kali
- 列表:
sudo lxc-ls -f
- 信息:
sudo lxc-info -n my-kali
- 消除:
sudo lxc-destroy -n my-kali
参考:
更新日期:2022 年 7 月 26 日
作者: re4son