FTP服务搭建(基于腾讯轻量级应用服务器 Cent OS 7.X搭建)

什么是FTP

FTP 是File Transfer Protocol (文件传输协议)的英文简称,用于在Internet上控制文件的双向传输。

FTP的作用

让用户连接一个(运行着FTP服务器程序的)远程计算机,可以根据权限查看、上传、下载文件。

温馨提示:从信息安全角度考虑,一般小公司使用较多。

搭建FTP服务(使用vsftpd)

1、安装vsftpd

[root@VM-16-8-centos ~]# systemctl start vsftpd.serviceyum install -y vsftpd

2、启动vsftpd

[root@VM-16-8-centos ~]# systemctl start vsftpd.service

3、查看进程与端口

[root@VM-16-8-centos ~]# ps aux|grep vsftpd
root     16553  0.0  0.0  53292   572 ?        Ss   16:17   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root     16671  0.0  0.0 112812   980 pts/2    S+   16:18   0:00 grep --color=auto vsftpd
      
[root@VM-16-8-centos ~]# netstat -lntp |grep vsftpd
tcp6       0      0 :::21                   :::*                    LISTEN      16553/vsftpd  

访问FTP

从信息安全的角度,需要访问FTP 的用户,不需要登录系统;故需要设置虚拟用户仅用于访问FTP服务(默认情况下ftp不允许root用户登录)

1、添加虚拟用户,仅可访问 FTP

[root@VM-16-8-centos ~]# useradd -s /sbin/nologin virftp

2、编辑虚拟用户配置文件:创建用户名~①、密码,并将该文件转换为计算机可识别的二进制文件
注:密码文件vsftpd_login 奇数行为:用户名,偶数行为:密码

[root@VM-16-8-centos ~]# vim /etc/vsftpd/vsftpd_login
[root@VM-16-8-centos ~]# cat /etc/vsftpd/vsftpd_login 
user1
123456
[root@VM-16-8-centos vsftpd_user_conf]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@VM-16-8-centos vsftpd_user_conf]# ll /etc/vsftpd/
total 40
-rw------- 1 root root   125 Jun 10  2021 ftpusers
-rw------- 1 root root   361 Jun 10  2021 user_list
-rw------- 1 root root  5273 Jan 19 17:28 vsftpd.conf
-rwxr--r-- 1 root root   338 Jun 10  2021 vsftpd_conf_migrate.sh
-rw------- 1 root root    15 Jan 19 16:43 vsftpd_login
-rw-r--r-- 1 root root 12288 Jan 24 17:21 vsftpd_login.db
drwxr-xr-x 2 root root  4096 Jan 19 17:02 vsftpd_user_conf

3、修改密码文件权限(默认为644,修改为600,即:仅root用户可读写)

[root@VM-16-8-centos ~]# ll  /etc/vsftpd/vsftpd_login 
-rw-r--r-- 1 root root 15 Jan 19 16:43 /etc/vsftpd/vsftpd_login
[root@VM-16-8-centos ~]# chmod 600  /etc/vsftpd/vsftpd_login 
[root@VM-16-8-centos ~]# ll  /etc/vsftpd/vsftpd_login 
-rw------- 1 root root 15 Jan 19 16:43 /etc/vsftpd/vsftpd_login

4、创建虚拟用户配置文件目录

[root@VM-16-8-centos ~]# mkdir /etc/vsftpd/vsftpd_user_conf

5、编辑虚拟用户~① 的配置文件,写入如下内容
注:文件名需要与虚拟用户~①的名称一致,此处为user1

[root@VM-16-8-centos ~]# cd /etc/vsftpd/vsftpd_user_conf
[root@VM-16-8-centos vsftpd_user_conf]# vim user1
[root@VM-16-8-centos vsftpd_user_conf]# cat user1 
local_root=/home/virftp/user1   #指定用户user1的家目录
anonymous_enable=NO             #是否允许匿名用户登录,此处为否
write_enable=YES                #是否允许写入,此处为否
local_umask=022                 #定义新文件或目录的权限,此处为只读
anon_upload_enable=NO           #是否允许匿名用户上传,此处为否
anon_mkdir_write_enable=NO      #是否允许创建目录并写入,此处为否
idle_session_timeout=600        #设置超时时间,此为600秒
data_connection_timeout=120     #设置数据传输超时时间,此为120秒
max_clients=10                  #最大客户端数量,此为10个

6、创建虚拟用户~①的家目录,并更改其所属权限(即:拥有者及所属组)

[root@VM-16-8-centos vsftpd_user_conf]# mkdir /home/virftp/user1
[root@VM-16-8-centos vsftpd_user_conf]# ll /home/virftp/
total 4
drwxr-xr-x 2 root root 4096 Jan 19 17:09 user1
[root@VM-16-8-centos vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[root@VM-16-8-centos vsftpd_user_conf]# ll /home/virftp/
total 4
drwxr-xr-x 2 virftp virftp 4096 Jan 19 17:09 user1

7、 配置虚拟用户的密码
注:增加以下信息
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

[root@VM-16-8-centos vsftpd_user_conf]# vim /etc/pam.d/vsftpd
[root@VM-16-8-centos vsftpd_user_conf]# cat /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
session    optional     pam_keyinit.so    force revoke
auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required	pam_shells.so
auth       include	password-auth
account    include	password-auth
session    required     pam_loginuid.so
session    include	password-auth

8、修改vsftpd配置文件

vim /etc/vsftpd/vsftpd.conf

将anonymous_enable=YES 改为NO 即不允许匿名用户登录
将anon_upload_enable=YES 改为NO 即不允许匿名用户上传
将anon_mkdir_write_enable=YES 改为NO 即不允许创建目录并写入

增加chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

9、停止、启动服务并查看进程、端口

[root@VM-16-8-centos vsftpd_user_conf]# systemctl stop vsftpd
[root@VM-16-8-centos vsftpd_user_conf]# systemctl start vsftpd
[root@VM-16-8-centos vsftpd_user_conf]# ps aux |grep vsftpd
root     26960  0.0  0.0  53292   576 ?        Ss   17:29   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root     26997  0.0  0.0 112812   980 pts/2    S+   17:29   0:00 grep --color=auto vsftpd
[root@VM-16-8-centos vsftpd_user_conf]# netstat -lntp |grep vsftpd
tcp6       0      0 :::21                   :::*                    LISTEN      26960/vsftpd  

10、测试FTP服务

本环境搭建在腾讯云-轻量应用服务器-Cent OS 7.x

需要配置防火墙的入规则:允许访问FTP服务-20、21端口

【一】、使用Windows 10 命令行访问FTP

10.1)使用Windows徽标+R,在运行界面输入:ftp ,回车
使用Windows徽标+R
10.2)在ftp命令行界面,输入 open IP地址 ,随后根据提示输入用户名、密码。提示230 Login successful 及标志成功访问
在这里插入图片描述
【二】、使用Windows资源管理器访问FTP

10.3)在资源管理器输入 ftp://IP地址,在登录身份验证界面输用户名 user1 和密码123456
在这里插入图片描述
如果遇到以下错误:

在这里插入图片描述
1)、检查防火墙(FTP -20、21)端口是否放行
2)、设置IE浏览器>>Internet选项>>高级>>将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值