问题标签 [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.

0 投票
2 回答
1601 浏览

freebsd - FreeBSD 监狱的仅主机网络

我继承了多台运行监狱的 FreeBSD6.1 机器的环境。

由于本地网络上的 IP 耗尽,我想更改监狱,以便物理网络上有 1 个可路由的 IP,以及监狱之间的另一个不可路由的虚拟网络。

这真的可以实现吗?到目前为止,我的研究表明,监狱有自己的地址绑定到主机上的网络接口。我无法找到有关虚拟网络接口的任何信息。

我想确保我的监狱 IP 地址没有 ARP 流量,因为对监狱的所有访问都将通过主机上的 SSH(或通过主机的 netcat/ssh 代理)。

任何有关实施这一点的指导将不胜感激。

0 投票
0 回答
118 浏览

performance - 中间人:拦截应用程序函数/库调用

基本上,我想要实现的是在一个环境中运行一个程序,该环境将根据我决定的标准给出程序要求的任何值。比如说,游戏会定期向系统查询时间以执行动画,现在如果我可以控制传递给程序的时间值,我可以控制动画的速度(也许可以轻松清除一些困难的回合:P)。

基于类似的理由击键,鼠标移动也可以控制(我尝试过 Java 的 Robot 类,但没有发现它令人满意:减慢系统速度{或者我的实现可能很糟糕},命令在当前专注的程序上执行并且不能有针对性)。

任何优雅的方式或实现它的一些指针都将受到高度赞赏。

0 投票
2 回答
717 浏览

php - PHP 监禁任意代码

我们有一个 Java IRC 应用程序,允许用户执行任意 PHP 并获得结果。以下是其用途的一个示例:

我们也有一个 python 设置,但我们喜欢 PHP,因为 PHP 在任何地方的代码中都不需要换行符。(因为这是 IRC,我们不能给它换行,除非我们执行一个 web 加载的 .py 文件)

问题是如何防止人们试图利用该系统,例如:

很明显,它会读出 passwd 文件供所有人查看。
在我们尝试阻止 readfile() 之后,我们也遇到了这个问题:

我们应该如何保护这个系统?(完整代码在 github 上,有兴趣的可以访问:https ://github.com/clone1018/Shocky )

顺便说一句,没有真正的敏感信息被暴露,因为整个事情都在虚拟机中,所以它不是“定时炸弹”或任何东西。不过,我们仍然想锁定它。

0 投票
1 回答
154 浏览

ruby-on-rails - 如何自定义 Capistranos SSH 命令?

为了部署到 FreeBSD 监狱,我需要我的命令如下所示:

请注意,虽然技术上可行,但我想避免直接在监狱中激活 SSH!

那么我怎样才能让 Capistrano 像这样运行呢?

(请注意,我主要是在参考修改默认上限任务时询问。)

0 投票
1 回答
564 浏览

clojure - Clojure:轻量级监狱

语境:

在 Lua 中,创建一个新的 Lua VM 非常简单且非常便宜(4kb 内存)。因此,创建廉价的 lua“监狱”是微不足道的。然后,如果不受信任的代码行为不端,我就会杀死 Lua VM。

我知道https://github.com/Licenser/clj-sandbox但它似乎只是围绕 Java ......这将使不受信任的代码线程成为本机 Java 线程,然后我将无能为力。

问题:

无论如何要创建廉价/轻量级的 Clojure 监狱吗?

0 投票
2 回答
6863 浏览

python - Python:使用 chroot 和 chjail 保护不受信任的脚本/子进程?

我正在编写一个基于 Python 的 Web 服务器,它应该能够执行“插件”,以便轻松扩展功能。

为此,我考虑了在其中拥有多个文件夹(每个插件一个)和多个 shell/python 脚本的方法,这些脚本以可能发生的不同事件的预定义名称命名。

一个例子是on_pdf_uploaded.py当一个 PDF 上传到服务器时执行一个文件。为此,我将使用 Python 的子流程工具。

为了方便和安全,这将允许我使用 Unix 环境变量来提供更多信息并设置进程的工作目录 (cwd),以便它可以访问正确的文件而无需找到它们的位置。

由于插件代码来自不受信任的来源,我想让它尽可能安全。我的想法是在子进程中执行代码,但将其放入具有不同用户的 chroot 监狱,这样它就无法访问服务器上的任何其他资源。

不幸的是,我对此一无所知,而且我不想依靠不受信任的脚本将自己关进监狱。

此外,我也不能将主/调用进程放入 chroot 监狱,因为插件代码可能在服务器响应其他请求时同时在多个进程中执行。

那么问题来了:如何在 chroot 监狱中以最低权限执行子进程/脚本,以保护服务器的其余部分不被错误的、不受信任的代码损坏?

谢谢!

0 投票
2 回答
2481 浏览

python - 在 chroot 中运行时出现 Python 错误

我尝试在 chroot 中运行一些 Python 程序,但出现以下错误

我使用 ldd 来查找 python 运行时所依赖的库,并将其复制到监狱内部。你能帮我解决这个问题吗?

谢谢

0 投票
5 回答
12934 浏览

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)

0 投票
1 回答
378 浏览

git - git log 命令在 chroot 中不打印任何内容

我使用脚本 make_chroot_jail.sh 制作了 chroot 监狱,然后通过复制 /usr/bin/git*、这些二进制文件需要的所有库和 /usr/share/git-core 添加了 git,现在我可以初始化、克隆提交、推送等在监狱里,但是当我输入 git log 时它什么也没打印(有人可以帮我或说在哪里寻找吗?

0 投票
0 回答
1232 浏览

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_i​​nit.ini

但是每当我尝试在 root 帐户中使用 SVN 时,我总是会得到:

如您所料,SVN repo 保存在同一台机器上,并且我检查了 svn checkout 命令是否适用于我通常的 bash 用户。我还仔细检查了 subversion 使用的 htpasswd 文件(/etc/subversion/passwd),其中包含用户名:string-pattern。所以这似乎也没问题。

调查语言环境问题,我不确定这里发生了什么或是否是问题,但常识表明第一个错误通常是原因。被监禁帐户中的 locale -a 给了我:

在普通帐户中,我得到:

我确实注意到在 jk_init.ini 中:

查看 /usr/lib/locale,我有:

这可能是问题,还是我这里有几个问题?

干杯