FTP
发布日期:2021-06-30 20:53:52 浏览次数:3 分类:技术文章

本文共 5174 字,大约阅读时间需要 17 分钟。

本人学习linux现在来说还是属于野路子,自学,没有受过专业的培训,所以写的如果有错误的地方,希望各位给指出,加以改正。

ftp服务的登录方式分为三种:

匿名用户
本地用户
虚拟用户
虚拟FTP服务器
前期 准备工作

rpm -qa |grep vsftp   --查看机器中是否安装了vsftp    yum install -y vsftpd     --安装ftp    systemctl start  vsftpd  --开启服务    ps -eaf|grep vsftp   --查看进程是否起来    netstat -anp|grep :21  --查看ftp的默认端口是否处于监听状态    iptables -F  --清空防火墙规则    vim /etc/selinux/config  --或者关闭selinux    SELINUX=disabled    systemctl stop firewalld  --关闭防火墙    systemctl disable firewalld  -- 也可以设置开机不再启动

匿名用户登录

此时登录,是以匿名用户登录的,可以下载文件,不可以上传文件。

在这里插入图片描述
修改配置文件,配置文件位于/etc/vsftpd/vsftpd.conf

anonymous_enable=YES     --允许匿名用户登录local_enable=YES      --允许本地用户登录write_enable=YES    -- 允许登录的用户拥有写入权限,属于全局设置 anon_upload_enable=YES       -- 匿名用户上传文件的权限anon_mkdir_write_enable=YES  --匿名用户创建文件,写入的权限anon_other_write_enable=YES      --需要自己在配置文件中添加    匿名用户能够删除文件的设置

上面的这些选项,将#号都给取消

将配置文件给修改后还需要将赋予权限

在/var/ftp目录中创建目录并加入ftp组中:

mkdir  upload chown ftp:ftp uploadchmod  775 upload

注意每次修改文件后都需要将服务器重启,客户端也需要将窗口关闭再重新打开

本地用户登录:

最简单的办法:

将ftpusers和userlist内的root给注释掉,即将黑白名单中的root去掉,就能够登录了。
也可以再使用创建一个用户的方法:

mkdir /home/ftpsuer --创建一个用户的主目录useradd -d /home/ftpuser  user1    --创建一个user1用户passwd user1  --修改user1用户的密码chown user1:ftp /home/ftpuser  --将user1用户加入ftp组中chmod 777 /home/ftpuser    --给用户的主目录赋予最大权限

虚拟用户登录:

虚拟用户的配置终于搞完了,其实一开始做的就是对的,原因是使用Windows作为客户端,linux作为服务器,莫名的就是不能登录,今天下午使用linux作为客户端测试了一下,配置成功。至于Windows为什么不行,可能是一个bug吧。各位如果遇到这样的问题,也可以像我这样换做linux当做客户端试一试。

建立虚拟用户目录

useradd -d /ftpuser -s /sbin/nologin vsftpuser

修改ftpuser目录的权限

chmod 777 /ftpuser

建立虚拟用户口令

vim /etc/vsftpd/ftpuserlistmike123john456

生成口令认证文件

yum install pam* libdb-utils libdb* --skip-broken -y

将创建的文本口令转换为库文件

cd /etc/vsftpddb_load -T -t hash -f ftpuserlist ftpuserlist.db

选项-T允许应用程序能够将文本文件转译载入数据库。如果指定了选项-T,那么一定要追跟子选项-t。-t追加在-T选项后,用来指定转译载入的数据库类型。扩展介绍:-t可以指定的数据类型有Btree

Hash Queue Recon数据库。-f参数后面包含用户名和密码的文本文件。

建立PAM认证文件

cd /usr/share/doc/vsftpd-x.x.x/EXAMPLE/VIRTUAL_USERScp vsftpd.pam /etc/pam.d/ftp.vu

在ftp.vu原文件内容修改为下面的内容:

auth required /lib/security/pam_userdb.so  db=/etcvsftpd/ftpuserlistaccount required /lib/security/pam_userdb.so db=/etcvsftpd/ftpuserlist

修改vsftpd.conf配置文件

vim  /etc/vsftpd/vsftpd.confanonymous_enable=NOlocal_enable=YESwrite_enable=YESanon_umask=022guest_enable=YES                   --启用虚拟用户guest_username=vsftpuser   --将虚拟用户映射成本地用户pam_service_name=ftp.vu     --指定由这个pam文件来验证用户

创建单个用户配置文件

首先在vsftpd.conf配置文件中添加一行,用来指定个人配置文件的目录

vim /etc/vsftpd/vsftpd.confuser_config_dir=/etc/vsftpd/vuser

使用以命令创建虚拟用户名为mike和john的配置文件

mkdir /etc/vsftpd/vusercd /etc/vsftpd/vusertouch miketouch john

然后利用vim编辑器打开文件进行编辑

vim /etc/vsftpd/vuser/mikeanon_upload_enable=YESanon_mkdir_enable=YESdownload_enable=NOvim /etc/vsftpd/vuser/johnanon_upload_enable=NOanon_mkdir_enable=YESdownload_enable=YES

重启vsftpd服务

systemctl restart vsftpd

注意一定要将客户端和服务器端都重启

测试虚拟用户

如果没有ftp,需要下载

yum install -y ftp*

ftp 192.168.109.132

在这里插入图片描述

注意当虚拟用户启用以后,本地用户将无法登录FTP服务器,即虚拟用户和本地用户无法共存。

配置文件解析

anonymous_enable=YES  允许匿名用户登录,默认主目录为/var/pub目录,只有下载并无上传权限并且不能够给/var/pub目录赋予777权限,赋予后就不能登录了,但是可以给pub目录下新建一个目录,给新建的目录赋予777权限。local_enable=YES   允许本地用户登录  在文件ftpusers(黑名单)中本地用户不允许登录,在userlist(白名单)中本地用户可以登录(在某些设置后是这样的,一般情况下直接将黑白名单中将本地用户给删除后重启服务,就能都本地登录了)write_enable=YES 允许登录的用户拥有写入权限,属于全局设置local_umask=022  本地用户登录后新建文件时的权限掩码#anon_upload_enable=YES  匿名用户上传文件的权限#anon_mkdir_write_enable=YES 匿名用户创建文件,写入的权限dirmessage_enable=YES  第一次进入服务器时的提示消息xferlog_enable=YES  启用xferlog日志文件connect_from_port_20=YES  使用20号端口进行传输数据#chown_uploads=YES  设置匿名用户上传文件(不是目录哦)的属主#chown_username=whoever  属主名#xferlog_file=/var/log/xferlog  日志文件的存放位置xferlog_std_format=YES   日志文件将以“xferlog”格式写入#idle_session_timeout=600  session超过时间#data_connection_timeout=120 数据传输超过时间#nopriv_user=ftpsecure   指定一个用户,当vsftpd要切换到无权限状态时,使用此用户。#async_abor_enable=YES   激活一个特定的ftp命令 “async  ABOR”#ascii_upload_enable=YES   是否使用assic码方式上传文件#ascii_download_enable=YES   是否使用assic码方式下载文件#ftpd_banner=Welcome to blah FTP service.  定制欢迎信息#deny_email_enable=YES  禁止匿名用户使用某些邮件地址#banned_email_file=/etc/vsftpd/banned_emails   禁止邮件地址的文件路径#chroot_local_user=YES  不允许本地用户切换到上级目录(no是允许,yes是不允许)#chroot_list_enable=YES   系统用户限制在自己的home目录下、#chroot_list_file=/etc/vsftpd/chroot_list    列出的是chroot用户列表#ls_recurse_enable=YES   允许用户使用“ls”命令listen=NO  vsftpd是否以独立的服务启动

`

listen_ipv6=YES

注意:

listen=no和listen_ipv6=yes是不能同时开启的,默认listen=yes开启则listen_ipv6被注释掉,此时vsftpd只能监听到ipv4的请求,不能监听到ipv6的请求

pam_service_name=vsftpd 虚拟用户登录时,需要依据/etc/pam.d/vsftpd中内容进行认证
userlist_enable=YES 是否启用vsftpduserlist文件。
当userlist-deny=no时,只有该列表中的用户可以登录,centos7中默认就是no当userlist-deny=yes时,该列表用户将会在访问前被拒绝
tcp_wrappers=YES 设置vsftpd是否与tcp_wrapper 相结合来进行主机的访问

#如果ftpusers(黑名单)和userlist(白名单)中都有某个用户,则由于ftpusers优先级高的缘故,该用户不能登录

配置虚拟FTP服务器

复制副本

将vsftpd.conf配置文件复制一个副本

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf

为新的网卡添加新的IP地址

ifconfig ens33: 192.168.109.200 netmask 255.255.255.0

这样一个网卡就拥有两个IP地址

修改配置文件

编辑vsftpd2.conf配置文件,需要修改一下内容

vim /etc/vstpd/vsftpd2.conflisten_address=192.168.109.200   --设置虚拟FTP服务器监听的IP地址ftpd_banner=Welcome to virtual FTP  --修改虚拟FTP的欢迎信息anonymous_enable=YES    --将虚拟FTP设置为匿名用户

重启vsftpd服务

systemctl restart vsftpd

在原配置文件vsftpd.conf中,添加一下内容

vim /etc/vsftpd/vsftpd.conflisten_address=192.168.109.132  --旧的IP地址

保存配置文件后再次重启服务

systemctl restart vsftpd

测试

ftp 192.168.109.200

在这里插入图片描述

转载地址:https://liushiya.blog.csdn.net/article/details/89847646 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:DHCP
下一篇:yumdownloade保存到本地rpm包

发表评论

最新留言

很好
[***.229.124.182]2024年04月22日 17时57分08秒