vsftp服务器的搭建

vsftp

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

FTP连接端口

–      控制连接:TCP 21,用于发送FTP命令信息

–      数据连接:TCP 20,用于上传、下载数据

FTP的两种连接模式

客户端连接服务器,开始传送文件:

–      主动模式:服务器在收到客户端传送请求时,会要求客户端开启xx端口号,并用服务器的20端口主动连接xx端口,开始数据传输

 

–      被动模式:服务器在收到客户端传送请求时,会开启oo端口,并通知客户端连接自己,客户端开启xx端口,连接服务器oo端口

 

安装服务

yum –y install vsftpd

 

配置文件解析

 

/etc/vsftpd/vsftpd.conf:主配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器,简称黑名单,这是vsftpd服务在启动后已经决定的,只要在这个列表里面用户都不能访问FTP,没有其它的开关可以控制。

/etc/vsftpd/user_list:也是用于指定哪些用户不能访问FTP 服务器  ,取决于主配置文件

 

解释:

当 userlist_enable=NO 时 user_list列表不生效,列表内和列表外的用户都可登录
当 userlist_enable=YES,userlist_deny=YES 时user_list列表内的用户不可以登录,列表外用户可登录
当 userlist_enable=YES , userlist_deny=NO 时user_list 只允许列表以外的用户登录,并且必须是以命令行的方式

注:userlist_enable= YES(默认) userlist_deny=YES(默认)这两个值都是默认YES的,配置文件里面默认没有这两个参数。

简单来说,如无特殊要求,这两个都可以不用管,不想让谁登录就把他加到user_list列表就行了。

 

/var/ftp                            匿名用户主目录 
/var/ftp/pub                       匿名用户的下载目录

/home/username                       本地用户主ftp文件主目录

                                                                                                                                                   

用户控制列表文件(控制用户使用ftp服务连接服务器)

userlist_enable=YES

开启用户访问控制

userlist_deny=YES

userlist_file=/etc/vsftpd/user_list

写入/etc/vsftpd/user_list文件中的用户不能访问ftp服务器,没有写入的用户可以访问(默认就是如此)

                   vim /etc/vsftpd/user_list

 

用户登录限制目录文件(限制用户登录访问目录)

chroot_local_user=YES

开启用户目录限制(只有此行,把所有用户都限制在用户主目录中)

chroot_local_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

写入/etc/vsftpd/chroot_list文件中的用户可以访问任何目录,其它用户限制在用户主目录

                   vim /etc/vsftpd/chroot_list

 

设置监听的IP地址

listen_address=192.168.18.252

 

设置监听FTP服务的端口号

listen_port=21

 

是否允许下载文件

download_enable=YES

 

限制并发客户端连接数

max_clients=0

 

限制同一IP地址的并发连接数

max_per_ip=0

 

被动模式

开启被动模式

pasv_enable=YES

 

被动模式最小端口

pasv_min_port=24500

 

被动模式最大端口

pasv_max_port=24600

 

 

基本配置

anonymous_enable=YES    //匿名用户允许登录,一般就是none禁止匿名用户登录

anon_root=/var/ftp/   //匿名用户主目录

local_root=xxx        //本地用户主目录

anon_upload_enable=YES

允许匿名用户访问

anonmous_enable

允许匿名用户上传

anon_upload_enable

允许本地用户上传

write_enable=YES

允许匿名用户建立目录

anon_mkdir_write_enable=YES

设置上传的默认文件权限(默认是600)

anon_umask

 

 

常用安全配置

被动模式,连接超时时间

accept_timeout=60

主动模式,连接超时时间

connect_timeout=60

600秒没有任何操作就断开连接

idle_session_timeout=600

资料传输时,超过500秒没有完成,就断开传输

data_connection_timeout=500

 

本地用户基本配置

设置本地用户的FTP根目录(注意目录权限)

local_root=/var/ftp

限制最大传输速率(字节/秒)

local_max_rate=0

 

启动服务

#service vsftpd restart

 

Linux上测试ftp

server:

#useradd -s /sbin/nologin danny //创建ftp登录用户,用户具有 上传 创建 下载 切换目录权限

#echo 123 | passwd --stdin danny

client:

#yum -y install ftp     //安装ftp客户端

#ftp

ftp>open IP

 

ftp非交互式下载脚本

ftp -n <<EOF

open IP         //ftp服务器IP

user $User $Password        //ftp用户名和密码

cd /tmp/backup      //目录

bin    

get mysql_backup.gz     //下载文件名

exit

EOF

 

实例:公司搭建一个ftp服务器备份生产数据

ftp配置文件修改部分如下:

anonymous_enable=NO

ascii_upload_enable=YES
ascii_download_enable=YES       

local_root=/data/backup/ 

其他不变

 

ftp客户端安装ftp即可实现客户端登录ftp服务器拉取数据了

 

posted @ 2017-12-01 14:43  叮伱格斐呃  阅读(186)  评论(0编辑  收藏  举报
Live2D