文件传输协议是文件传输协议的缩写,中文称为文本传输协议,是一套用于网络上文件传输的标准协议,属于网络传输协议的应用层。注意是协议,不是软件。今天的vsftpd是一套基于FTP开发的程序,也是Linux发行版中最受尊敬的FTP服务器程序。它的特点是体积小、重量轻、安全、使用方便。
二、安装vsftpdyum安装vsftpd
三、firewall防火墙和selinux设置防火墙-cmd-list-services//查看防火墙允许的服务。
防火墙-cmd-add-service = ftp-永久//永久打开FTP服务
防火墙-cmd - add-port=20/tcp -永久
防火墙-cmd-add-port = 21/TCP-permanent//允许外部网络访问
防火墙-cmd -重载////重载配置
setsebolftpd _ full _ access 1//selinux设置
setsebool tftp _ home _ dir 1
四、运行,登录useradd测试
passwd测试
ftp本地主机
输入帐户密码并成功登录。
五、局域网测试Centos下的网卡设置在文件夹/etc/sysconfig/network-s/,前缀为ifcfg-后跟网卡名称。
默认情况下,dhcp是打开的。首先,将BOOTPROTO="dhcp "更改为BOOTPROTO="static "进行静态获取。然后编写以下配置:
IPADR = 192 . 168 . 1 . 6
网络掩码=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
BROADCAST设置局域网广播地址,IPADDR是静态IP,NETMASK是子网掩码,gateway是网关或路由地址,DNS是域名系统地址,这里使用本地GATEWAY,也可以设置其他地址,比如Google和360DNS地址。
Systemctl重新启动网络//重新启动网络服务
Ip地址或ifconfig //查看ip地址
然后在windows平台上用FileZilla Client软件登录。
这里有朋友会用虚拟机进行测试,但是无法按照上面的配置进行连接,这是由于虚拟机的网络连接方式的影响。这里有一个简单的方法,就是在虚拟机中直接获取系统的ip地址,然后填入FileZilla客户端。
系统账号默认登录在账号主目录,可以切换到其他目录。
至此,基本的vsftpd已经成功构建。
六、认识vsftpd配置文件vsftpd.conf主程序:/usr/sbin/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
数据根目录:/var/ftp
即使是有经验的老兵也会做好后援
CP/etc/vsftpd/vsftpd . conf/etc/vsftpd/vsftpd . conf . bak
匿名_启用=否//设置不允许匿名访问
Local_enable=YES //设置本地用户访问
Write_enable=YES //设置为Write
Local_umask=022 //设置上传文件的权限屏蔽
Anon_upload_enable=NO //禁止匿名用户上传
Anon_mkdir_write_enable=NO //禁止匿名用户建立目录
Dirmessage_enable=YES //设置打开目录标语功能
xverlog _ enable = yes//设置为启用日志记录
Connect_from_port_20=YES //将端口20设置为数据连接
Chown_uploads=NO //设置为禁止上传文件以改变主机
# chown _ username =无论是谁
xer log _ file =/var/log/xfer log//设置Vsftpd的服务日志保存路径。
xverlog _ STD _ format = yes//将日志设置为使用标准记录格式。
# idle _ session _ time out = 600//set空空闲连接超时,这是此处的默认值
# data _ connection _ time out = 120//set空空闲连接超时,这是此处的默认值。
#nopriv_user=ftptest
Async_abor_enable=YES //设置为支持异步传输。
ascii _上传_启用=是
Ascii_download_enable=YES //设置支持Ascii模式的上传下载功能。
Ftpd _ banner =欢迎使用blah FTP服务。//设置Vsftpd的登录口号。
#deny_email_enable=YES //
#禁止的_电子邮件_文件=/etc/vsftpd/禁止的_电子邮件
chroot_local_user=YES
Chroot_list_enable=YES //禁止用户从他们的FTP主目录中注销。
chroot _ list _ file =/etc/vsftpd/chroot _ list//此文件中的用户不受限制,也不限于此目录。
Ls_recurse_enable=NO //禁止用户登录FTP后使用命令“ls -R”。
该命令将导致服务器性能的巨大开销。
#倾听=否
#listen_ipv6=YES
Userlist_enable=YES //设置userlist_file中的用户不使用FTP。
Tcp_wrappers=YES //设置为支持Tcp包装
allow _ written _ chroot = yes//这样可以解决chroot权限问题
Systemctl重新启动vsftpd //重新启动vsftpd服务
注意这里的“/”是用户账号的主目录,不是系统的根目录。
七、vsftpd虚拟用户的使用Vsftpd提供了三种认证方式:匿名用户认证、本地用户认证和虚拟用户认证。上面的测试用户是本地用户。从安全性来看,虚拟用户是最安全的。接下来,我们开始配置虚拟用户。
虚拟用户配置步骤:
1)建立虚拟FTP用户数据库文件。
2)创建虚拟用户映射的FTP根目录和系统用户。
3)建立支持虚拟用户的PAM认证文件。
4)在vsftpd.conf中添加支持配置
5)为虚拟用户设置权限。
6)虚拟账户登录。
1.建立虚拟文件传输协议用户数据库文件
建立虚拟用户列表文件,该文件是记录vsftpd虚拟用户的用户名和密码的数据文件。我在这里命名为vuser.list,保存在/etc/vsftpd/目录下。
vim vuser.list
一行账号一行密码
vuser
123456
安装伯克利数据库
yum install db4*
安装后
由vuser.list生成用户加密文件
Chmod 600 vuser.db //敏感文件仅限所有者读写。
2.创建虚拟用户及其主目录
user add-d/var/vusers-s/sbin/nologin vftp//创建一个系统用户vftp,并将其主目录设置为/var/vusers
Chmod -Rf 755 /var/vusers/ //修改目录的权限,以便其他用户也可以访问它。
3.建立支持虚拟用户的PAM认证文件
vsftpd的Pam文件在/etc/pam.d/目录下,要先做好备份工作。
cp vsftpd vsftpd.bakvim vsftpd
在添加以下内容之前,请注释掉所有内容:
auth required/lib 64/security/PAM _ userdb . sodb =/etc/vsftpd/vuser//此句用于检查用户密码。不要写后缀。数据库文件中的数据库
account required/lib 64/security/PAM _ userdb . sodb =/etc/vsftpd/vuser//此句用于检查用户是否在有效期内,数据库支持虚拟用户的PAM认证文件。
4.在vsftpd.conf中添加支持配置
Guest_enable=YES //打开虚拟用户模式
Guest_username=vftp //指定一个虚拟用户帐户
PAM _ service _ name = vsftpd.virtual//specify PAM文件
user _ config _ dir =/etc/vsftpd/vusers _ profile//指定虚拟用户的权限配置目录。
Virtual _ use _ local _ priv = NO//虚拟用户和匿名用户拥有相同的权限
5.为虚拟用户设置不同的权限。
mkdir/etc/vsftpd/vusers _ profile//创建新的虚拟用户目录
vim/etc/vsftpd/vu SERS _ profile/vuser//创建一个新的虚拟用户配置文件,文件名应等于上述虚拟用户列表中的帐户名。
Local_root=/var/vusers/vuser //虚拟帐户的主目录
匿名_启用=否
local_umask=022
Anon_upload_enable=YES //上传权限
Anon_mkdir_write_enable //创建文件和目录的权限
Anon_other_write_enable //删除文件和目录的权限
anon _ world _ ready _ only = YES//当“其他人”拥有读取权限时,可以下载该文件
下载_启用=是//下载权限
保存配置并重新启动服务。
systemctl重启vsftpd
八、认识vsftpd传输模式有源方式
在主动模式下,FTP客户端从任意端口5150启动一个端口号为5151的FTP请求;然后服务器返回确认,然后主动发起从服务器本地端口20到客户端监听端口5151的连接请求,最后客户端返回确认。
被动方式
在被动模式下,命令连接和数据连接都由客户端发起。如上图所示,客户端通过随机命令端口5150向服务器的21命令端口发送PASV请求,然后服务器返回到数据端口3267,告诉客户端我连接的是哪个端口监视器。然后,客户端启动到服务器的监听端口3268的数据连接,最后服务器以确认进行回复。
vsftpd默认为被动模式。因此,客户端应该设置被动模式连接。如果到目前为止连接不成功,请查看客户端是否设置了被动传输模式。
九、500 OOPS:priv_sock_get_cmd错误网上很多人说是selinux设置的问题。我按照他们换了,还是不行。最后发现问题出在pam文件里。
auth required/lib 64/security/PAM _ userdb . so db =/etc/vsftpd/vuser
需要帐户/lib 64/security/PAM _ userdb . so db =/etc/vsftpd/vuser
如果你是64位,需要加/lib64/,我遇到的问题就解决了。
如有不妥,请指出。谢谢你。
喜欢就关注我吧~
1.《vsftpd Centos7.5搭建FTP服务-vsftpd(超详细)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《vsftpd Centos7.5搭建FTP服务-vsftpd(超详细)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1734896.html