问题标签 [jail]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
freebsd - FreeBSD 监狱的仅主机网络
我继承了多台运行监狱的 FreeBSD6.1 机器的环境。
由于本地网络上的 IP 耗尽,我想更改监狱,以便物理网络上有 1 个可路由的 IP,以及监狱之间的另一个不可路由的虚拟网络。
这真的可以实现吗?到目前为止,我的研究表明,监狱有自己的地址绑定到主机上的网络接口。我无法找到有关虚拟网络接口的任何信息。
我想确保我的监狱 IP 地址没有 ARP 流量,因为对监狱的所有访问都将通过主机上的 SSH(或通过主机的 netcat/ssh 代理)。
任何有关实施这一点的指导将不胜感激。
performance - 中间人:拦截应用程序函数/库调用
基本上,我想要实现的是在一个环境中运行一个程序,该环境将根据我决定的标准给出程序要求的任何值。比如说,游戏会定期向系统查询时间以执行动画,现在如果我可以控制传递给程序的时间值,我可以控制动画的速度(也许可以轻松清除一些困难的回合:P)。
基于类似的理由击键,鼠标移动也可以控制(我尝试过 Java 的 Robot 类,但没有发现它令人满意:减慢系统速度{或者我的实现可能很糟糕},命令在当前专注的程序上执行并且不能有针对性)。
任何优雅的方式或实现它的一些指针都将受到高度赞赏。
php - PHP 监禁任意代码
我们有一个 Java IRC 应用程序,允许用户执行任意 PHP 并获得结果。以下是其用途的一个示例:
我们也有一个 python 设置,但我们喜欢 PHP,因为 PHP 在任何地方的代码中都不需要换行符。(因为这是 IRC,我们不能给它换行,除非我们执行一个 web 加载的 .py 文件)
问题是如何防止人们试图利用该系统,例如:
很明显,它会读出 passwd 文件供所有人查看。
在我们尝试阻止 readfile() 之后,我们也遇到了这个问题:
我们应该如何保护这个系统?(完整代码在 github 上,有兴趣的可以访问:https ://github.com/clone1018/Shocky )
顺便说一句,没有真正的敏感信息被暴露,因为整个事情都在虚拟机中,所以它不是“定时炸弹”或任何东西。不过,我们仍然想锁定它。
ruby-on-rails - 如何自定义 Capistranos SSH 命令?
为了部署到 FreeBSD 监狱,我需要我的命令如下所示:
请注意,虽然技术上可行,但我想避免直接在监狱中激活 SSH!
那么我怎样才能让 Capistrano 像这样运行呢?
(请注意,我主要是在参考修改默认上限任务时询问。)
clojure - Clojure:轻量级监狱
语境:
在 Lua 中,创建一个新的 Lua VM 非常简单且非常便宜(4kb 内存)。因此,创建廉价的 lua“监狱”是微不足道的。然后,如果不受信任的代码行为不端,我就会杀死 Lua VM。
我知道https://github.com/Licenser/clj-sandbox但它似乎只是围绕 Java ......这将使不受信任的代码线程成为本机 Java 线程,然后我将无能为力。
问题:
无论如何要创建廉价/轻量级的 Clojure 监狱吗?
python - Python:使用 chroot 和 chjail 保护不受信任的脚本/子进程?
我正在编写一个基于 Python 的 Web 服务器,它应该能够执行“插件”,以便轻松扩展功能。
为此,我考虑了在其中拥有多个文件夹(每个插件一个)和多个 shell/python 脚本的方法,这些脚本以可能发生的不同事件的预定义名称命名。
一个例子是on_pdf_uploaded.py
当一个 PDF 上传到服务器时执行一个文件。为此,我将使用 Python 的子流程工具。
为了方便和安全,这将允许我使用 Unix 环境变量来提供更多信息并设置进程的工作目录 (cwd),以便它可以访问正确的文件而无需找到它们的位置。
由于插件代码来自不受信任的来源,我想让它尽可能安全。我的想法是在子进程中执行代码,但将其放入具有不同用户的 chroot 监狱,这样它就无法访问服务器上的任何其他资源。
不幸的是,我对此一无所知,而且我不想依靠不受信任的脚本将自己关进监狱。
此外,我也不能将主/调用进程放入 chroot 监狱,因为插件代码可能在服务器响应其他请求时同时在多个进程中执行。
那么问题来了:如何在 chroot 监狱中以最低权限执行子进程/脚本,以保护服务器的其余部分不被错误的、不受信任的代码损坏?
谢谢!
python - 在 chroot 中运行时出现 Python 错误
我尝试在 chroot 中运行一些 Python 程序,但出现以下错误
我使用 ldd 来查找 python 运行时所依赖的库,并将其复制到监狱内部。你能帮我解决这个问题吗?
谢谢
postgresql - FreeBSD:jail 无法设置 security.jail.sysvipc_allowed
当我在 FreeBSD 监狱中初始化 PostgreSQL 数据库时出现问题。
我找到了一篇关于这个问题的文章。我尝试了它的建议,但我没有运气,我不知道为什么。有链接:PostgreSQL in jail。
我还阅读了关于内核资源的 PostgreSQL 文档:
如果通过启用
sysctl
' 在 FreeBSD 监狱security.jail.sysvipc_allowed
中运行,则在不同监狱中运行的 postmaster 应该由不同的操作系统用户运行。这提高了安全性,因为它可以防止非 root 用户干扰不同监狱中的共享内存或信号量,并允许 PostgreSQL IPC 清理代码正常运行。(在 FreeBSD 6.0 及更高版本中,IPC 清理代码无法正确检测其他监狱中的进程,从而阻止了不同监狱中同一端口上的 postmaster 运行。)
我做了什么:
- 我编辑
/etc/rc.conf
(在主机上)并添加了该行jail_sysvipc_allow="YES"
- 在监狱机器中
/etc/sysctl.conf
,我添加了一行security.jail.sysvipc_allowed=1
我多次重新启动监狱机器。我还没有重新启动主机,也不想。
希望有人能给我一个解决方案或一些建议。非常感谢。
这是我重新启动监狱时的消息:
或者当我手动运行 sysctl 时:(在监狱中)
Freebsd 版本:FreeBSD xxxxxxx 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE
postgreSQL 版本:postgresql-server-9.1.4
错误信息:
更新:
在主机中,/etc/sysctl.conf:security.jail.sysvipc_allowed=1 /etc/rc.conf:jail_sysvipc_allow="YES"
在监狱服务器中,没有额外的 jail_sysvipc 配置。
主机中的 sysctl 值:
我仍然收到与以前相同的错误消息。
另外,我想知道 security.jail.param.allow.sysvipc 是否有任何东西?因为,在主机中,我不允许设置它。(security.jail.param.allow.sysvipc 0-> 0)
git - git log 命令在 chroot 中不打印任何内容
我使用脚本 make_chroot_jail.sh 制作了 chroot 监狱,然后通过复制 /usr/bin/git*、这些二进制文件需要的所有库和 /usr/share/git-core 添加了 git,现在我可以初始化、克隆提交、推送等在监狱里,但是当我输入 git log 时它什么也没打印(有人可以帮我或说在哪里寻找吗?
svn - jailkit SVN 无法设置 LC_CTYPE 语言环境
在这里将不胜感激。
我正在尝试在 Ubuntu 12.04 机器上设置根监狱,并且我正在使用 Jailkit 2.15。我已经使用http://www.marthijnvandenheuvel.com/2010/03/10/how-to-create-a-chroot-ssh-user-in-ubuntu/指南成功地做到了这一点。
但是,我也想允许用户使用 svn 命令。我已将以下内容添加到 /etc/jailkit/jk_init.ini
但是每当我尝试在 root 帐户中使用 SVN 时,我总是会得到:
如您所料,SVN repo 保存在同一台机器上,并且我检查了 svn checkout 命令是否适用于我通常的 bash 用户。我还仔细检查了 subversion 使用的 htpasswd 文件(/etc/subversion/passwd),其中包含用户名:string-pattern。所以这似乎也没问题。
调查语言环境问题,我不确定这里发生了什么或是否是问题,但常识表明第一个错误通常是原因。被监禁帐户中的 locale -a 给了我:
在普通帐户中,我得到:
我确实注意到在 jk_init.ini 中:
查看 /usr/lib/locale,我有:
这可能是问题,还是我这里有几个问题?
干杯