SFTP配置

文章详细介绍了如何设置SFTP服务器,以实现不同用户访问特定目录的需求。步骤包括创建目录、用户,设置用户权限,禁止切出家目录,以及配置管理用户权限。通过这些配置,用户benniao1和benniao2被限制在各自的目录中,无法访问彼此的文件,而admin用户则拥有对两个目录的读写权限。

1.需求

新增sftp配置满足如下需求:

  1. 用户 benniao1 访问目录 /sftp/dir1

  1. 用户 benniao2 访问目录 /sftp/dir2

  1. sftp用户不允许登录操作系统

  1. sftp用户隔离,不能互相访问

  1. admin用户对dir1,dir2目录有读写权限

2.实现

2.1 创建目录

mkdir -p /sftp/dir1
mkdir -p /sftp/dir2

2.2 创建用户

不允许登录操作系统,并自动登录对应目录

useradd -M -s /sbin/nologin benniao1
useradd -M -s /sbin/nologin benniao2
usermod -d /dir1 benniao1
usermod -d /dir2 benniao2
echo'123456' | passwd --stdin benniao1
echo'123456' | passwd --stdin benniao2
chown benniao1.benniao1 /sftp/dir1
chown benniao2.benniao2 /sftp/dir2

2.3 禁止切出家目录

vi /etc/ssh/sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp
Match User     benniao1,benniao2
ChrootDirectory /sftp

2.4 重启sshd

重启sshd,使sftp 配置生效

systemctl restart sshd

2.5 配置管理用户

允许admin用户读写sftp目录,并禁止其他用户访问

usermod -a -G benniao1,benniao2 admin
chmod 770 /sftp/dir1
chmod 770 /sftp/dir1

### 3.1 SFTP 文件上传大小限制的原因及解决方法 SFTP 本身并不直接限制文件上传的大小,但 OpenSSH 服务器配置或系统资源限制可能导致上传失败。例如,在某些情况下,用户可能会遇到上传大文件时被中断的问题。这种限制通常与用户资源限制(ulimit)有关。可以通过以下方式进行排查和调整: - **检查用户资源限制** 使用 `ulimit -a` 命令可以查看当前用户的资源限制,其中 `file size` 项表示单个文件的最大大小(单位为 KB)。如果该值较低,可以在 `/etc/security/limits.conf` 中为特定用户或用户组设置更高的限制: ``` sftpuser soft fsize 10485760 sftpuser hard fsize 20971520 ``` 上述配置将软限制设置为 10GB,硬限制设置为 20GB。设置完成后,需要重启 SSH 服务以生效: ```bash systemctl restart sshd ``` - **系统内核限制** 某些系统可能通过内核参数限制文件大小。可以通过修改 `/etc/sysctl.conf` 中的 `fs.file-max` 参数来调整系统级别的文件大小限制,并使用以下命令应用更改: ```bash sysctl -p ``` ### 3.2 SFTP 路径限制的原因及解决方法 在 SFTP 配置中,路径限制通常由 `ChrootDirectory` 指令引起。该指令用于将用户限制在其指定的目录中,防止其访问系统其他部分。例如: ``` Match User sftpuser ChrootDirectory /app/iwshome/ftp ForceCommand internal-sftp AllowTcpForwarding no ``` 在上述配置中,用户 `sftpuser` 被限制在其根目录 `/app/iwshome/ftp` 中。需要注意的是,`ChrootDirectory` 所指定的目录及其所有父目录必须由 root 拥有,且不能有写权限,否则 SSH 服务会拒绝连接。用户主目录可以设置为 `/app/iwshome/ftp/home/sftpuser`,并在该目录中赋予用户写权限: ```bash chown root:root /app/iwshome/ftp chmod 755 /app/iwshome/ftp mkdir -p /app/iwshome/ftp/home/sftpuser chown sftpuser:sftpuser /app/iwshome/ftp/home/sftpuser ``` - **目录权限设置** 如果用户在上传文件时提示“权限被拒绝”,应检查目标目录的权限设置。可以使用 `ls -l` 查看目录权限,并使用 `chmod` 或 `chown` 修改权限。例如,为特定用户组增加写权限: ```bash chmod g+w /app/iwshome/ftp/upload ``` 或者更改目录所有者: ```bash chown sftpuser:sftpuser /app/iwshome/ftp/upload ``` ### 3.3 SFTP 用户安全限制与管理 为了进一步提升安全性,可以结合用户组管理,对多个 SFTP 用户进行统一限制。例如,创建一个专用用户组 `sftponly`,并将所有 SFTP 用户加入该组。然后在 SSH 配置中使用 `Match Group` 指令进行统一限制: ``` Match Group sftponly ChrootDirectory /app/iwshome/ftp ForceCommand internal-sftp AllowTcpForwarding no ``` 这种方式可以避免为每个用户单独配置,提高可维护性。 此外,可以通过日志记录来监控用户行为。在 `internal-sftp` 指令中添加 `-f AUTH -l INFO` 参数,可以将操作日志记录到系统认证日志中(如 `/var/log/auth.log`): ``` Subsystem sftp internal-sftp -f AUTH -l INFO ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值