CentOS7|CentOS7 部署FTP文件传输服务器
- FTP文件服务器介绍
FTP是一种文件传输服务器,默认使用TCP协议的20、21端口与客户端进行通信,20端口用于建立数据连接,并传输文件数据;21端口用于建立控制连接,并传输FTP控制命令;
- 数据连接分为主动模式和被动模式
主动模式:服务器向客户端主动发起数据连接(PORT 模式)
被动模式:客户端向服务器主动发起数据连接(PASV 模式)
- 【CentOS7|CentOS7 部署FTP文件传输服务器】FTP服务器软件的种类
FTP服务器软件包括FileZilla Sener、Serv-U、IIS等。而在Linux系统中,vsftpd是目前在Linux/UNIX领域应用比较广泛的一款FTP服务软件,特点是速度快,安全易用,并发量高,可以支持15000个用户并发连接
- 用户类型
本地用户:需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你 linux 系统里面,已经有的用户。
虚拟用户:同样需要用户名和密码才能登录。但是和上面的区别就是,在linux 系统中是没有该用户帐号
- 搭建匿名访问 vsftpd 服务
检查是否已经安装vsftpd软件包
rpm -qa vsftpdyum 安装 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.1/安装 FTP 客户端工具
yum -y install ftp连接vsftpd
ftp 192.168.10.1下载文件
get test.txt上传文件
put test.txt退出
quit 或者 exit
- 配置本地用户访问 vsftpd 服务
关闭之前的匿名访问:
vi /etc/vsftpd/vsftpd.conf#编辑配置文件
anonymous_enable=NOsystemctl 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.1/配置文件/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 文件又是通过明文用户名和密码文件生成而来
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@vincent 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
#sessionoptionalpam_keyinit.soforce revoke
#authrequiredpam_listfile.so item=user sense=deny
file=/etc/vsftpd/ftpusers onerr=succeed
#authrequiredpam_shells.so
#authincludepassword-auth
#accountincludepassword-auth
#sessionrequiredpam_loginuid.so
#sessionincludepassword-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.confanonymous_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/xiaoming #创建一个以虚拟用户名的文件(文件名一定要与登录名一样)[root@vincent vsftpd]# vi vuser_conf/xiaoming
local_root=/var/ftp/xiaoming
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@vincent html]# vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwdaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd# %PAM-1.0
sessionoptionalpam_keyinit.soforce revoke
authrequiredpam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers
onerr=succeed
authrequiredpam_shells.so
authincludepassword-auth
accountincludepassword-auth
sessionrequiredpam_loginuid.so
sessionincludepassword-auth
推荐阅读
- Beego打包部署到Linux
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spring|Spring Boot部署到Resin遇到的问题
- CentOS7 阿里云镜像配置方法
- 如何在阿里云linux上部署java项目
- 部署专题集合
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 一键编译部署Mysql
- 8月16日|8月16日 全网备份
- 改变企业沟通环境|改变企业沟通环境 从部署企业IM开始