【转】centos7之vsftp安装和使用

日常用作中,我们常用的是windows的共享,但是我们都知道windows运行不稳定。原来我们用的是centos6.5上的vsftpd,最近决定把centos6.*上的服务都移植到centos7上,好了,不废话了,下面我们来看常用的功能。

服务器初始化操作:

1、为了调试顺利,关闭selinux,firewall,iptables
临时关闭

setenforce 0

永久关闭 selinux

vim /etc/sysconfig/selinux

SELINUX=enforcing 改为 SELINUX=disabled
在这里插入图片描述
重启服务器即可

2、如果不允许root账户直接登录,可以设置sshd_config
3、根据个人需求安装自己需要的程序。

yum install gcc lrzsz vim wget

科普

Port模式(主动模式):
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。

Pasv模式(被动模式):
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

开始安装

1、yum安装vsftp

yum -y install vsftpd

2、启动服务

systemctl start vsftpd.service

3、配置文件路径

/etc/vsftpd

在这里插入图片描述

功能一(匿名):

1、首先我们在企业中ftp服务器,一般情况下都会有个共享服务器,允许员工下载一些公司的软件或者常用的软件包(方便,不用再取外网去下载,也省带宽)

2、vsftp提供了匿名登录,默认anonymous_enable=YES的情况下,就启用了匿名访问,这种情况下你只能把需要给用户的文件,存放到/var/ftp/pub下(默认路径),如果想更改的话需要添加anon_root= /data/pub,后面的路径就是匿名登录后实际访问的目录。如果,总是那么多如果,匿名用户也需要上传的功能的话(一般情况下不会的),vsftpd.conf 配置

anonymous_enable=YES  #允许匿名访问
anon_root= /data/pub     #匿名访问的本地实际目录
local_enable=YES            
anon_upload_enable=YES # 允许匿名用户上传文件(须将全局的write_enable=YES,默认YES)
anon_mkdir_write_enable=YES  #允许匿名用户创建目录
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

3、我们设置了匿名访问的目录是/data/pub里面,还是上传不了文件,有人说直接改成777就可以,但是改成777就无法访问了,这是由于vsftpd的安全性设置,我们需要在pub里面再创建一个upload的文件(文件夹名字随便起),给他一个777的权限就OK了。

功能二(虚拟用户):

1、首先修改配置文件
备份配置文件

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak

2、配置文件内容(虚拟用户必须关闭虚拟用户anonymous_enable=NO)

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd

use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120

data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser

user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES

pasv_min_port=10060
pasv_max_port=10090

accept_timeout=5
connect_timeout=1

3、创建宿主用户

创建 vsftpd 目录

[root@localhost vsftpd]# mkdir /home/vsftpd

创建用户 ftpuser 指定 /home/vsftpd 目录

[root@localhost vsftpd]# useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser

设置用户 ftpuser 的密码

passwd ftpuser

把 /home/vsftpd 的所有权给ftpuser.root

chown -R ftpuser.root /home/vsftpd

4、建立虚拟用户文件

touch /etc/vsftpd/vuser_passwd

编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

vim  /etc/vsftpd/vuser_passwd 

编辑内容,下面是 vuser_passwd 内容

ftp1
12345678
ftp2
12345678
:wq!#保存退出

5、生成虚拟用户数据文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db

6、创建用户配置

建立虚拟用户个人vsftp的配置文件

mkdir /etc/vsftpd/vuser_conf 

进入目录

cd /etc/vsftpd/vuser_conf

创建用户个人配置文件

touch ftp1 ftp2

每个文件(ftp1和ftp2写入如下内容,local_root=/home/vsftpd/ftp1 ,这里写入这个用户的实际存储路径)

local_root=/home/vsftpd/ftp1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

7、创建用户目录

mkdir -p /home/vsftpd/ftp1
mkdir -p /home/vsftpd/ftp2

8、服务运维

重启服务

systemctl restart vsftpd.service

启动服务

systemctl start vsftpd.service

服务状态查看

systemctl status vsftpd.service

9、生成虚拟用户的PAM文件

cd /etc/pam.d/

备份vsftpd文件

cp vsftpd vsftpd.bak

修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib)

#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

#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

客户端调试

1、首先每次更改配置需要重启vsftpd服务。

2、上面每个配置文件中的内容最好是手动键入(曾经的我直接粘贴进去,cat就是没问题,但是粘贴进去就是不行)

3、客户端windows打开cmd到后台进行连接,网页和资源管理器里面都会有缓存也看不到报错。

4、服务器tail -f /var/log/secure查看日志(也可以tail -f /var/log/messages,这个看不出什么,前者更精准)

5、客户端报错示例(坑了我好久,它说chroot没有读到 /etc/vsftpd/chroot_list 这个文件,所以我们新建这个文件就行,记得重启服务)。
在这里插入图片描述
6、如果虚拟用户登录到自己的宿主目录后,不能上传文件的话,服务器端需要在宿主目录里面再新建一个文件夹,给这文件夹777权限,就可以了(直接把宿主目录设置777就会登录不了)

[root@localhost ftp2]# mkdir upload
[root@localhost ftp2]# chmod 777 upload/

7、新增用户的话,需要在 /etc/vsftpd/vsuser.passwd 里面追加用户(删除就是删除用户),记得使用 db_load 重新生成 vsuser.passwd 文件即可,vuser_conf 里面新建一个新建账户的权限文件,宿主目录记得新建存储文件。

8、建议使用ftp工具和cmd验证.

通过 http 访问 ftp

1、事前安装好 nginx
2.、修改 nginx.conf

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
修改成用户目录。
3、这样就可以通过 http:ip地址 直接访问到 该用户目录下的文件了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值