我有一个 FreeBSD 9.0 服务器。它有几个监狱,但他们都有同样的问题。他们无法发起与外界的连接。他们彼此沟通,主机很好。
相关rc.conf设置:
firewall_enable="YES" # IPFW
firewall_type="/etc/ipfw.rules" # Rule script for IPFW
natd_enable="YES" # NAT for Internet Routing
natd_interface="wan0" # NAT Card
natd_flags="-f /etc/natd.conf -dynamic" # NAT Conf
ifconfig_lo1_name="jail1"
ifconfig_jail1="inet 192.168.1.101/32"
jail_asdf_rootdir="/jails/asdf"
jail_asdf_hostname="asdf.example.net"
jail_asdf_ip="192.168.1.101"
jail_asdf_devfs_enable="YES"
Run Code Online (Sandbox Code Playgroud)
从 sysctl.conf
security.jail.allow_raw_sockets=1
Run Code Online (Sandbox Code Playgroud)
从 ipfw.rules
# XXX 00050 divert natd ip4 from any to any via wan0
add 00060 check-state
# Allow me out
add 00135 allow ip from me to any keep-state
add 00136 allow ip6 from me6 to any …Run Code Online (Sandbox Code Playgroud) 我们在 FreeBSD 10 中运行了一些 jails,并且已经决定停用 FreeBSD 服务器并将所有 jails 迁移到 Linux 环境 Red Hat 6 或 7。
是否有将 BSD jails 迁移到 linux 的直接方法——作为可以通过 docker 运行的容器
或任何其他方式将 BSD 监狱转换为容器并再次通过 docker 拉/运行。
还有其他方法吗?我不确定这是否真的可能,因为我尝试在谷歌上阅读但没有遇到过类似的事情。
我的服务器运行 CentOS:Nginx + PHP-FPM(通过 Fast-CGI 的 PHP)。每个站点都在自己的 VirtualHost 上。
目前 Nginx 和 PHP-FPM 都在 root 下运行。我知道这是不好的做法,任何站点都没有理由访问自己目录之外的文件。
我将如何创建被监禁的用户并指示 nginx && php-fpm 相应地进行操作?
在 FreeBSD 机器上设置多个监狱时,我(自然)还需要为每个监狱设置网络。在我看来,有两种方法可以实现同一目标
设置多个克隆接口
或者
为一个克隆设置多个别名。
在第一种方法下,我做(在/etc/rc.conf)
cloned_interfaces="lo1 lo2 ..."
ifconfig_lo1="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_lo2="inet 10.1.1.2 netmask 255.255.255.0"
...
Run Code Online (Sandbox Code Playgroud)
在第二种方法中,我可以做类似的事情
cloned_interfaces="lo1"
ifconfig_lo1_alias0="inet 10.1.1.1/24"
ifconfig_lo1_alias1="inet 10.1.1.2/24"
Run Code Online (Sandbox Code Playgroud)
我目前使用第一个并且它有效,并且我在某些权威上拥有它(类似于)第二个也可以。
问题是使用克隆接口和别名之间的根本区别是什么,特别是在这种情况下,以及哪种方法更好?
我希望在本地挂载远程数据源作为熔丝文件系统。这被列为支持lsvfs:
lsvfs
Filesystem Num Refs Flags
-------------------------------- ---------- ----- ---------------
devfs 0x00000071 4 synthetic, jail
cd9660 0x000000bd 0 read-only
procfs 0x00000002 4 synthetic, jail
nfs 0x0000003a 0 network
zfs 0x000000de 17 jail, delegated-administration
msdosfs 0x00000032 0
ufs 0x00000035 0
fdescfs 0x00000059 4 synthetic, jail
fusefs 0x000000ed 0 synthetic, jail
nullfs 0x00000029 3 loopback, jail
tmpfs 0x00000087 0 jail
Run Code Online (Sandbox Code Playgroud)
我已经安装fusefs-sshfs在监狱里了。我还创建了挂载点目录。
在主机中/etc/sysctl.conf我有security.jail.enforce_statfs=1;/etc/rc.conf我有(kld_list="fuse"我认为这是多余的,但仍然存在)。
在 (ez)jail 配置中,我允许allow.mount、allow.mount.nullfs和allow.mount.fusefs …
根。我在 LAN 上运行 Ubuntu 9.04(家庭)服务器。我目前使用它来存储小型网络应用程序、照片、一些 subversion 存储库和类似的东西。我的(少数)用户是我的朋友,我总是为他们提供对他们主目录的监禁 FTP 访问。现在,最近我意识到 FTP 不是那么安全,因为在建立连接时密码没有被屏蔽,因此很容易被嗅探。
我决定使用 SFTP 解决这个问题,但有一个问题让我感到疑惑,我需要你的意见。
使用 SFTP 对文件系统的访问取决于 SSH 设置。因此,为了将用户监禁到他们的 SFTP 主目录中,当他们使用 SSH 时,我也必须将他们监禁,我的问题是:这是一个理想的配置吗?它是不是限制了一个 UNIX 用户的常识权限?
还有一个次要问题是:在 Ubuntu 9.04 Server 下有没有一种直接的方法来完成它?
谢谢托马索
我有一个关于创建具有某种被监禁的 shell 访问权限的用户的问题(实际上这个用户所需要的只是sftp access一个特定目录)。
场景如下 - 我有一个受 IonCube 保护的现有代码,所以我不能真正弄乱它 - 我被它提供的输出文件夹卡住了。它的作用是创建一些文件夹,其中包含一些要在操作期间下载的文件。一切都结束了/var/www/xy/backup/orderbackup/random-name-folder-here/files_here
现在,我想创建一个用户,该用户将拥有 sftp 访问权限/var/www/xy/backup/files/及其下属,但最好没有其他任何地方。
我是创建一个普通用户,然后将他关在该目录中(尽管我不确定我是否可以在那里创建 jail,因为我无法将/var/www/xy/backup/orderbackup/所有权更改为 root,因为它会停止保存文件),或者我应该使用其他一些技术。
我阅读了有关 RSSH、MySecureShell 等的帖子。哪种方法介于安全性和设置复杂性之间(我不是 Linux 专家)。
提前致谢!
我试图使用 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) 我正在用 C 语言编写一个社交网站,并使用 Nginx 为其提供服务。我怎样才能让经过身份验证的用户转到他们自己的目录 - 仅 - 用户特定的 index.html 所在的目录。我不是在问如何用用户特定的指令填充 index.html,而是如何将它们锁定到他们自己的目录中
'我试图在我的服务器上为一个被监禁的用户创建一个文件夹(目录),这将允许他访问他监狱外的另一个文件夹。我试图用符号链接来做到这一点,但它所做的只是创建一个文件,而不是一个文件夹。他正在使用 FTP,我想要一个文件夹,它的行为与他的所有其他文件夹一样,只是它链接到一个单独的文件夹。我的符号链接都显示为文件有什么原因吗?谢谢。