欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux 部署vsftp服务及详解

程序员文章站 2023-09-20 19:20:23
一、FTP服务概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议 可以在局域网 ......

一、ftp服务概述:

ftp服务器(file transfer protocol server)是在互联网上提供文件和访问服务的计算机,它们依照ftp协议提供服务。

ftp(file transfer protocol: 文件传输协议)作用: internet 上用来传送文件的协议

    可以在局域网传输,当然也可以在广域网传输ftp文件。

vsftp:(linux系统相称,也是linux系统中的安装包名称)

vsftp是一个基于gpl发布的类unix系统上使用的ftp服务器软件,它的全称是very secure ftp 从此名称可以看出来,编制者的初衷是代码的安全。

特点:

它是一个安全、高速、稳定的ftp服务器;

模式:

c/s 模式

vsftp端口:

        20 (传数据)     21 (传指令)     #传数据端口为20、用户连接端口为21.

安装vsftp服务器端(vsftpd)、客户端(lftp

[root@localhost ~]# rpm -ivh /mnt/packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm

或:

yum -y install vsftpd

二、安装客户端:

[root@localhost ~]# yum install -y vsftp

 

vsftp主配置文件位置和其他ftp相关配置文件:

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问ftp 服务器。  黑名单

/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。  白名单

vim  /etc/vsftpd/user_list

 

# 如果userlist_deny= yes(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码

#prompt 提示

/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本

/var/ftp/:默认情况下匿名用户的根目录;

 

修改配置文件:

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back        #修改配置文件先备份,失误的时候可以在做恢复;

[root@localhost ~]# vim  /etc/vsftpd/vsftpd.conf       #vsftp 配置文件;

 

1.允许匿名用户访问:

anonymous_enable=yes             #是否允许匿名用户访问;(默认yes)

2.允许匿名用户上传文件并可以创建目录:

anon_upload_enable=yes            #允许匿名用户上传文件;

anon_mkdir_write_enable=yes        #允许匿名用户创建目录;

3.允许匿名用户删除文件和文件命名:

anon_other_write_enable=yes        #允许匿名用户命名文件删除文件;

4.设置匿名用户所上传的文件的默认掩码值:

anon_umask=022                      #......

5.设置匿名用户的ftp根目录(默认为/var/ftp/)

anon_root=/var/ftp                  #......

给匿名用户权限最好不要太大,建议755   

注:实际生活中,匿名用户只是只读访问,写的权限也没有。

本地用户:

1.允许本地用户登录:

local_enable=yes                #允许本地用户登录

2.设置本地用户的ftp根目录(默认为用户的宿主目录)

local_root=/var/ftp

3.本地用户上传的默认权限掩码值:

local_umask=022

4.设置本地用户上传写入支持:

write_enable=yes                #启动上传写入支持

5.为不同的虚拟用户建立独立的配置文件:

    user_config_dir=/etc/vsftp/vusers_dir      #设置从/etc/vsftp/vusers_dir目录中查找每个用户的独立配置文件;

添加虚拟用户:

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

  pam_service_name=vsftpd.vu       //修改

userlist_enable=no                  //修改

anon_root=/var/ftp/soft             //末尾添加

guest_enable=yes                //添加

guest_username=zhangsan          //添加

user_config_dir=/etc/vsftpd/vusers_dir    //添加

allow_writeable_chroot=yes           //添加

########################################################################

例: 为虚拟用户建立独立配置文件。

mkdir /etc/vsftpd/vusers_dir/             #创建用户配置文件夹;

cd  /etc/vsftpd/vusers_dir/               #进入/etc/vsftpd/vusers_dir/下;

    vim  john                          #为用户john建立独立的配置文件;

local_root=/var/ftp

anon_umask=022

write_enable=yes 

anon_mkdir_write_enable=yes

 

chroot_list_enable=yes:激chroot 功能

chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名

allow_writeable_chroot=yes :允许锁定的用户有写的权限

     

设置好本地权限:

启动服务

[root@localhost vsftpd]# systemctl start vsftpd

[root@localhost vsftpd]# systemctl enable vsftpd

##注意关闭iptables 和selinux

[root@localhost ~]# netstat -antup | grep ftp

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   listen

重启vsftpd 服务使配置生效:

service  vsftpd  restart

客户端登录lftp:

[root@localhost ~]# lftp  192.168.0.63  -u  team1,123456