centos 7 部署ftp文件传输服务器

FTP文件服务器概述

FTP文件服务器是一种文件传输服务器,默认使用TCP协议的20、21端口与客户端进行通信,20端口用于建立数据连接,并传输文件 数据;21端口用于建立控制连接,并传输FTP控制命令

 

FTP数据连接分为主动模式和被动模式

主动模式:服务器向客户端主动发起数据连接(PORT 模式)

被动模式:客户端向服务器主动发起数据连接(PASV 模式)

FTP服务器软件的种类

凡是可通过文件传输协议(File Transport Protocol)下载文件服务器上的文件,以实现资源共享的,我们称之为 ftp服务器

FTP服务器软件包括FileZilla Sener、Serv-U、IIS等。而在Linux系统中,vsftpd是目前在Linux/UNIX领域 应用比较广泛的一款FTP服务软件,特点是速度快,安全易用,并发量高,可以支持15000个用户并发连接

 

FTP用户类型

匿名用户:就是不需要用户名,密码。就能登录到服务器电脑里面

本地用户:需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你 linux 系统里面,已经有的用户

虚拟用户:同样需要用户名和密码才能登录。但是和上面的区别就是,在linux 系统中是没有该用户帐号

搭建匿名访问 vsftpd 服务

检查是否已经安装vsftpd软件包:
rpm -qa vsftpd

yum 安装 vsftpd:
yum -y install vsftpd

查找 vsftpd 的文件位置:
whereis vsftpd

启动 ftp 服务:
systemctl start vsftpd

查看监听的端口号:
netstat -tunlp | grep vsftpd

查看防火墙的状态:
firewall-cmd --state

创建测试文件:
mkdir -p /var/ftp/pub/ && echo "this is ftptest" >test.txt

使用 windows 客户端访问:
ftp://192.168.10.100/

安装 FTP 客户端工具:
yum -y install ftp

连接vsftpd:
ftp 192.168.10.100

下载文件:
get test.txt

上传文件:
put test.txt

退出:
quit 或者 exit

配置本地用户访问 vsftpd 服务

关闭之前的匿名访问:
vi /etc/vsftpd/vsftpd.conf #编辑配置文件
anonymous_enable=NO

systemctl restart vsftpd   #重新启动服务

mkdir -p /var/ftp/html     #创建目录

useradd -g root -M -d /var/ftp/html -s /sbin/nologin ftptest #添加系统用户

chown -R ftptest:root /var/ftp/html #配置权限

passwd ftptest #设置密码

cd /var/ftp/html && echo "this is ftptest" >ftptest.txt #添加测试文件


使用 windows 客户端访问:
ftp://192.168.10.100/


配置文件/etc/vsftp/vsftpd.conf 的一些常用权限解释:

anonymous_enable=YES         #允许匿名用户访问
write_enable=YES             #允许登录用户有写权限。属于全局设置
anon_root=var/ftp            #指定匿名用户登录的目录
anon_upload_enable=YES       #允许匿名用户有上传文件的权限
anon_mkdir_write_enable=YES  #允许匿名用户有新增目录的权限
chown_username=username      #设置匿名用户上传文件的属主名

配置虚拟用户的 vsftpd 服务

虚拟用户访问 vsftpd 服务是得经过用户认证的,虚拟用户的用户认证是通过 pam 方式去认证的,pam 文 件里面指定了认证的db 文件,db 文件又是通过明文用户名和密码文件生成而来

第一步:修改配置文件指定用户认证是pam方式认证

第二步:修改pam配置文件指定db文件的路径

第三步:生成db文件

(1)第一步指定 pam 文件(系统默认已经指定了):
vi /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd


(2)第二步编辑 pam 文件指定认证的 db 文件:/etc/pam.d/vsftpd,把文件内容全部注释掉,在最上面加
上以下俩行配置:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

[root@vincent1 html]# vi /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
#%PAM-1.0
#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


(3)第三步生成 db 文件,由于 db 文件是通过明文用户名和密码文件生成而来,所以先创建一个保存明文用
户名和密码的文件 vuser_passwd.txt

vi /etc/vsftpd/vuser_passwd.txt #该文件奇行为用户名,偶行为密码

通过以下命令生成 db 文件:
cd /etc/vsftpd/ && db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db

(4)接下来就是根据需要和以上各文件信息来修改配置文件 /etc/vsftpd/vsftpd.conf 了,启用或更改以
下配置的值:
vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO       #禁用匿名登录
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES     #启用限定用户在其主目录下

手动添加:
guest_enable=YES          #设定启用虚拟用户功能

guest_username=ftptest    #指定虚拟用户的宿主用户,CentOS 中已经有内置的ftp 用户了

user_config_dir=/etc/vsftpd/vuser_conf #虚拟用户配置文件存放的路径

allow_writeable_chroot=YES #如果启用了限定用户在其主目录下需要添加这个配置


(5)对虚拟用户权限与路径进行配置
mkdir /etc/vsftpd/vuser_conf     #创建一个目录存放文件

vi /etc/vsftpd/vuser_conf/vincent #创建一个以虚拟用户名的文件(文件名一定要与登录名一样)

[root@vincent1 vsftpd]# vi vuser_conf/vincent

local_root=/var/ftp/vincent
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=yes

配置系统用户的 FTP与配置虚拟用户的 FTP 共存

修改配置文件/etc/pam.d/vsftpd,把原来的auth required改为auth sufficient

[root@vincent1 html]# vi /etc/pam.d/vsftpd

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
# %PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusersonerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值