腾讯云下的CentOS7 配置 FTP 服务器

本文详细介绍如何在Linux系统上安装VSFTP,并配置匿名访问及密码认证两种模式下的读写权限,使用户能够进行文件上传、下载等操作。

第一步安装vsftp

* yum -y install vsftpd

第二步配置ftp文件

要实现用户不仅可以下载ftp上的内容 还可以删改增加文件到ftp服务器 需要给ftp的目录赋予写入权限

1.匿名用户

首先修改配置文件

* vim /etc/vsftpd/vsftpd.conf 修改配置文件

* anon_upload_enable=YES                  允许匿名用户上传文件;

* anon_mkdir_write_enable=YES          允许匿名用户创建目录;

* anon_other_write_enable=YES           允许匿名用户其他写入权限。

此时已经可以在自己的电脑上输入ftp://+ip地址进入ftp服务器了 但是还不能更改和上传文件 只能下载文件

此时匿名用户的默认文件夹为

/var/ftp/

要给默认ftp服务器目录赋予写入权限

cd /var/ftp

* chmod o+w pub/* 

2.需要密码登录的ftp服务器

创建用户

* useradd ftpuser

*echo "passwd" |passwd --stdin ftpuser

此时用密码登录的用户目录为

/home/ftpuser

第三步开启ftp服务

* systemctl start vsftpd.service //开启ftp服务

*systemctl enable vsftpd.service //ftp服务自启动

 

转载于:https://www.cnblogs.com/lancelee98/p/9343526.html

<think>我们参考用户的问题:在腾讯云CentOS系统上配置vsftpd.conf文件以启用基于用户名和密码的FTP登录。 根据引用内容,我们知道vsftpd有两种主要访问模式:匿名访问和本地用户模式。用户要求使用用户名和密码登录,因此我们需要配置本地用户模式。 同时,引用中多次提到配置文件vsftpd.conf的位置(默认在/etc/vsftpd.conf)以及一些关键配置项。 步骤概述: 1. 安装vsftpd 2. 配置vsftpd.conf文件(主要步骤) 3. 设置用户和权限(包括创建本地用户、设置密码、目录权限等) 4. 配置PAM(可插拔认证模块)相关(如果需要) 5. 设置防火墙和SELinux(如果启用) 6. 启动并测试 注意:根据引用[2],匿名用户模式和本地用户模式只可同时配置一种。因此,我们需要禁用匿名访问,启用本地用户访问。 详细步骤: 1. 安装vsftpd 在CentOS上,使用yum安装: ``` sudo yum install vsftpd ``` 2. 备份原始配置文件 ``` sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak ``` 3. 编辑配置文件/etc/vsftpd/vsftpd.conf 我们需要修改以下关键参数(根据引用[2][3][5]): - 禁用匿名登录:`anonymous_enable=NO` - 启用本地用户登录:`local_enable=YES` - 允许用户上传文件:`write_enable=YES` (如果需要) - 设置本地用户被限制在其主目录(chroot):`chroot_local_user=YES` (建议开启,增强安全) - 配置允许用户列表文件(可选,如果开启chroot,可能需要配置例外用户列表):`chroot_list_enable=YES` 和 `chroot_list_file=/etc/vsftpd/chroot_list` (如果不需要例外用户,可以不设置) - 其他安全设置: `allow_writeable_chroot=YES` # 允许被限制的用户有写权限(注意:这个选项在较新版本中可能需要,否则可能无法登录) `pam_service_name=vsftpd` # 指定PAM配置文件(默认即可,除非有特殊需求) `userlist_enable=YES` # 启用用户列表 `userlist_deny=NO` # 设置用户列表为允许列表(即只有列表中的用户才能登录) 注意:关于chroot的设置,如果设置`chroot_local_user=YES`,则所有本地用户都被限制在其主目录。如果希望某些用户不被限制,可以同时启用`chroot_list_enable=YES`,并在`chroot_list_file`指定的文件中列出那些不需要限制的用户(注意:此时这些用户将不被限制)。反之,如果设置`chroot_local_user=NO`,然后启用`chroot_list_enable=YES`,那么只有在列表中的用户才会被限制。 这里我们采用将所有本地用户限制在主目录,并且不设置例外列表(即不使用chroot_list_file)的方式。 4. 创建本地用户(如果还没有) 例如,创建一个用户名为ftpuser的用户,并设置密码: ``` sudo adduser ftpuser sudo passwd ftpuser # 设置密码 ``` 5. 设置用户主目录权限 确保用户主目录的权限正确,例如: ``` sudo chmod 750 /home/ftpuser sudo chown ftpuser:ftpuser /home/ftpuser ``` 注意:如果用户需要上传文件,则用户主目录需要有写权限。但是,当我们启用`chroot_local_user=YES`时,vsftpd要求用户主目录不能有写权限(除非设置`allow_writeable_chroot=YES`)。在较新的vsftpd版本中,允许设置`allow_writeable_chroot=YES`来避免这个限制。 6. 配置用户列表(如果启用了userlist_enable) 在/etc/vsftpd/user_list文件中添加允许登录的用户名(每行一个)。例如,添加ftpuser。 同时,确保在/etc/vsftpd/ftpusers(黑名单)中没有该用户(因为黑名单优先级最高,引用[4])。 7. 配置PAM(一般不需要修改,但需要确保用户不在/etc/vsftpd/ftpusers中) 默认情况下,/etc/vsftpd/ftpusers是黑名单,里面的用户禁止登录。所以确保我们创建的用户(如ftpuser)不在这个文件中。 8. 设置防火墙 开放21端口(FTP命令端口)和被动模式所需的端口范围(如果使用被动模式,需要配置pasv_min_port和pasv_max_port,并开放这些端口)。 例如,在firewalld中: ``` sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp # 假设被动端口范围是30000-31000 sudo firewall-cmd --reload ``` 9. 配置SELinux(如果启用) 可能需要设置: ``` sudo setsebool -P ftpd_full_access on ``` 或者更精确地设置: ``` sudo setsebool -P ftp_home_dir on ``` 10. 启动vsftpd服务并设置开机自启 ``` sudo systemctl start vsftpd sudo systemctl enable vsftpd ``` 11. 测试FTP连接 使用FTP客户端(如FileZilla)连接,输入服务器的IP地址、用户名和密码。 注意:被动模式配置(可选) 在被动模式下,客户端连接到服务器指定的端口范围。在vsftpd.conf中添加: pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 并且确保防火墙开放这个端口范围。 根据以上步骤,我们给出一个典型的vsftpd.conf配置示例(针对本地用户登录): ``` # 禁用匿名登录 anonymous_enable=NO # 启用本地用户登录 local_enable=YES # 允许本地用户有写权限(上传、删除等) write_enable=YES # 将所有本地用户限制在其主目录 chroot_local_user=YES # 允许被限制的用户有写权限(重要,否则无法上传) allow_writeable_chroot=YES # 使用用户列表作为允许列表(只有列表中的用户才能登录) userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list # 被动模式配置(可选) # pasv_enable=YES # pasv_min_port=30000 # pasv_max_port=31000 # 其他设置保持默认 ``` 最后,记得在/etc/vsftpd/user_list文件中添加允许的用户名(如ftpuser),并确保该用户不在/etc/vsftpd/ftpusers(黑名单)中。 问题:如何配置被动模式? 回答:在配置文件中添加被动端口的范围,并开放防火墙端口。 注意:在腾讯云上,还需要在安全组中开放相应的端口(21和被动端口范围)。 因此,完整的配置步骤如上。 生成相关问题: 1. 如何配置vsftpd以支持被动模式? 2. 如何为不同的FTP用户设置不同的主目录? 3. 如何限制FTP用户的上传和下载速度? 4. 如何配置虚拟用户登录FTP服务器? 5. 如何解决FTP登录失败的问题?</think>### 在腾讯云CentOS配置vsftpd支持用户名密码登录 #### 步骤1:安装vsftpd ```bash sudo yum install vsftpd -y sudo systemctl start vsftpd sudo systemctl enable vsftpd ``` #### 步骤2:修改主配置文件 `/etc/vsftpd/vsftpd.conf` ```ini # 禁用匿名登录 anonymous_enable=NO # 启用本地用户登录 local_enable=YES # 允许用户写操作(上传/删除) write_enable=YES # 启用用户列表控制(白名单模式) userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list # 将用户限制在自家目录(增强安全) chroot_local_user=YES allow_writeable_chroot=YES # 设置本地用户文件掩码 local_umask=022 # 日志记录 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log ``` #### 步骤3:创建用户并配置权限 1. **创建FTP专用用户**(示例用户 `ftpuser`): ```bash sudo useradd -m -s /sbin/nologin ftpuser sudo passwd ftpuser # 设置密码 ``` 2. **配置用户白名单**: ```bash echo "ftpuser" | sudo tee -a /etc/vsftpd/user_list ``` 3. **检查黑名单**(确保用户不在 `/etc/vsftpd/ftpusers` 中): ```bash sudo grep ftpuser /etc/vsftpd/ftpusers || echo "用户不在黑名单" ``` #### 步骤4:目录权限设置 ```bash sudo chown -R ftpuser:ftpuser /home/ftpuser sudo chmod 750 /home/ftpuser # 允许用户读写,禁止其他用户访问 ``` #### 步骤5:防火墙与SELinux ```bash # 开放FTP端口 sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload # 设置SELinux(如启用) sudo setsebool -P ftpd_full_access on ``` #### 步骤6:重启服务并测试 ```bash sudo systemctl restart vsftpd ftp localhost # 本地测试(使用创建的用户名密码) ``` #### 关键配置说明: 1. **用户认证**:通过 `local_enable=YES` 启用本地用户登录[^2] 2. **安全限制**: - `chroot_local_user=YES` 将用户锁定在自家目录[^5] - `allow_writeable_chroot=YES` 允许被锁定的用户写入文件[^4] 3. **访问控制**: - `/etc/vsftpd/user_list` 为白名单用户列表[^2] - `/etc/vsftpd/ftpusers` 为全局黑名单(优先级最高)[^4] > ⚠️ 注意:配置文件修改后必须重启服务生效。腾讯云服务器需在**安全组**中开放21端口。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值