基于centos7.9搭建SFTP服务

SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,它基于SSH协议,提供了加密的文件传输功能。

安装OpenSSH服务器,默认已经安装

yum install openssh-server -y

创建SFTP用户组和用户

groupadd sftp_users
useradd -g sftp_users -s /sbin/nologin sftp_user
passwd sftp_user

创建SFTP目录结构并设置正确的权限

mkdir -p /sftp/sftp_user/upload
chown root:root /sftp
chmod 755 /sftp
chown root:root /sftp/sftp_user
chmod 755 /sftp/sftp_user
chown sftp_user:sftp_users /sftp/sftp_user/upload
chmod 775 /sftp/sftp_user/upload

修改SSH配置文件

vi /etc/ssh/sshd_config

文件末尾添加

Match Group sftp_users
    ChrootDirectory /sftp/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

配置参数详解

  • Match Group sftp_users
    这行开始一个条件块,指定后续的设置只适用于 sftp_users 组的成员。
  • ChrootDirectory /sftp/%u
    将用户限制在指定的目录中。%u 是一个变量,代表用户名。
    例如,对于用户 “sftp_user”,实际的 chroot 目录将是 /sftp/sftp_user。
  • ForceCommand internal-sftp
    强制使用内部 SFTP 服务器,而不允许普通的 SSH 访问。
  • X11Forwarding no
    禁止 X11 转发,这是一种图形界面转发技术。
  • AllowTcpForwarding no
    禁止 TCP 端口转发,增加安全性。

其他可以配置的参数:

  • PasswordAuthentication yes/no
    允许或禁止密码认证。
  • PermitRootLogin no
    禁止 root 用户直接登录。
  • AllowUsers user1 user2
    指定允许登录的用户列表。
  • AllowGroups group1 group2
    指定允许登录的组列表。
  • DenyUsers user1 user2
    指定禁止登录的用户列表。
  • DenyGroups group1 group2
    指定禁止登录的组列表。
  • PermitEmptyPasswords no
    禁止空密码登录。
  • MaxAuthTries 3
    设置最大认证尝试次数。
  • LoginGraceTime 60
    设置登录超时时间(秒)。
  • ClientAliveInterval 300
    设置服务器向客户端发送保活消息的间隔(秒)。
  • ClientAliveCountMax 3
    设置服务器在断开连接前等待客户端响应的最大次数。
  • UseDNS no
    禁用 DNS 反向查询,可以加快登录速度。
  • AllowAgentForwarding no
    禁止 SSH 代理转发。
  • Banner /etc/ssh/banner
    指定登录前显示的欢迎信息文件。
  • Compression delayed
    延迟压缩直到用户认证成功,可以防止某些攻击

重启

systemctl restart sshd

防火墙开启端口

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

关闭selinux

setenforce 0

测试SFTP连接;连接时会把当前位置默认设置为根目录,上传和下载的默认位置

sftp sftp_user@localhost

上传测试

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
[root@localhost opt]# touch test.txt
[root@localhost opt]# sftp sftp_user@localhost
sftp_user@localhost's password:
Connected to localhost.
sftp> ls
upload
sftp> cd upload/
sftp> ls
sftp> put test.txt
Uploading test.txt to /upload/test.txt
test.txt                                                                              100%    0     0.0KB/s   00:00
sftp>
sftp> exit
[root@localhost opt]# ll /sftp/sftp_user/upload/
total 0
-rw-r--r--. 1 sftp_user sftp_users 0 Sep 20 23:43 test.txt
[root@localhost opt]#

下载测试

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# sftp sftp_user@localhost
sftp_user@localhost's password:
Connected to localhost.
sftp> cd /upload/
sftp> ls
test.txt
Fetching /upload/test.txt to /root/texit
sftp> get test.txt /root/test.txt
Fetching /upload/test.txt to /root/test.txt
sftp> exit
[root@localhost ~]# ls
anaconda-ks.cfg  test.txt
### 回答1: CentOS 7.9搭建FTP服务器的步骤如下: 1. 首先,确保已经安装了vsftpd软件包。可以通过以下命令来安装:`sudo yum install vsftpd`。 2. 安装完成后,启动vsftpd服务。使用以下命令启动服务:`sudo systemctl start vsftpd`。 3. 接下来,设置vsftpd服务开机自启动。使用以下命令来设置:`sudo systemctl enable vsftpd`。 4. 默认情况下,匿名用户是不允许访问FTP服务器的。如果需要允许匿名用户访问,可以编辑vsftpd的配置文件`/etc/vsftpd/vsftpd.conf`,并找到配置项`anonymous_enable`,将其设置为`YES`。 5. 配置本地用户的访问权限。在vsftpd的配置文件中,可以通过添加以下配置来设置本地用户的访问权限: ``` userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO ``` 然后,创建`/etc/vsftpd/user_list`文件,并在文件中添加允许访问FTP服务器的本地用户的用户名。 6. 设置FTP服务器的根目录。默认情况下,FTP用户的根目录位于`/var/ftp`目录下。如果需要修改根目录,可以编辑vsftpd的配置文件,并找到配置项`local_root`,将其设置为所需的目录。 7. 最后,重启vsftpd服务以应用配置的更改。使用以下命令来重启服务:`sudo systemctl restart vsftpd`。 完成上述步骤后,CentOS 7.9上的FTP服务器搭建完成。您可以使用FTP客户端来连接并访问该服务器,具体的连接配置取决于您使用的FTP客户端。 ### 回答2: CentOS 7.9 系统可以使用 vsftpd(Very Secure FTP Daemon)来搭建 FTP 服务器。下面是基本的步骤: 1. 使用管理员身份登录到 CentOS 7.9 服务器。 2. 打开终端,并使用以下命令安装 vsftpd: ``` sudo yum install vsftpd ``` 3. 安装完成后,使用以下命令启动 vsftpd 服务,并设置开机自启动: ``` sudo systemctl start vsftpd sudo systemctl enable vsftpd ``` 4. 接下来,需要配置 vsftpd。使用以下命令编辑配置文件: ``` sudo vi /etc/vsftpd/vsftpd.conf ``` 在文件中,你可以根据需要进行以下设置: - 禁用匿名用户:将 `anonymous_enable=YES` 修改为 `anonymous_enable=NO`。 - 启用本地用户登录:取消注释(删除行首的 `#`)`local_enable=YES`。 - 允许本地用户上传文件:取消注释(删除行首的 `#`)`write_enable=YES`。 你还可以根据需要进行其他设置,然后保存并关闭文件。 5. 在防火墙中打开 FTP 服务器的端口。默认情况下,FTP 使用的端口是 20 和 21。你可以使用以下命令做出相应修改: ``` sudo firewall-cmd --zone=public --add-service=ftp --permanent sudo firewall-cmd --reload ``` 6. 接下来,你需要允许本地用户登录 FTP 服务器并设置其访问目录权限。使用以下命令添加用户: ``` sudo useradd ftpuser ``` 使用以下命令设置用户的密码: ``` sudo passwd ftpuser ``` 使用以下命令将用户的主目录设置为 FTP 目录: ``` sudo usermod -d /var/ftp ftpuser ``` 7. 最后,重新启动 vsftpd 服务以应用配置: ``` sudo systemctl restart vsftpd ``` 现在,你的 CentOS 7.9 服务器已经成功搭建了 FTP 服务器。通过使用 FTP 客户端工具,你可以使用添加的用户名和密码进行连接,并访问指定的 FTP 目录。 ### 回答3: 搭建FTP服务器可以实现网络文件传输和共享,CentOS 7.9是一种常用的Linux操作系统,以下是关于如何在CentOS 7.9上搭建FTP服务器的步骤: 1. 首先,使用root权限登录到CentOS 7.9服务器。 2. 安装vsftpd软件包,vsftpd是一种常用的FTP服务器软件。在终端中使用以下命令进行安装:yum install vsftpd -y 3. 安装完毕后,启动vsftpd服务并将其设置为开机自启动:systemctl start vsftpd && systemctl enable vsftpd 4. 默认情况下,vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf。使用文本编辑器(如vi或nano)打开此文件:vi /etc/vsftpd/vsftpd.conf 5. 根据需要进行配置更改。一些常见的配置选项包括:启用匿名访问(anonymous_enable=YES)、禁止匿名用户上传(write_enable=NO)、添加本地用户访问(local_enable=YES)等。根据需要调整这些选项。 6. 保存并关闭配置文件后,重新启动vsftpd服务以使更改生效:systemctl restart vsftpd 7. 防火墙可能会阻止FTP访问。如果需要,可以使用firewalld或iptables等工具配置防火墙规则,允许FTP流量通过。 8. 检查FTP服务器的工作情况。您可以通过在Web浏览器中输入“ftp://your_server_ip”访问FTP服务器。使用服务器的IP地址来替换“your_server_ip”。 9. 如果需要,您可以进一步调整FTP服务器的相关配置,如限制用户的访问路径、设置访问权限和配额等。 通过以上步骤,您应该能够在CentOS 7.9上成功搭建FTP服务器。根据需要,您可以对FTP服务器进行进一步的配置和定制化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huhy~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值