旅途之为企业搭建linux VSFTP Server

一、vsftp简介
               vsftp是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。安全性是编写vsftp的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。在速度方面:使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。在稳定方面:VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据RedHat的Ftp服务器()的数据,vsftp服务器可以支持15000个并发用户
               ftp全称:file transfer protocal
               ftp是一种工作于应用层的文件共享服务
                       文件共享服务:
                               ftp    (应用层)
                               nfs    (Network File System--->RPC:Remote procedure Call远程过程调用)
                               samba    (Cifs/smb)
                        ftp连接:
                               命令(控制)连接
                                    port:tcp/21
                                    status:连接建立之后始终在线
                               数据连接     
                                    port:
                                        主动模式(Server收到Client的请求之后,主动连接Client) port:tcp/20
                                        被动模式(控制链接建立后,S发送报文给C,包含S已开放的port,之后C主动链接S) port:一般为>5000的随机port
                                    status:连接按需打开/按需关闭
                               ftp数据传输模式:
                                    二进制/文本
                                    自动模式(依据源文件格式定义)
                        ftp server软件:
                                vsftpd --- very secure ftp daemon
                                proftpd
                                wu-ftpd
                                pureftpd
                                Server-u
                                filezilla
                        ftp client软件:
                                CLI:
                                    ftp/lftp
                                GUI:
                                    gftpd/FlashFXP/filezilla

二、vsftpd文件

1、基本文件

/etc/vsftpd/vsftpd.conf   主配置文件
                                /etc/init.d/vsftpd   服务脚本
                                /usr/sbin/vsftpd   主程序

/var/ftp   vsftpd的主目录,也是ftp用户的家目录(运行ftp的用户一定没有对“/var/ftp”目录的写入权限)
                          基于PAM实现用户认证
                                支持虚拟用户
                                     /etc/pam.d/*
                                     /lib/security/*或/lib64/security/*
                          ftp用户:
                                  匿名用户------->系统用户(通过映射为系统用户)匿名用户用户名:anonymous
                                  虚拟用户------->系统用户(通过映射为系统用户)
                                  系统用户
               2、vsftpd.conf配置文件详解

vim /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  匿名用户是否可以删除文件
                                   dirmessage_enable=YES     当用户进入目录是否显示欢迎信息(一般定义以“.message”命名的隐藏文件)
                            传输日志:   
                                   xferlog_enable=YES   是否启用传输日志功能
                                   xferlog_file=/var/log/xferlog   传输日志文件位置
                                   xferlog_std_format=YES   日志是否使用标准格式
                            文件属主/组
                                   chown_upload=YES   用户上传完文件是否改变文件属主/组
                                   chown_username=whoever   上传之后的文件的属主/组变更为谁
                            链接超时
                                   idle_session_timeout=600   控制链接超时时间
                                   data_connection_timeout=120   数据连接超时时间
                            数据格式
                                   ascii_upload_enable=YES   以文本方式(编码)上传文件
                                   ascii_download_enable=YES   以文本方式(编码)下载文件
                            锁定特定用户家目录
                                   chroot_list_enable=YES   是否定义一个文件锁定用户家目录
                                   chroot_list_file=/etc/vsftpd/chroot_list   创建用户列表。所有在列表中的用户都锁定用户家目录
                            锁定所有用户家目录
                                   #chroot_list_enable=YES
                                   #chroot_list_file=/etc/vsftpd/chroot_list
                                   chroot_local_user=YES
                                   listen=YES   表示vsftpd是否为一个独立守护进程
                                   pam_service_name=vsftpd   定义“/etc/vsftpd”中pam配置文件名字
                            注意:
                                   /etc/vsftpd/ftpusers   所有写在此文件中的用户都禁止访问ftp    
                            访问控制
                                   userlist_enable=YES   是否启用/etc/vsftpd/user_list中的用户列表控制登陆
                                   userlist_deny=NO    不拒绝列表中列表中用户登陆,但列表之外的用户都无法登陆
               
                                   max_clients=#   ftp最大连接数
                                   max_per_ip=#   每ip最多同时有几个链接请求
                            访问带宽限制
                                   anon_max_rate=数值   定义匿名用户的速度
                                   local_max_rate=数值   定义vsftp Server中本地用户的速度
                            如何让用户只能通过某个IP来访问FTP
                                   listen_address=172.24.10.20
                                     Attention:
                                        如何让绑定IP到vsFTPd?也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP,在vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过172.24.10.20来访问FTP;

为被动模式下的连接定义端口范围
                                   pasv_max_port=65535
                                   pasv_min_port=64000

三、为vsftpd调整防火请规则

iptables -I INPUT -p tcp --dport 20 -j ACCEPT   允许流量通过FTP控制端口
               iptables -I INPUT -p tcp --dport 21 -j ACCEPT   允许流量通过FTP数据端口
               iptables -I INPUT -p tcp --dport 64000:65535 -j ACCEPT   允许被动模式下的连接,其端口范围已经在vsftpd.conf中予以定义

vsftp登陆:
                             ftp://[email protected][ServerName/IP]

四、vsftp安全通信方式

ftps:ftp+ssl/tls
               sftp:openssl

1、创建SSL/TLS证书和私钥:
                                   sudo openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
                            2、启用SSL/TLS加密
                                   vim /etc/vsftpd/vsftpd.conf
                                         ssl_enable=YES               启用SSL支持
                                         ssl_tlsv1=YES                启用TLSV1支持
                                         ssl_sslv3=YES                启用SSLV3支持
                                         allow_anon_ssl=NO              匿名用户不使用SSL加密链接
                                         force_local_data_ssl=YES          强制本地数据连接使用SSL加密
                                         force_local_logins_ssl=YES         强制本地登陆使用SSL加密
                                         rsa_cert_file=/etc/vsftpd/vsftpd.pem    证书位置
                                         rsa_private_key_file=/etc/vsftpd/vsftpd.pem 密钥位置

旅途之为企业搭建linux VSFTP Server

时间: 2024-08-24 14:29:31

旅途之为企业搭建linux VSFTP Server的相关文章

旅途之为企业搭建linux NFS Server

NFS:Network File System (网络文件系统) 文件系统工作于用户空间 RPC:Remote Procedure Call(远程过程调用) linux:提供RPC服务的程序 portmap tcp/111 udp/111 RPC之间数据交换格式: 二进制/文本 NFS:由sun开发 NFSv1------在sun内部使用 NFSv2.NFSv3(主流于rhel5.x系列) NFSv3既支持UDP,也支持TCP NFSv4------主流于rhel6.x系列 NFSv2和NFSv

使用piranha搭建Linux Virtual Server (LVS)集群环境

最近做一下LVS集群方式的性能对比测试,在配置IP隧道方式时遇到一些诡异的问题: 1)     停止LVS服务后虚拟IP未被释放(似乎只有重启服务器才能释放,重启网卡.清空路由表.重启交换机等方式均无效): 2)     负载不均衡(有时会依次将压力全部压在其中一个成员身上,有时又是正常的): 之前测试"直接路由"方式时是手动配置方式,配置成功并没有发现问题.而这次使用IP隧道方式这么多问题,肯定是配置问题. 官方有介绍一个配置工具:piranha.在CentOS安装光盘也自带有,于是

利用tinyproxy在Linux上搭建HTTP Proxy Server

之所以需要用到HTTP Proxy Server并不是为了要翻墙,而是为了让没有公网IP地址的内网主机通过有公网IP地址的外网主机访问Internet.举个例子,阿里云ECS在购买时可以不购买公网IP地址,但这种没有公网IP地址的ECS云主机(实例)是没有访问Internet的能力的,也就是说无法在这台实例上下载文件,这在部署应用如部署MySQL时可能遇到无法完成安装问题.解决的办法有两种,一种是在另一台具有公网访问能力的ECS实例上搭建VPN服务,另一种是在另一台具有公网访问能力的ECS实例上

linux svn server搭建、多项目管理及主备方案

[svn简介]            svn用于版本管理数据,它采用了分支管理系统.在它出现之前存在CVS,svn推出之后,逐步替代了CVS.            目前又出现git,相比于svn,git更支持分布式版本管理,目前发展很猛,这里不详细介绍.大家可以先把svn了解熟悉之后,再看看git,对比下.            ps:时代总是在进步啊,需要跟上潮流.同时,需要了解潮流为何,需要思考潮流背后的原因为何,了解背景历史为何,否则就是盲从了. [第一安装] yum install s

coreOS+Docker新一代企业轻量级Linux

CoreOS官网主页使用一句话概括其理 念:“A new way to think about servers”,以及紧接着的“CoreOS is Linux for massive server deployments”, 表示这是一个新思维方式思考未来服务器大规模部署的的Linux服务器操作系统. CoreOS宣称最小化的定制版linux系统,具有: Linux内核,Linux运行所需 存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区 更新分区在更新完成后,自动重新启动系统,当前

第四篇(1):企业常用Linux web环境安装配置(apache、php、mysql)

上篇我们讲了基本的软件包管理和文件操作什么的,现在也要动手安装点有用的东西了吧! 本篇我会写出一个用yum安装apache.php.mysql的方法,最后再运行phpMyAdmin来管理数据库. 1.如何在Linux主机上安装apache 由于之前我们安装了完成的centos系统,所以可能系统有可能已经安装好了apache,所以我们先检查下是不是真的安装过了 先敲命令吧,yum list installed httpd* ,如果看到httpd已经安装,那么就yum -y remove httpd

LVS Load Balancing Linux Virtual Server

简介:Linux虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用.LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.LVS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.高

学习如何搭建Linux运维环境

搭建学习Linux运维环境 目  录 一.        虚拟机的介绍... 1 1.1 如何选择适合的虚拟机软件... 1 1.2 虚拟机对硬件的要求... 1 二.        创建一个新的虚拟机... 1 1.1 安装VMWare Workstation12. 1 1.2 创建一个新的虚拟机... 2 1.3 完成新虚拟机上的配置... 9 三.        通过setup设置网卡... 17 四.        改变IP地址... 20 五.远程连接... 21 第1章 虚拟机的介绍

LVS (Linux Virtual Server) 负载均衡

[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备