Ubuntu 配置 SFTP 服务器

2021SC@SDUSC

因为本次项目使用了安全FTP服务器作为文件的存储、组织、管理工具,所以有必要介绍一下在linux环境下搭建SFTP服务的整体流程。

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

Ubuntu默认只安装openssh-client,需要手动安装openssh-server或者sftp-server。

sudo apt update sudo apt install openssh-server 

在Ubuntu系统上开通sftp文件服务,允许某些用户上传及下载文件。

但是这些用户只能使用sftp传输文件,不能使用SSH终端访问服务器,并且sftp不能访问系统文件。

系统管理员则既能使用sftp传输文件,也能使用SSH远程管理服务器。

sftp用户、用户组的创建

  • 添加sftp用户,创建 sftp 用户组
sudo adduser alice sudo addgroup sftp-users   sudo usermod -G sftp-users -s /bin/false alice 
  • 创建sftp服务器的管理员身份,并且加入 ssh用户组(不限制他的shell操作权限)
sudo adduser admin sudo addgroup ssh-users  sudo usermod -a -G ssh-users admin 

创建文件服务器目录

  • 创建服务器文件目录
 sudo mkdir /home/sftp_root  sudo mkdir /home/sftp_root/shared  sudo chown admin:sftp-users /home/sftp_root/shared  sudo chmod 770 /home/sftp_root/shared 

默认允许所有用户或者用户组登录,若仅允许指定用户或者用户组访问,按照以下格式配置。

 AllowUsers user1 user2 AllowGroups group1 group2 

权限配置

sudo vim /etc/ssh/sshd_config 

在sshd_config文件的最后,添加以下内容:

AllowGroups ssh-users sftp-users Match Group sftp-users ChrootDirectory /home/sftp_root AllowTcpForwarding no X11Forwarding no ForceCommand internal-sftp 

这样配置的目的是:

  • 只允许ssh-uers及sftp-users通过SSH访问系统,其中ssh-uers用户组可以使用ssh,并且不受其他限制。

    而SFTP用户组仅能使用SFTP进行访问,且不能使用shell

  • 针对sftp-users用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件;

  • 禁止TCP Forwarding和X11 Forwarding

另外需要注意的是:ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。

需要注意的一点的是,现在所有需要远程连接的用户都必须加入 ssh-users 才行。

如将用户 songyangji 加入 ,这样ta就可以使用ssh连接本机。

sudo usermod -a -G ssh-users songyangji 
  • 限制ssh连接的访问IP

仍然是

sudo vim /etc/ssh/sshd_config 
 AllowUsers root@10.10.10.*  AllowUsers charles@10.10.10.*  AllowUsers john@10.10.10.* 
  service ssh restart 

原文链接:https://blog.csdn.net/qq_44846324/article/details/122029609

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享