需要锁定那个 Linux 服务器,以便某些远程用户只能访问特定目录并且只能用于文件上传和下载目的吗?Jack Wallen 向您展示了方法。
图片:生产 Perig/Shutterstock
当您拥有具有 SSH 访问权限的服务器时,除非您进行了其他配置,否则任何在该系统上拥有帐户的用户都可以登录,如果他们拥有权限和技能,则可以对您的服务器造成严重破坏。
参见:您需要了解的 40 多个开源和 Linux 术语(TechRepublic Premium)
你不想那样。
您可以做的是使用 chroot jail 来限制这些用户。通过这样做,您会严重限制这些用户可以在您的系统上执行的操作。事实上,任何被限制在 chroot jail 中的用户都可以:
只能通过 sftp 访问服务器
只访问特定目录
这是对您的 Linux 服务器的一个很好的安全补充,如果您需要这样的用例,请将其视为必须做的。如果您的服务器存放敏感数据并且您不希望用户查看这些文件和文件夹,这一点尤其重要。
这种设置并不是那么具有挑战性。事实上,配置比寻找部署该功能的方法要容易得多。但是,当您确实需要严格限制用户可以在您的 Linux 服务器上访问的内容时,这是一种万无一失的方法。
要完成这项工作,您需要一个正在运行的 Linux 实例和一个具有 sudo 权限的用户。而已。让我们创造一些安全魔法。
我们必须做的第一件事是创建一个新组并向其中添加用户。使用以下命令创建组:
sudo groupadd 受限
接下来,使用以下命令将用户添加到组中:
sudo usermod -g 限制用户名
其中 USERNAME 是您要添加到受限组的用户。
参见:Linux 30 周年:庆祝开源操作系统(免费 PDF) (TechRepublic)
使用以下命令打开 SSH 守护程序配置文件:
须藤纳米 /etc/ssh/sshd_config
寻找线(靠近底部):
子系统 sftp /usr/lib/openssh/sftp-server
将该行更改为:
子系统 sftp internal-sftp
在文件底部,添加以下内容:
比赛组受限 Chroot 目录 /home/ ForceCommand 内部-sftp AllowTcpForwarding 否 X11转发无
保存并关闭文件。使用以下命令重新启动 SSH:
须藤 systemctl 重启 ssh
现在,返回到另一台机器并尝试与用户通过 SSH 连接到服务器,例如:
ssh 奥利维亚@192.168.1.147
你会看到警告:
此服务仅允许 sftp 连接。与 192.168.1.147 的连接已关闭。
为了让受限组中的任何用户登录到服务器,他们必须像这样使用 sftp:
sftp 用户名@服务器
其中 USERNAME 是用户名,SERVER 是服务器的 IP 地址或域。一旦他们成功登录,他们就会进入 sftp 提示符,在那里他们可以使用 put 和 get 命令来回传输文件。这些受限制的用户只能将文件上传到他们的主目录。当受限用户最初登录时,他们将位于 /home 目录中。因此,要成功上传,他们必须使用以下命令切换到他们的主目录:
光盘奥利维亚
一旦进入他们的主目录,他们就可以发出如下命令:
把文件 1
只要该文件位于他们登录服务器的机器的当前工作目录中,它就会上传得很好。如果这些用户只需要将文件下载到他们的本地机器,他们会使用如下命令:
获取文件 1
我意识到这是一个非常有限的配置,用例非常有限,但是在您的 Linux 管理员职业生涯的某个时刻,您将遇到需要限制用户登录 chroot jail 的实例。这是一种方法。
评论专区