下一页 上一页 目录
在确定方向时,需要做出许多决策。以下小节详细介绍了我为获得可工作的原型而采取的一些路径。请根据您的环境进行修改。我将在适当的地方做出澄清说明。
我研究了几种 Live CD 发行版,并得出结论,DSL 最适合手头的目的。我考虑了以下几种:
- Ubuntu。这个 Live CD 期望相对高端的机器,并且拥有比本项目有用的应用程序多得多的应用程序。我没有尝试删除大量应用程序并进行精简,而是选择不使用这个。但是,如果您尝试向人们提供完整的桌面以及对内部网络的访问权限,这可能是一个不错的选择。
- PuppyLinux。这个 Live CD 看起来真的不错,但是我在弄清楚它用于其根目录的 SFS 文件系统时遇到了麻烦,并且能够更轻松地获得有关如何处理 Knoppix 压缩文件系统的说明和工具。
- Knoppix。像 Ubuntu 一样,这个 Live CD 对于本项目的特定目的来说也过于庞大。
- Damn Small Linux。这个 Live CD 只有 50 MB 的占用空间,几乎可以在任何硬件上运行,并且是我选择实施的发行版。
选择 DSL 意味着我们依赖于 DSL 内置的自动查找、配置和通过 DHCP 连接到网络的能力。DSL 的无线支持非常有限,因此我们目前不支持无线。最终用户将需要一台通常通过其提供商的 DHCP 连接到 Internet 的机器,并使用普通的有线网卡来完成此操作。
- 全新安装 Ubuntu (http://www.ubuntu.com)、EdUbuntu (http://www.edubuntu.org)、xUbuntu (http://www.xubuntu.org) 或 kUbuntu (http://www.kubuntu.org)
- 使用 Synaptic 添加存储库(所有可用)
- 安装 qemu、open-vpn 和 cloop-utils
- 获取 ISO 文件(我推荐 dsl-3.0 ISO);希望我很快就能在互联网上提供我的原型 CD 镜像(不包含 VPN 密钥),供您下载。请参考“示例”部分 - 此 ISO 可能是您入门的好地方。
- 将 ISO 挂载到某个位置。
-
mkdir /tmp/workingiso
-
mount -t iso9660 -o loop dsl-3.0.iso /tmp/working.iso
- 解压 ISO 的压缩文件系统
-
extract_compressed_fs /tmp/workingiso/KNOPPIX/KNOPPIX > /var/tmp/KNOPPIX-cloop
- 将其挂载到某个位置
-
mkdir /tmp/workingiso.cloop
-
mount -o loop /var/tmp/KNOPPIX-cloop /tmp/workingiso.cloop
- 现在您可以访问 CD 的内部工作原理,将其复制到您可以处理它的位置。
- 创建一个工作目录(例如 /home/jeff/Desktop/vpn-tree)
-
tar -C /tmp/workingiso.cloop -cf - . | tar -C /home/jeff/Desktop/vpn-tree -xvpf -
- 同时复制 CD 的外部部分,您可以在其中处理它。
- 创建一个工作目录(例如 /home/jeff/Desktop/vpn-cd-tree)
-
tar -C /tmp/workingiso -cf - . | tar -C /home/jeff/Desktop/vpn-cd-tree -xvpf -
- 使用您现在拥有的内容制作 CD 镜像,以确认您已成功完成此步骤且没有错误。
-
mkisofs -pad -l -r -J -V "YOURVPN v0.1" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o yourvpn.iso /home/jeff/Desktop/vpn-cd-tree/
- 假设以上操作成功,您现在可以使用以下命令进行测试:
-
qemu -boot d -cdrom yourvpn.iso
- 现在您可以开始进行更改。
- 使用以下命令挂载您的 proc:
mount -t proc none /home/jeff/Desktop/vpn-tree/proc
-
chroot /home/jeff/Desktop/vpn-tree
- 对文件系统进行任何您想要的更改。
- 折腾完毕后,是时候写出您新的压缩文件镜像并制作 CD 了。
- 退出 chroot
- 卸载镜像的 proc(不要忘记此步骤,否则您稍后构建时将无法获得可工作的镜像)
- 制作压缩文件镜像
mkisofs -L -R -l -V "YOURVPN ISO9660" -v -allow-multidot /home/jeff/Desktop/vpn-tree/ | create_compressed_fs - 65536 > /home/jeff/Desktop/vpn-cd-tree/KNOPPIX/KNOPPIX
- 制作 CD 镜像
mkisofs -pad -l -r -J -V "YOURVPN v0.2" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o yourvpn.iso /home/jeff/Desktop/vpn-cd-tree/
- 在模拟器中测试它(我倾向于喜欢 qemu...使用您喜欢的任何模拟器:vmware、xen、?)
qemu -boot d -cdrom yourvpn.iso
- 根据需要重复上述步骤以获得所需的 ISO 镜像。
- 刻录镜像并享受。
- 在 chroot 后,将 openvpn*.deb 解压到根文件系统。
- 确保所有正确的库都已复制到正确的位置。
- chroot
- ldd /usr/sbin/openvpn
- 转到主系统上的另一个根终端,并将任何库从主系统复制到 vpn-tree
- 创建 tun 节点:mknod /dev/net/tun c 10 200
- 通过编辑 vpn-cd-tree/boot/isolinux/boot.msg 文件并删除“^Xlogo.16”来删除 DSL 商业名片图形的加载。
- 通过编辑 vpn-cd-tree/boot/isolinux/isolinux.cfg 并将显示“PROMPT 1”的行更改为“PROMPT 0”,使其不等待启动选项。
- 编辑文件 vpn-tree/etc/skel/.xinitrc 以反映我们希望在桌面上发生的事情。删除将图标加载到桌面上的代码;删除使窗口透明的代码;添加建立 VPN 连接的代码;添加加载 rdesktop 并连接到正确机器的代码。
- 编辑启动的显示屏幕。
- 复制 vpn-cd-tree/boot/isolinux/minirt24.gz 到 /tmp
- gunzip minirt24.gz
- mount -o loop minirt24 /mnt
- 编辑 /etc/linuxrc 以显示指示机构名称的文本(您可以在此处放置适合您机构的任何内容)而不是“DSL”
- umount /mnt
- gzip minirt24
- 将 minirt24.gz 复制到 vpn-cd-tree/boot/isolinux/minirt24.gz
- 按照有关为服务器制作证书和密钥的说明进行操作。
- 您将需要输入 OpenVPN HOWTO 中涵盖的几项信息。
- 记住为客户端创建一个受密码保护的密钥。
- 根据需要设置所有配置。
- 对于每个客户端,您将需要
- 使用证书制作一个受密码保护的密钥
- 将证书和客户端密钥(仅限)放置在 vpn-tree/etc/openvpn/keys 目录中
- 调整 vpn-tree/etc/openvpn/openvpn.cfg 文件以指示正确的密钥文件(请参阅“示例”部分中的服务器配置文件)
- 调整 vpn-tree/opt/bootlocal.sh 中添加的路由
- 调整 vpn-tree/etc/skel/.xinitrc 以指向正确的 rdesktop IP。
- 重建 CD。
- 在模拟器中测试。
- 一旦它工作正常,可以刻录 ISO 或通过将 .ISO 放置在 win-qemu-yourvpn-cd 目录中并构建该 .ISO 来制作 qemu Windows 模拟器版本(之后不要忘记刻录它)。
- https://linuxjournal.cn/article/7246
- http://openvpn.net/howto.html
- http://www.damnsmalllinux.org
- http://www.ubuntu.com
下一页 上一页 目录