vsftp配置详解

vsftp配置详解



FTP:文件传输协议(File Transfer Protocol)

是用于在网络上进行文件传输的一套标准协议。它属于网络传输协议的应用层。

FTP服务一般运行在20和21两个端口

20用于在客户端和服务器之间传输数据流(主动模式时使用)
 21用于传输控制流,并且是命令通向ftp服务器的进口。

FTP两种使用模式:

  • 主动PORT模式:PORT模式 由FTP服务器端发起,FTP服务器使用20端口连接客户端的某一个大于1023的随机端口。
  • 被动PASV模式:PASV模式 由FTP客户端发起的,使用一个大于1024的端口连接服务器上大于1023的随机端口。

数据传输模式:

  • ASCII:文本格式
  • BINARY:二进制格式

vsftp:very secure FTP

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

anonymous_enable=YES    允许匿名用户登录local_enable=YES    允许本地用户登录write_enable=YES    允许用户上传local_umask=022     本地用户上传后的权限maskanon_upload_enable=NO   匿名用户上传控制

#anon_mkdir_write_enable=YES    匿名用户创建目录

dirmessage_enable=YES   显示目录注释xferlog_enable=YES      开启日志connect_from_port_20=YES    主动连接使用的数据通道

#chown_uploads=YES      #chown_username=whoever

xferlog_std_format=YES  与wu-ftp相同的日志文件格式

#idle_session_timeout=600#data_connection_timeout=120#nopriv_user=ftpsecure#async_abor_enable=YES#ascii_upload_enable=YES#ascii_download_enable=YES#ftpd_banner=Welcome to blah FTP service.#deny_email_enable=YES#banned_email_file=/etc/vsftpd/banned_emails

#chroot_local_user=NO   若开启,则本地用户默认使用chroot()#chroot_list_enable=NO  如果开启,需提供文件指定生效用户,如果chroot_local_user设置为Yes,则这个列表为不生效用户,默认列表文件是/etc/vsftpd.chroot_list,可通过chroot_list_file参数制定文件#chroot_list_file=/etc/vsftpd/chroot_list

ls_recurse_enable=NO     是否允许用户使用‘ls -R‘命令,递归显示目录listen=YES  以stand alone的方式启动(值为NO时,super daemon方式启动)

#listen_ipv6=YES

pam_service_name=vsftpd     vsftpd服务中PAM验证模块的名称userlist_enable=YES     使用user_list文件控制用户登录(配合userlist_deny)#userlist_deny=YEStcp_wrappers=YES    采用tcp_wrappers进行控制访问

匿名用户相关配置:

anonymous_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES

系统用户相关:

local_enable=YESwrite_enable=YES

辅助认证配置文件/etc/vsftpd/ftpuserspam认证的配置文件:/etc/pam.d/vsftpd

chroot_local_users=YES禁锢所有的本地用户于自己的家目录中;需移除用户对家目录写权限;

chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list 禁锢指定的文件中的用户于自己的家目录中;需移除用户对家目录写权限;

数据传输日志:

xferlog_std_format=YESxferlog_enable=YESxferlog_file=/var/log/xferlog

控制可登录vsftpd服务的用户列表:

userlist_enable=YESuserlist_deny={YES|NO}如果userlist_deny=NO, 只允许user_list文件中的用户如果userlist_deny=YES (默认), 不允许user_list文件中的用户, 输入密码前就会报错


vsftpd配置实例:
Centos 7

  1. 禁锢系统用户于家目录;
  2. 基于mysql进行用户认证;
  3. 不同的虚拟用户拥有不同的权限设定;

安装vsftp、mysql及pam-mysql模块,用于pam连接mysql存储密码:

]# yum isntall vsftpd mariadb-server mariadb-devel pam-devel]# wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz

]# tar xvf pam_mysql-0.7RC1.tar.gz]# cd pam_mysql-0.7RC1]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security]# make]# make install

准备mairadb数据库:

]# mysql_install_db  --user=mysql   初始化数据库]# systemctl start mariadb  启动mariadb]# mysql_secure_installation    安全设置]# mysql -p     输入密码登陆数据库> create database vsftpd;   创建vsftpd数据库

插入虚拟用户信息:> insert into vsftpd.users (name,password) values (‘rick‘,PASSWORD(‘222222‘)),(‘morty‘,PASSWORD(‘222222‘));

授权:> grant all on vsftpd.* to ‘vuser‘@‘localhost‘ identified by ‘333333‘;> grant all on vsftpd.* to ‘vuser‘@‘127.0.0.1‘ identified by ‘333333‘;> flush privileges;

配置vsftpd通过pam_mysql进行认证

]# vi /etc/vsftpd/vsftpd.conf#listen_ipv6=YES    注释该行pam_service_name=vsftpd.mysqlguest_enable=YESguest_username=vuser

模块认证配置文件:

]# vi /etc/pam.d/vsftpd.mysql   添加两行auth required /usr/lib64/security/pam_mysql.so user=vuser passwd=333333 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2account required /usr/lib64/security/pam_mysql.so user=vuser passwd=333333 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

创建映射的系统用户账号:

]# mkdir vpub]# useradd -d /vpub vuser]# mkdir /vpub/{pub,upload}]# chmod u-w /vpub]# setfacl -m u:vuser:rwx /vpub/upload

设置各虚拟用户的权限

]# vi /etc/vsftpd/vsftpd.conf   添加一行指定虚拟用户权限目录user_config_dir=/etc/vsftpd/users_conf

]# mkdir users_conf]# vi rick  虚拟用户的权限都用匿名指令指定anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES

]# vi morty 该用户无上传权限anon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO

测试成功:

lftp [email protected]10.1.235.7:/upload> put issue59 bytes transferred

lftp [email protected]10.1.235.7:/upload> put centos-release put: Access failed: 550 Permission denied. (centos-release)

时间: 2024-08-05 04:21:40

vsftp配置详解的相关文章

linux下vsftp安装配置详解

一:简介 FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件.相比于HTTP,FTP协议要复杂得多.复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令:另一个是数据链路,用来上传或下载数据. FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式. PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命

FTP服务器工作原理的及配置详解

FTP服务器工作原理的及配置详解 FTP工作原理概述 FTP:file transfer protocol 它也是一个C/S架构的服务.server:监听在套接字21/tcp端口.按照套接字监听工作状态可以分为两类: 命令连接:发送文件管理类命令,始终处于连接状态,始终监听在21/tcp端口. 数据连接:主要是实现数据传输,这种连接是按需连接的,而且在传输结束会立刻中断. 对于数据连接还有两种不同的工作模式: 主动工作的模式:服务器根据监听在21端口接收到的命令,使用自己的20号端口,将数据传输

vsftpd2.3.2安装、配置详解

一.vsftpd 简介     Vsftpd是一个基于GPL发布的类UNIX系统的ftp服务器软件.其全称是Very Secure FTP Deamon,在安全性.速度和稳定性都有着不俗的表现.在安全性方面,vsftpd针对程序的权限来设计,以一般身份启动服务,对Linux系统的使用 权限较低:在千兆以太网上,vsftpd的速度可以达到86MB/s:在稳定性上更是优秀,资料表明,完全工作24小时,传输数据达2.6TB,平均并发 连接为1500用户,峰值达4000用户,而这些还是在单机上实现的.此

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director

LVS配置详解

一.LVS系统组成 前端:负载均衡层 –      由一台或多台负载调度器构成 中间:服务器群组层 –      由一组实际运行应用服务的服务器组成 底端:数据共享存储层 –      提供共享存储空间的存储区域 二.LVS术语 Director Server:调度服务器,将负载分发到RealServer的服务器 Real Server:真实服务器,真正提供应用服务的服务器 VIP:虚拟IP地址,公布给用户访问的IP地址 RIP:真实IP地址,集群节点上使用的IP地址 DIP:Director连

logback logback.xml 常用配置详解

一:根节点 包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒.当scan为true时,此属性生效.默认的时间间隔为1分钟. debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态.默认值为false. 例如: <configuration scan="true" scan

php-fpm的配置详解

php5.3自带php-fpm /usr/local/php/etc/php-fpm.confpid = run/php-fpm.pidpid设置,默认在安装目录中的/var/run/php-fpm.pid,建议开启 error_log = log/php-fpm.log错误日志,默认在安装目录中的/var/log/php-fpm.log log_level = notice错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notic

varnish安装及配置详解

varnish系统架构: varnish主要运行两个进程:Management进程和Child进程(也叫Cache进程). Management进程主要实现应用新的配置.编译VCL.监控varnish.初始化varnish以及提供一个命令行接口等.Management进程会每隔几秒钟探测一下Child进程以判断其是否正常运行,如果在指定的时长内未得到Child进程的回应,Management将会重启此Child进程. Child进程包含多种类型的线程,常见的如:Acceptor线程:接收新的连接

Windows下Nginx Virtual Host多站点配置详解

Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 windows7配置Nginx+php+mysql教程. 先说明一下配置多站点的目的:在生产环境中,如果将系统所有代码文件都放在公开目录中,则很容易被查看到系统源码,这样是很不安全的,所以需要只公开index.php的入口文件目录.而同一个服务器中,可能运行多个系统,这样就必须公开多个入口文件目录,以便用不同的