标签: chroot

在 unix 上隔离 ftp 服务器用户的安全方法是什么?

我已经阅读了各种 ftp 守护进程和各种长线程的文档,了解在授予用户写访问权限时将 chroot 环境用于 ftp 服务器的安全隐患。如果您阅读了 vsftpd 文档,特别是它意味着使用 chroot_local_user 是一个安全隐患,而不使用它则不是。似乎没有涵盖允许用户访问整个文件系统的含义(在他们的用户和组成员资格允许的情况下),也没有涵盖这可能造成的混乱。

所以,我想了解在实践中使用的正确方法是什么。具有经过身份验证的写访问用户的 ftp 服务器是否应该提供非 chroot 环境、chroot 环境或其他一些选项?鉴于 Windows ftp 守护进程没有使用 chroot 的选项,否则它们需要实现隔离。是否有任何 unix ftp 守护进程做类似的事情?

security unix ftp chroot

5
推荐指数
1
解决办法
2361
查看次数

某处是否有 chroot 构建脚本?

我即将开发一个小脚本来为 chroot-jail 收集信息。

就我而言,这看起来(乍一看)非常简单:该应用程序具有干净的 rpm-install,并且确实将几乎所有文件安装到 /opt 的子目录中。

我的想法是:

  • 查找所有二进制文件
  • 检查他们的库依赖项
  • 将结果记录到列表中
  • 在应用程序启动之前将该列表 rsync 同步到 chroot-target-directory

现在我想知道 - 是否有任何脚本已经完成了这样的工作(perl/bash/python)?

到目前为止,我只找到了针对单个应用程序(如 sftp-chroot)的专门解决方案。

虽然无关紧要(恕我直言) - 操作系统是 CentOS 5 x86_64 当前次要版本和补丁级别。

rpm -ql恕我直言不够通用,因为它只会涵盖基于rpm的发行版。上面提到的“全新安装”只是提到软件的文件没有分布在整个文件系统中。所以我的出发点是 - 目前 - 一个find /opt/directory/......几乎可以在任何系统(甚至不是Linux)上运行。

scripting linux centos chroot

5
推荐指数
1
解决办法
1985
查看次数

postfix/smtp:致命:未知服务:smtp/tcp – 但 /var/spool/postfix/etc/services 存在

我正在运行带有 Postfix 2.11.3-1 作为 MTA 的 Debian GNU/Linux 8.7 机器。突然之间,也就是没有更改 MTA 设置,邮件停止发送,并且以下错误开始出现在/var/log/mail.err

root@schroeder:~# tail /var/log/mail.err
Mar 21 12:51:01 schroeder postfix/smtp[25421]: fatal: unknown service: smtp/tcp
Mar 21 12:54:11 schroeder postfix/smtp[26397]: fatal: unknown service: smtp/tcp
Mar 21 12:54:12 schroeder postfix/smtp[26398]: fatal: unknown service: smtp/tcp
Mar 21 12:59:26 schroeder postfix/smtp[26553]: fatal: unknown service: smtp/tcp
Mar 21 12:59:26 schroeder postfix/smtp[26554]: fatal: unknown service: smtp/tcp
Mar 21 12:59:26 schroeder postfix/smtp[26555]: fatal: unknown service: smtp/tcp
Mar 21 12:59:26 schroeder postfix/smtp[26556]: fatal: unknown service: smtp/tcp …
Run Code Online (Sandbox Code Playgroud)

linux debian postfix chroot debian-jessie

5
推荐指数
1
解决办法
1907
查看次数

将 chroot 用于公开服务是否提供任何真正的安全优势?

我想要一个明确的答案,为什么应该对暴露于潜在敌对网络(即 Internet)的服务进行这种做法。据我了解,有一种突破 chroot jail 的方法,所以如果这种安全措施没有真正的价值,那为什么有些装置还在追求它呢?

security chroot

4
推荐指数
1
解决办法
1651
查看次数

schroot 无法在进入时挂载

我正在尝试为自己设置 chroot 环境,但失败了。这已在 Ubuntu 的多个版本(10.04 和 11.04)上重现。我通过以下方式进行设置:

$ mkdir -p /srv/chroot/squeeze64
$ debootstrap --arch amd64 squeeze /srv/chroot/squeeze64 http://ftp.debian.org/debian/
$ cat /etc/schroot/schroot.conf
    [squeeze64]
    description=Whatever
    directory=/srv/chroot/squeeze64
    users=ajtack
    root-users=ajtack
    type=directory
Run Code Online (Sandbox Code Playgroud)

进入 chroot 失败,因为:

$ schroot -c squeeze64
E: Failed to change to directory '/var/lib/schroot/mount/squeeze64-d1d6ed5e-b217-4319-94ee-ff0422a75671': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我不知道如何调试这个。出了什么问题?


附加信息:来自详细运行。

$ schroot --verbose -c squeeze64
I: Executing ‘00check setup-start ok’
I: 00check: STAGE=setup-start
I: 00check: STATUS=ok
I: 00check: AUTH_GID=1000
I: 00check: AUTH_HOME=/home/ajtack
I: 00check: AUTH_RGID=1000
I: 00check: AUTH_RGROUP=ajtack
I: 00check: AUTH_RUID=1000
I: …
Run Code Online (Sandbox Code Playgroud)

linux chroot

4
推荐指数
1
解决办法
3461
查看次数

防止 rssh 用户离开他们的监狱目录

我试图使用 rssh 将用户严格限制在他们的 /home/user/public_html 目录中。我让它在一个帐户可以在测试服务器上成功通过 SFTP 进入系统的地方工作,但是一旦我以该帐户登录,我注意到我可以将目录更改为我希望的任何位置并查看文件的内容。我可能无法编辑或转移到这些目录,但我认为能够监禁它们的全部目的是为了防止这种事情发生?

SSHD 设置子系统 sftp internal-sftp RSSH 指定用户只能使用 scp 和 sftp 用户帐户使用 /usr/bin/rssh 作为 shell 和 /home/user/public_html 用户的主目录是 root:用户所有者:组

我已经注意到,他们可以查看的唯一文件和他们可以 cd 进入的目录都是世界可读的,这是有道理的,但为什么他们完全允许离开他们的目录?请不要说我只是回答了我自己的问题。目的是找到防止这种情况的最佳实践解决方案。

期望的结果是限制他们对任何不属于他们的目录进行 cd 的能力。

我在这里错过了什么吗?


这是 rssh.conf 文件的内容;

logfacility = LOG_USER

allowscp
allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve

# set the default umask
umask = 022

user=wwwtest1:077:110000:/home/wwwtest1/public_html
Run Code Online (Sandbox Code Playgroud)

这是 sshd_config 文件的内容;

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use …
Run Code Online (Sandbox Code Playgroud)

unix jail chroot sftp

4
推荐指数
1
解决办法
8388
查看次数

如何将经过身份验证的 Nginx 用户映射到他们自己的目录?

我正在用 C 语言编写一个社交网站,并使用 Nginx 为其提供服务。我怎样才能让经过身份验证的用户转到他们自己的目录 - 仅 - 用户特定的 index.html 所在的目录。我不是在问如何用用户特定的指令填充 index.html,而是如何将它们锁定到他们自己的目录中

nginx jail chroot

4
推荐指数
1
解决办法
3676
查看次数

ubuntu bind9 AppArmor 读取权限被拒绝(chroot 监狱)

我正在尝试使用 chroot监狱运行bind9。我按照以下提到的步骤进行操作:http://www.howtoforge.com/debian_bind9_master_slave_system

我的系统日志中出现以下错误:

Jul 27 16:53:49 conf002 named[3988]: starting BIND 9.7.3 -u bind -t /var/lib/named
Jul 27 16:53:49 conf002 named[3988]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
Jul 27 16:53:49 conf002 named[3988]: adjusted limit on open files from 4096 to 1048576
Jul 27 16:53:49 conf002 named[3988]: found 4 CPUs, using 4 worker threads
Jul 27 16:53:49 conf002 named[3988]: …
Run Code Online (Sandbox Code Playgroud)

ubuntu bind chroot

4
推荐指数
1
解决办法
2万
查看次数

用户无法在 chroot 后 SFTP

Ubuntu 10.04.4 LTS

我正在尝试 chroot 用户“sam”。根据那里的所有文章,这应该有效,但显然我仍然做错了什么。

用户:

sam:x:1005:1006::/home/sam:/bin/false
Run Code Online (Sandbox Code Playgroud)

我像这样更改了 /etc/ssh/sshd_config(在文件底部):

#Subsystem sftp /usr/lib/openssh/sftp-server
# CHROOT JAIL
Subsystem sftp internal-sftp
Match group users
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

我将 sam 添加到用户组:

$groups sam
sam : sam users
Run Code Online (Sandbox Code Playgroud)

我更改了 sam 的主文件夹的权限:

$ ls -la /home/sam
drwxr-xr-x 11 root root  4096 Sep 23 16:12 .
drwxr-xr-x  8 root root  4096 Sep 22 16:29 ..
drwxr-xr-x  2 sam  users 4096 Sep 23 16:10 awstats
drwxr-xr-x  3 sam  users 4096 Sep 23 16:10 etc …
Run Code Online (Sandbox Code Playgroud)

chroot sftp

4
推荐指数
1
解决办法
2万
查看次数

Chrooted 用户不在他的主目录中启动并且不加载他的 bash_profiles

如果用户登录,他会从 chroot 的 / 开始(在真机上是 /var/jail)。我希望他从他的家庭目录开始。此外,他似乎没有加载任何他的个人资料文件(.bash.rc 等)。我按照教程创建了 chroot 环境。这是我的 /etc/passwd 的样子:

test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash
Run Code Online (Sandbox Code Playgroud)

这是我的 /var/jail/etc/passwd 文件的样子:

test:x:1004:1008:,,,:/home/test:/bin/bash
Run Code Online (Sandbox Code Playgroud)

我还发现,如果我删除

Match User test
    ChrootDirectory /var/jail
    AllowTCPForwarding no
    X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

从我的 /etc/ssh/sshd_config 中,用户从他正确的主文件夹中开始,并加载了他的 bash 设置。但是,如果我删除该部分,他就可以离开 chroot 环境。我之前问过的这个问题有些相关,因为我认为命令行的错误外观是由未加载的配置文件引起的。那么任何想法如何解决这个问题?

linux ssh bash chroot

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

chroot ×10

linux ×4

jail ×2

security ×2

sftp ×2

unix ×2

bash ×1

bind ×1

centos ×1

debian ×1

debian-jessie ×1

ftp ×1

nginx ×1

postfix ×1

scripting ×1

ssh ×1

ubuntu ×1