linux下安装vsftpd服务
- 格式:docx
- 大小:43.36 KB
- 文档页数:5
Linux下配置FTP服务器实例详解摘要:本文通过在red hat 9.0中配置匿名用户和虚拟用户访问的ftp服务器,向读者详尽地诠释了linux下ftp服务器配置的全部流程以及配置过程中要注意的一些问题。
关键词:匿名用户虚拟用户权限 vsftpd pam认证1 概述linux下可用的ftp服务器软件比较多,vsftpd安全易用,很多著名的站点都在使用vsftpd作为其ftp服务器。
本文以vsftpd为例,对基于linux的ftp服务器配置问题进行研究。
2 安装vsftpd服务组件vsftpd所需组件包括:vsftpd*、pam*、db4*、db4-utils,可以使用rpm命令查看:【root @dns root】#rpm-qa | grep vsftpdvsftpd-1.1.3-8【root @dns root】#rpm-qa | grep pampam-0.75-48pam_krb5-1.60-1pam-smb-1.1.6-7pam-devel-0.75-48【root @dns root】#rpm-qa | grep db4db4-4.0.14-20db4-utils-4.0.14-20db4-java-4.0.14-20db4-devel-4.0.14-20【root @dns root】#以上便是配置ftp服务器所需所有组件,若发现个别没有装,则要在光盘中查找到装好。
3 创建并设置ftp站点的主目录我们的vsftpd组件安装好后,系统自动会生成一个目录,/var/ftp/pub,这个是linux系统中ftp站点的默认主目录,这里我们不用这个目录,我们自己为匿名用户和虚拟用户分别创建两个主目录如下:【root @dns root】# mkdir /var/ftp/share【root @dns root】#mkdir /var/ftp/soft其中share作为匿名用户的主目录,只能读不能写,此处该目录文件夹我们为其设置权限为755,而soft目录作为虚拟用户访问的主目录,读写删除权限都要,我们为其设置权限777如下:【root @dns root】#chmod 755 /var/ftp/share【root @dns root】#chmod 777 /var/ftp/soft4 创建虚拟用户虚拟用户只能访问为其提供的ftp服务,不能像本地用户那样登录系统而访问系统的其他资源,因此我们一般架设ftp时都会使用虚拟用户而不是本地用户来访问服务器以确保整个服务器系统的安全。
一、创建匿名FTP服务器的方法1。
增加新用户ftp,设置其主目录对任何用户都无写权限;2。
新建立一个组anonymou,它只能被匿名ftp使用;3.在ftp用户的主目录下创建一个bin目录,它属于root用户,而且对任何用户都不能写;4。
在ftp用户主目录下创建一个etc目录,它属于root用户,而且对任何用户都不能写;5.在ftp用户主目录下创建一个public目录,它属于ftp用户,而且对任何用户都能写。
如果由于安全等原因,您不允许其他用户在您的计算机上具有存储能力,那么您可以将其权限设置成555;6.将ls程序放到已创建的bin目录下,并将其修改成111方式,即对任何用户只能执行;7。
在已创建的etc目录下,创建passwd和group两个文件,并将它们设置成444方式(只读)。
二、创建匿名FTP---—在Unix下用root登录,然后按下列步骤逐步建立FTP服务器.1.建立新组anonymou----#mkgroupanonymou2.建立新用户ftp,且ftp用户属于anonymou组—--—#mkuserpgrp=‘nonymou'home=‘ /u/anonymou’ftp3。
在用户目录下建立相关的目录#cd/u/anonymou#mkdiretc#mkdirbin#mkdirpublic4。
将ls拷贝到/usr/anonymou/bin下,并设置其读写属性#cp/bin/ls./bin#chmod111。
/bin/ls5.创建/u/anonymou/etc/group文件————在该文件中增加一行:anonymou:!:201:6.创建/u/anonymou/etc/passwd文件--—-在该文件中增加一行:ftp:*:213:201::/u/anonymou:/bin/ksh7。
修改/u/anonymou/etc/group文件和/u/anonymou/etc/passwd文件的属性#chmod444/u/anonymou/etc/passwd—--—#chmod444/u/anonymou/etc/group8。
Linux下安装卸载ftp的⽅法摘要ftp是liunx下常⽤的软件之⼀。
1.将⽤户切换到root:su - ;2.检查机器是否已经安装了ftp:rpm -qa|grep vsftpd;如果没有返回任何结果,表⽰没有安装;如果返回⽂件包名,这表⽰已经安装了该服务;3.开始安装:yum install vsftp;(接下来的步骤可能要询问:Is that ok?,直接回应yes就可以了);安装完了会显⽰ Complete!4.再次检查ftp是否安装上了:rpm -qa|grep vsftp;5.检查ftp配置是否开启:chkconfig --list|grep vsftpd;此时返回的选项应该都是off;6.开启ftp配置项:chkconfig vsftpd on;7.再次检查ftpshi是否开启:chkconfig --list|grep vsftp;此时ftp的⼀些选项中应该有on;8.重启ftp:service vsftpd restart;(如果重启失败,有可能是linux防⽕墙没有关闭的问题,关闭防⽕墙:chkconfig iptables off)9.再次重启ftp:service vsftp restart,此时应该是ok的;卸载:卸载ftp:rpm -e vsftpd;再给⼤家分享⼀则⽹友的⼼得:Linux下使⽤VSFTP安装包搭建FTP⽂件传输服务,⽅法如下:1.检查是否安装VSFTP服务rpm -qa|grep vsftpd如果没安装,安装VSFTP服务2.挂载Linux系统的ISO镜像⽂件到/tmpmount -t iso9660 /dev/cdrom /tmp3.⽤rpm命令安装VSFTP服务cd /tmp/rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm#⽤rpm命令安装软件包4.启动VSFTP服务#检查FTP服务状态chkconfig --list|grep vsftpd#启动FTP服务/etc/init.d/vsftpd start。
VSFTPD配置方法1.安装VSFTPD软件首先,使用以下命令在Linux系统上安装VSFTPD软件:```sudo apt-get install vsftpd```2.配置VSFTPD打开VSFTPD的配置文件,通常位于/etc/vsftpd.conf,使用以下命令:```sudo nano /etc/vsftpd.conf```-设置FTP根目录:``````-允许匿名访问(可选):```anonymous_enable=YES```-关闭匿名上传(可选):```anon_upload_enable=NO```-允许本地用户登录:```local_enable=YES```-限制用户仅访问其主目录:```chroot_local_user=YES```将用户限制在其主目录下,防止访问系统其他部分。
-设置FTP用户的权限:```file_open_mode=0777local_umask=022```file_open_mode设置为0777将文件权限设置为可读写执行,local_umask设置为022保证新创建的文件和文件夹的权限正确。
``````3.重启VSFTPD服务使用以下命令重启VSFTPD服务,使配置生效:```sudo systemctl restart vsftpd```4.配置防火墙如果系统上使用了防火墙,需要修改防火墙规则以允许FTP流量通过。
根据所使用的防火墙软件和具体配置方法来进行相应的设置。
5.创建FTP用户使用以下命令创建一个FTP用户:```sudo adduser ftpuser```将ftpuser替换为你希望创建的FTP用户名。
6.设置FTP用户密码使用以下命令设置FTP用户的密码:```sudo passwd ftpuser```7.连接FTP服务器使用FTP客户端软件连接到配置好的VSFTPD服务器,使用FTP用户的用户名和密码登录即可。
以上就是VSFTPD配置的一般方法。
实训2使用Linux搭建FTP服务器实训报告1. 实验目的本实训的目的是通过在Linux系统上搭建FTP服务器,了解和掌握FTP协议以及服务器的基本配置和使用方法。
2. 实验环境本次实训使用的实验环境如下:- 操作系统:Linux- 软件:vsftpd3. 实验步骤3.1 安装vsftpd软件在Linux系统上,通过包管理工具安装vsftpd软件。
具体步骤如下:- 打开终端。
- 输入以下命令进行安装:sudo apt-get install vsftpd- 等待安装完成。
3.2 配置vsftpd安装完成后,需要进行一些配置才能正常使用vsftpd。
具体步骤如下:- 进入vsftpd配置文件所在的目录。
一般位于`/etc`目录下。
- 使用文本编辑器打开文件`vsftpd.conf`。
- 根据需求修改配置项,如FTP根目录、允许匿名访问等。
保存修改后关闭文件。
- 重启vsftpd服务,使配置生效。
3.3 创建FTP用户在FTP服务器上创建用户,以便其他用户可以通过FTP协议访问服务器。
具体步骤如下:- 打开终端。
- 输入以下命令创建新用户:sudo adduser ftpuser- 根据提示设置用户密码等信息。
3.4 测试FTP服务器完成以上配置后,可以进行简单的测试,确保FTP服务器可以正常使用。
具体步骤如下:- 打开FTP客户端软件。
- 输入服务器地址、FTP用户和密码进行连接。
4. 实验结果5. 实验总结注意:本文档内容仅供参考,具体配置和操作可能因不同的Linux发行版和软件版本略有不同,建议在实际操作过程中参考相关文档和官方说明。
Linux(Centos)配置vsftp使⽤账号密码(虚拟⽤户)登录ftp进⾏⽂件上传和修改安装vsftpyum install vsftpd -y安装完成之后进⼊vsftp的配置⽂件夹cd /etc/vsftpd/⽂件夹内容如下[root@VM-0-12-centos vsftpd]# lltotal 20-rw------- 1 root root 125 Oct 1400:10 ftpusers-rw------- 1 root root 361 Oct 1400:10 user_list-rw------- 1 root root 5116 Oct 1400:10 vsftpd.conf-rwxr--r-- 1 root root 338 Oct 1400:10 vsftpd_conf_migrate.sh在当前⽬录下创建⼀个⽤户名和密码的⽂件⽂件名名称为 ftp_user.txtvim /etc/vsftpd/ftp_user.txt再ftp_user.txt⽂件⾥配置⽤户和密码yvioo123456kaifa12345678其中yvioo 是ftp登录的⽤户名123456 是ftp中yvioo⽤户登录的密码kaifa 是ftp登录的⽤户名12345678 是ftp中kaifa⽤户登录的密码以此内推,可以添加多个然后保存退出wq!执⾏命令⽣成虚拟数据库db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_login.db其中/etc/vsftpd/ftp_user.txt 是上⾯存放⽤户名和密码⽂件的绝对路径/etc/vsftpd/ftp_login.db 这个是⽣成的数据库的路径数据库名称为 ftp_login.db设置⽣成的数据库的访问权限chmod 777 /etc/vsftpd/ftp_login.db编辑账号的pam验证⽂件vim /etc/pam.d/vsftpd在最上⽅增加auth sufficient pam_userdb.so db=/etc/vsftpd/ftp_loginaccount sufficient pam_userdb.so db=/etc/vsftpd/ftp_login其中db=/etc/vsftpd/ftp_login 这个就是上⼀步⽣成的虚拟数据库(⽂件名称根据⾃⼰的来),注意:这⾥不⽤加 .db 后缀如下图所⽰创建⼀个⽂件夹mkdir /home/vsftpd新建⼀个系统⽤户vsftpd⽤户登录终端设为/bin/false(即不能登录系统)useradd vsftpd -d /home/vsftpd -s /bin/false其中vsftpd 这个就是创建的⽤户的⽤户名(这个下⾯配置⽂件⾥会使⽤)/home/vsftpd 就是刚才创建的⽂件夹根据需要创建修改/etc/vsftpd/vsftpd.conf,以下设置vim /etc/vsftpd/vsftpd.conf修改配置#禁⽤匿名登⼊anonymous_enable=YES 改为 anonymous_enable=NO#监听为专⽤模式listen=NO 改为 listen=YES#将ipv6监听注释掉listen_ipv6=YES 改为 #listen_ipv6=YES在配置⽂件底部增加#对⽤户访问只限制在主⽬录不能访问其他⽬录(这个已经有了但是默认是注释的可以取消注释或者直接新增)chroot_local_user=YES#启⽤guestguest_enable=YES#使⽤虚拟账号形式(vsftpd 就是我们上⾯创建的⽤户的⽤户名)guest_username=vsftpd#虚拟账号配置⽬录(这个还没创建我们下⾯再进⾏创建,先这样写)user_config_dir=/etc/vsftpd/user_conf#对vsftpd的⽤户使⽤pam认证(这个就是我们上⾯改的pam验证⽂件的⽂件名,这个默认已经有了,所以不⽤添加,没有的话再添加)pam_service_name=vsftpd#允许本地⽤户登录(这个默认的也有了,没有的话添加上)local_enable=YES然后保存退出接着创建虚拟账号配置⽬录mkdir /etc/vsftpd/user_conf进⼊⽂件夹cd /etc/vsftpd/user_conf/创建⽂件vim /etc/vsftpd/user_config/yvioo其中yvioo 就是我们上⾯ftp_user.txt中配置的ftp的账号的⽤户名(这⾥创建的⽂件名要对应上,如果有多个ftp⽤户就创建多个ftp⽂件对应的⽤户名⽂件,然后在⾥⾯设置权限即可)然后添加write_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/data/www说明如下#是否允许登陆⽤户有写权限。
linux(ubuntu)下FTP的使⽤教程1.安装、配置FTP服务组件sudo apt-get updatesudo apt-get install vsftpd修改ftp的配置⽂件 /etc/vsftpd.conflocal_enable=YESwrite_enable=YES重启FTP服务sudo service vsftpd restart2.命令⾏FTP操作在shell命令⾏下输⼊: ftp 192.168.2.10 根据提⽰输⼊正确的⽤户名和密码即可常⽤操作命令(,号不是命令内容)FTP>open [ftpservername],和指定的远程Linux FTP服务器连接FTP>user [username] [password],使⽤指定远程Linux FTP服务器的⽤户登录FTP>pwd,显⽰远程Linux FTP服务器上的当前路径FTP>ls,列出远程Linux FTP服务器上当前路径下的⽬录和⽂件FTP>dir,列出远程Linux FTP服务器上当前路径下的⽬录和⽂件(同上)FTP>mkdir [foldname],在远程Linux FTP服务器上当前路径下建⽴指定⽬录FTP>rmdir [foldname],删除远程Linux FTP服务器上当前路径下的指定⽬录FTP>cd [foldname],更改远程Linux FTP服务器上的⼯作⽬录FTP>delete [filename],删除远程Linux FTP服务器上指定的⽂件FTP>rename [filename] [newfilename],重命名远程Linux FTP服务器上指定的⽂件FTP>close,从远程Linux FTP服务器断开但保留FTP命令参数提⽰FTP>disconnect,从远程Linux FTP服务器断开但保留FTP命令参数提⽰(同上)FTP>bye,结束和远程Linux FTP服务器的连接FTP>quit,结束和远程Linux FTP服务器的连接(同上)FTP>!,直接从远程Linux FTP服务器进⼊到本地shell中FTP>exit,(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下FTP>!ls,列出本地机器上当前路径下的⽬录和⽂件FTP>lcd [foldname],更改本地机器的⼯作⽬录FTP>?,显⽰ftp命令说明FTP>help,显⽰ftp命令说明(同上)PS:最好将要进⾏传输的⽂件或⽂件夹的权限设置成775 或7773.安装linux下开源FTP软件FileZilla如果是在ubuntu 或其他linux桌⾯环境下,可以不⽤FTP命令,直接安装filezilla即可sudo apt-get install filezillasudo apt-get install filezilla-locales安装完成后可在shell 直接执⾏ filezilla即可,或在ubuntu左上⾓的 Dash home 找到应⽤执⾏filezilla⾮常好⽤,输⼊Host地址、Username、Password和Port 端⼝号(⼀般默认为21) 即可连接另外⼀台有FTP服务的机器成功连接后,直接拖动需要复制的⽂件或⽂件夹即可传输⽂件。
Linux FTP服务器的安装与启动Linux安装程序默认没有安装FPT服务,使用下面的命令可以检查系统是否已经安装了FTP服务或查看已经安装了何种版本。
1.安装FTP服务器在安装FTP服务器时,需要用到vsftpd软件包。
可以使用光驱加载Linux系统盘对FTP服务进行安装。
具体步骤如下:(1)打开光驱放入Linux系统盘,在确认系统盘被光驱加载后,在Linux系统中打开【终端】窗口,如图10所示。
图10 【终端】窗口(2)在【终端】窗口中,输入“mount /dev/cdrom /tmp”命令并按键,将光盘文件挂载到本地计算机tmp目录下,如图11所示。
如图11 挂载光盘到/tmp目录(3)在【终端】窗口中,输入“mount”命令并按键,查看光盘是否挂载成功,如图12所示。
图12 查看光盘是否挂载成功(4)从上图中的最后一行可以看出系统光盘已被成功挂载到/tmp目录下。
这时,可以在【终端】窗口中,输入“find /tmp name vsftpd*”命令并按键,在系统光盘中寻找vsFTP软件包,如图13所示。
图13 查找vsFTP软件包(5)由上图可以看到,vsFTP软件包路径为/tmp/Server/vsFTPd-2.0.5-10.e15.i386.rpm。
下面在【终端】窗口中,输入“rpm –vih /tmp/Server/vsFTPd-2.0.5-10.e15.i386.rpm”命令并按键,对vsFTP软件包进行安装,如图14所示。
图14 安装vsFTP软件包(6)在【终端】窗口中,输入“rpm –qa|grep vsftpd”命令按键,查看软件包安装情况,如图15所示。
图15 查看vsFTP软件包安装情况2.启动与停止FTP服务在Llinx系统中提供了两种启动和停止FTP服务的方法:一种是使用图形界面,另一种是使用命令。
使用图形界面启动或停止FTP服务器在Linux系统的控制面板中,执行【系统】|【管理】|【服务器设置】|【服务】命令,弹出【服务配置】对话框。
Linux安装FTP,配置FTP,使⽤FileZilla连接FTP 登陆linux后 1.运⾏以下命令安装 vsftpd。
yum install -y vsftpd2.运⾏以下命令打开及查看etc/vsftpdcd /etc/vsftpdls说明:/etc/vsftpd/vsftpd.conf 是核⼼配置⽂件。
/etc/vsftpd/ftpusers 是⿊名单⽂件,此⽂件⾥的⽤户不允许访问 FTP 服务器。
/etc/vsftpd/user_list 是⽩名单⽂件,是允许访问 FTP 服务器的⽤户列表。
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的⼀些变量和设置3.运⾏以下命令设置开机⾃启动。
systemctl enable vsftpd4.运⾏以下命令启动 FTP 服务。
systemctl start vsftpd5.运⾏以下命令查看 FTP 服务端⼝。
netstat -antup | grep ftp6.创建连接⽤户和密码,执⾏下⾯的命令 创建⽤户:useradd ama 注:ama是⽤户名 设计⽤户密码: passwd ama 注:给⽤户ama设置密码,设置的密码必须是包含⼤⼩写,数字,特殊字符,长度⼤于等于87.修改vsftp(/etc/vsftpd/vsftpd.conf)的配置⽂件 a.运⾏vim vsftpd.conf。
b.按键 “i” 进⼊编辑模式。
c.将是否允许匿名登录 FTP 的参数修改为anonymous enable=NO。
d.将是否允许本地⽤户登录 FTP 的参数修改为local_enable=YES。
e.按键 “Esc” 退出编辑模式,然后按键“:wq” 保存并退出⽂件。
8.重启服务,执⾏下⾯的命令:systemctl restart vsftpd9.给服务器添加安全组(使⽤的是阿⾥云服务器),如下图显⽰:添加端⼝号21F打开 FileZilla,选择SFTP连接⽅式;如下图显⽰:接下来就可以直接操作FTP连接linux。
linux ftp 实验报告Linux FTP 实验报告一、实验目的本实验旨在通过使用 Linux 系统自带的 FTP 服务,掌握 FTP 的基本使用方法,包括连接 FTP 服务器、上传和下载文件等操作,以及对 FTP 服务器进行简单的配置。
二、实验环境操作系统:Linux软件:vsftpd(FTP 服务器)三、实验步骤1. 安装 vsftpd在 Linux 系统中,使用以下命令安装 vsftpd:sudo apt-get install vsftpd2. 配置 vsftpd编辑 vsftpd 的配置文件 /etc/vsftpd.conf,可以根据需要进行配置,如设置允许匿名登录、设置用户目录等。
3. 启动 vsftpd 服务使用以下命令启动 vsftpd 服务:sudo service vsftpd start4. 连接 FTP 服务器在另一台计算机上使用 FTP 客户端软件(如 FileZilla)连接到 Linux 主机的 FTP 服务器,输入用户名和密码进行登录。
5. 上传和下载文件在 FTP 客户端软件中,可以通过简单的拖拽操作上传和下载文件,也可以使用命令进行操作。
6. 断开连接在完成文件传输后,使用 FTP 客户端软件断开与 FTP 服务器的连接。
四、实验结果通过实验,我们成功地搭建了一个基本的 FTP 服务器,并且能够通过 FTP 客户端软件与其进行连接和文件传输。
同时,我们还学会了如何对 FTP 服务器进行简单的配置,以满足不同的需求。
五、实验总结FTP 是一种常用的文件传输协议,通过本次实验,我们对 Linux 系统中的 FTP 服务有了更深入的了解,掌握了基本的使用方法,并能够灵活地配置和管理FTP 服务器。
这对于日常的文件传输工作具有重要的意义。
六、实验心得通过本次实验,我对 Linux 系统中的 FTP 服务有了更深入的了解,对于文件传输的操作也更加熟练。
在今后的工作中,我将继续加强对 Linux 系统的学习,提高自己的技能水平。
1、查询是否安装vsftpd:rpm -qa |grep vsftpd 或者查询当前ftp进程:ps —ef|grep vsftpd已安装显示未安装显示2、下载vsftpd地址: /linux/rpm2html/search.php?query=vsftpd 选择版本后使用wget下载3、安装vsftpd服务器: rpm —ivh vsftpd—*.rpm4、测试是否安装成功[root@379318 ~]# ftp localhostTrying ::1。
ftp:connect to address ::1Connection refused Trying 127.0.0。
1。
..ftp: connect:Connection refusedftp〉bye[root@379318 ~]#匿名访问5、vsftpd服务器的启动、停止、重启、状态service vsftpd startservice vsftpd stopservice vsftpd restartservice vsftpd status6、vsftpd的三个主配置文件/etc/vsftpd/vsftpd.conf //服务器的主配置文件/etc/vsftpd/ftpusers //此文件内的用户都不能访问vsftpd服务器/etc/vsftpd/user_list //可能会被拒绝访问服务喊叫或允许访问7、查看vsftpd.conf的配置参数:vim /etc/vsftpd/vsftpd.confanonymous_enable=YES //启用匿名用户登录(建议设置为NO)local_enable=YES //允许本地用户访问vsftpd服务器write_enable=YES //允许上传download_enable=YES //允许下载anon_upload_enable=YES //允许匿名用户上传anon_mkdir_write_enable=YES //允许匿名用户创建目录和上传anon_other_write_enable=NO //不允许匿名用户删除和改名local_max_rate=20000 //本地用户的最大传输速率,单位是字节/秒anon_max_rate=5000 //匿名用户的最大传输速率,单位是字节/秒local_umask=022 //去掉写的权限file_open_mode=0666 //上传文件的权限xferlog_enable=YES //维护日志文件,详细记录上传和下载操作xferlog_std_format=YES //传输日志文件将以标准的xferlog格式书写,日志文件默认为/var/ log/xferloghide_ids=YES //隐藏文件夹和目录属主port_enable=YES //允许使用主动传输模式pasv_min_port=(1024〈port〈65535) //指定PASV模式可以使用的最小端口pasv_max_port=(1024<port<65535) //指定PASV模式可以使用的最大端口connect_from_port_20=YES //定义FTP传输数据的端口,默认是20ascii_download_enable=NO //设置不可使用ASCII模式下载listen=YES //让FTP工作在独立模式下pam_service_name=vsftpd //用户配置文件认证userlist_enable=YEStcp_wrappers=YES //将使用wrappers作为主机访问控制方式idle_session_timeout=600 //表明空闲时间为600秒data_connection_timeout=120 //表明数据连接超时时间为120秒chroot_local_user=YES //用户登录后不能访问自己目录以外的文件或目录listen_port=4444 //修改FTP服务器的端口号8、设定vsftp在等级3和5为开机运行服务chkconfig -—level 35 vsftpd on9、ftp客户连接常见故障现象现象1:> ftp:connect :连接被拒绝原因:服务没启动解决:# chkconfig vsftpd on现象2:500 OOPS: cannot open user list file原因:不存在文件“/etc/vsftpd/user_list”或文件中不存在该帐户解决:#echo username >〉/etc/vsftpd。
一、前言Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如,,.等。
Vsftpd的实现有三种方式1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问2、本地用户形式:以/etc/passwd中的用户名为认证方式3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。
相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。
相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。
对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。
二、获取最新版的Vsftp程序Vsftp官方下载:ftp:///users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。
假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录# cd /home/xuchen# tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序# cd vsftpd-2.0.3三、三种方式的实现1、匿名用户形式实现# vi builddefs.h \\编辑builddefs.h 文件,文件内容如下:#ifndef VSF_BUILDDEFS_H#define VSF_BUILDDEFS_H#undef VSF_BUILD_TCPWRAPPERS#define VSF_BUILD_PAM#undef VSF_BUILD_SSL#endif /* VSF_BUILDDEFS_H */将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL# make //直接在vsftpd-2.0.3里用make编译# ls -l vsftpd-rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功创建必要的帐号,目录:# useradd nobody //可能你的系统已经存在此帐号,那就不用建立# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立# chown root:root /var/ftp# chmod og-w /var/ftp请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin安装vsftp配置文件,可执行程序,man等:# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano# install -m 644 vsftpd.8 /usr/share/man/man8# install -m 644 vsftpd.conf.5 /usr/share/man/man5# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf这样就安装完成了,那么我们开始进行简单的配置# vi /etc/vsftpd-ano.conf ,将如下三行加入文件listen=YESlisten_port=21tcp_wrappers=YESanon_root=/var/ftp //设置匿名用户本地目录,和ftp用户目录必须相同listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它(vsftpd 推荐使用standalone方式)# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & //以后台方式启动vsftpd注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:500 OOPS: bad bool value in config file for: listen测试搭建好的匿名用户方式# ftp 127.0.0.1Connected to 127.0.0.1.220 (vsFTPd 2.0.3)530 Please login with USER and PASS.530 Please login with USER and PASS.KERBEROS_V4 rejected as an authentication typeName (127.0.0.1:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>; pwd257 "/"ftp>; quit221 Goodbye.#OK,已经完成了,very nice.高级配置细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)为什么呢?因为vsftpd 是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。
Linux1 FTP服务器vsFTP的安装
在安装vsFTP软件之前,首先需要在终端界面下使用rpm命令查看系统是否安装有vsFTPd,如图8-5所示。
图8-5 查看vsFTP是否安装
如果没有任何输出,则表示vsFTP软件还没有安装。
此时,则需要将系统的第2张安装光盘放入光驱中,然后使用mount命令将此光盘挂载到任一个指定的目录下(如,/tmp),如图8-6所示。
图8-6 挂载光盘到/tmp目录
将光盘挂载到指定的目录后,接着可在终端下输入mount命令,查看光盘是否挂载成功,如图8-7所示。
图8-7 查看光盘是否挂载成功
从图8-7所示的最后一行输出可看出系统光盘已被成功挂载到/tmp目录下。
然后我们可以使用find搜索命令,在系统光盘中寻找vsFTP软件包,如图8-8所示。
图8-8 查找vsFTP软件包
由图8-8输出显示,表明已成功找到vsFTP软件包,其路径为/tmp/Server/vsFTPd-2.0.5-10.e15.i386.rpm。
接下来,就可以使用rpm工具对vsFTP 软件包进行安装。
安装软件包时,使用的语法为“rpm –vih 软件包的绝对路径”。
如图8-9所示。
图8-9 安装vsFTP软件包
当vsFTP软件包安装完成后,为了确保正确无误,此时可通过在终端下输入“rpm –qa|grep vsftpd”命令查看软件包安装情况。
当输出中,显示有已安装的vsFTP 软件包时,则证明软件包已成功安装,如图8-10所示
图8-10 查看vsFTP软件包安装情况。
Linux搭建ftp服务器简单教程及使⽤⽅法步骤概括如下:安装:yum install vsftpd操作: service vsftpd start|stop|restart配置部分(重点):1. 为了系统安全,⼀般会建⽴⼀个ftp⽤户,此⽤户不能登陆系统,且只能访问⾃⼰主⽬录下的⽂件。
useradd -d /var/ftp/test -g ftp -s /sbin/nologin ftpuser其中,-d命令是指定⽤户主⽬录,-g是指定⽤户分组,-s /sbin/nologin 是禁⽌⽤户登陆系统,最后ftpuser是本次新建⽤户的⽤户名。
然后设置密码:passwd fptuser2. 配置⽤户可登陆名单,并将新建⽤户添加进⼊ftp可登陆名单中。
配置⽤户名单的⽅式是:打开配置⽂件,找到如下两⾏⾏,去掉其注释符号。
chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list这样就定义了⼀个⽤户名单,只有名单中的⽤户可以登陆系统。
3. 创建这个/etc/vsftpd/chroot_list ⽂件,将可以访问的⽤户名 ftpuser添加进去。
然后重启ftp服务即可。
操作解释:-d /var/ftp/test ---------------------------------- 远程机器访问这台ftp服务器的根⽬录,⽂件列表与这个⽬录⼀致。
useradd/passwd --------------------------------- 本地的⽤户名和密码/etc/vsftpd/chroot_list --------------------------- 将本地⽤户名XX作为ftp⽤户名ftp及scp命令的使⽤ftp :1. ftp 192.168.26.662. 输⼊⽤户名和密码3.get 下载格式:get [remote-file] [local-file] 将⽂件从远端主机中传送⾄本地主机中.注意:⽂件都下载到了linux主机的当前⽬录下。
linux下安装vsftpd服务vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“Very Secure”的缩写,可见它的最大优点就是安全,除此之外,它还具有体积小,可定制强,效率高的优点。
在进行安装该服务之前,必须现将linux的环境装好才行:(相关的安装及配置在我的另一个笔记里面记载,暂时传不上来,抱歉*_*)1、先安装VMware-workstation-5.5.4-44386.exe2、在安装RedHat_Linux_AS3_1.iso、2.iso、3.iso、4.iso3、最后将SecureCRT-v6.1.3,简称CRT。
使用CRT登录:[root@testtimeslinux root]# rpm -qa|grep vsftpd //查看是否已经安装了该软件vsftpd-1.2.0-4[root@testtimeslinux root]# rpm -e vsftpd-1.2.0-4 //下载已经安装的软件warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave[root@testtimeslinux root]#[root@testtimeslinux root]# rpm -qa|grep vsftpd //再次查看是否完全卸载[root@testtimeslinux root]# cd /[root@testtimeslinux /]# lsbin dev home kk lost+found mnt proc sbin test1 usrboot etc initrd lib misc opt root test tmp var[root@testtimeslinux /]# cd mnt //进入mnt/cdrom[root@testtimeslinux mnt]# lscdrom floppy[root@testtimeslinux /]# mount dev/cdrom mnt/cdrom//在根目录下进行挂载。
在Linux系统中,如果要使用硬盘、光盘、软盘或MO盘等存储设备,必须先进行挂装(Mount)。
当存储设备挂装完成之后,就可以将其作为一个目录来进行访问了。
挂装设备需要使用mount命令。
执行这一命令,至少要先确定下列三种信息:1. 要挂装(Mount)对象的文件系统类型;2. 要挂装(Mount)对象的设备名称(/dev/...);3. 要将设备挂装(Mount)到哪一目录。
mount: block device dev/cdrom is write-protected, mounting read-only[root@testtimeslinux /]# cd mnt[root@testtimeslinux mnt]# cd cdrom[root@testtimeslinux cdrom]# lsautorun README-en RedHat RELEASE-NOTES-pt_BR.htmldosutils README-es RELEASE-NOTES-de.html RELEASE-NOTES-zh_CN.htmlEULA README-fr RELEASE-NOTES-en RELEASE-NOTES-zh_TW.htmlGPL README-it RELEASE-NOTES-en.html RPM-GPG-KEYimages README-ja RELEASE-NOTES-es.html SRPMSisolinux README-ko RELEASE-NOTES-fr.html TRANS.TBLREADME README-pt_BR RELEASE-NOTES-it.htmlREADME-Accessibility README-zh_CN RELEASE-NOTES-ja.htmlREADME-de README-zh_TW RELEASE-NOTES-ko.html[root@testtimeslinux cdrom]# cd RedHat[root@testtimeslinux RedHat]# lsbase RPMS TRANS.TBL[root@testtimeslinux RedHat]# cd RPMS //进入RedHat\RPMS,选择vsftpd-1.2.0-4.i386.rpm安装包进行安装。
[root@testtimeslinux RPMS]# lsamanda-server-2.4.4p1-0.3E.i386.rpm openssl-0.9.7a-22.1.i686.rpmanaconda-product-3-1AS.noarch.rpm pxe-0.1-36.i386.rpmarptables_jf-0.0.5-0.3E.i386.rpm quagga-0.96.2-4.3E.i386.rpmbind-9.2.2-21.i386.rpm radvd-0.7.2-4.i386.rpmcaching-nameserver-7.2-7.noarch.rpm rarpd-ss981107-14.i386.rpmcomps-3as-0.20031007.i386.rpm redhat-config-bind-2.0.0-14.noarch.rpmdhcp-3.0pl2-6.14.i386.rpm redhat-config-netboot-0.1.1-19.i386.rpmfreeradius-0.9.0-2.i386.rpm redhat-release-3AS-1.i386.rpminews-2.3.5-5.i386.rpm tftp-server-0.32-4.i386.rpminn-2.3.5-5.i386.rpm TRANS.TBLkrb5-server-1.2.7-19.i386.rpm tux-3.2.14-1.i386.rpmnetdump-server-0.6.10-2.i386.rpm vsftpd-1.2.0-4.i386.rpmopenldap-servers-2.0.27-11.i386.rpm ypserv-2.8-1.i386.rpm[root@testtimeslinux RPMS]#[root@testtimeslinux RPMS]# rpm -ivh vsftpd-1.2.0-4.i386.rpm //进行安装vsftpd-1.2.0-4.i386.rpm,此操作相当于window下的双击setup文件。
warning: vsftpd-1.2.0-4.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%]1:vsftpd ########################################### [100%][root@testtimeslinux RPMS]# rpm -aq|grep vsftpd //查看是否安装vsftpdvsftpd-1.2.0-4[root@testtimeslinux RPMS]# cd /[root@testtimeslinux /]# umount mnt/cdrom //退出挂载[root@testtimeslinux /]# service vsftpd start //启动vsftpd 服务为vsftpd 启动vsftpd:[ 确定][root@testtimeslinux /]# lsbin dev home kk lost+found mnt proc sbin test1 usrboot etc initrd lib misc opt root test tmp var[root@testtimeslinux /]# cd var[root@testtimeslinux var]# lsaccount crash empty gdm local log named opt run tmp ypcache db ftp lib lock mail nis preserve spool www[root@testtimeslinux var]# cd ftp[root@testtimeslinux ftp]# lspub[root@testtimeslinux ftp]# cd pub[root@testtimeslinux pub]# cd /[root@testtimeslinux /]# lsbin dev home kk lost+found mnt proc sbin test1 usrboot etc initrd lib misc opt root test tmp var[root@testtimeslinux /]# cd etc[root@testtimeslinux etc]# lsa2ps.cfg grub.conf ers resolv.confa2ps-site.cfg gshadow modules.conf rmtadjtime gshadow- modules.conf~ rndc.conf alchemist gshadow.lock motd rndc.keyaliases gtk mtab rpcaliases.db gtk-2.0 mtools.conf rpmalternatives host.conf Muttrc sambaant.conf hosts f screenrcat.deny hosts.allow named.custom scrollkeeper.conf auto.master hosts.deny nscd.conf securettyauto.misc hotplug nsswitch.conf securitybashrc httpd ntp sensors.confbg5ps.conf im_palette.pal ntp.conf servicesbg5ps.conf.zh_CN im_palette-small.pal odbc.ini sgmlbg5ps.conf.zh_CN.GB2312 im_palette-tiny.pal odbcinst.ini shadowbg5ps.conf.zh_TW imrc openldap shadow-bg5ps.conf.zh_TW.Big5 init.d opt shellsbonobo-activation initlog.conf pam.d skelcdrecord.conf inittab pam_smb.conf smartd.conf chinese inputrc pango smrshcron.d iproute2 passwd snmpcron.daily isdn passwd- soundcron.hourly issue pbm2ppa.conf sshcron.monthly pcmcia stunnelcrontab jwhois.conf pinforc sudoerscron.weekly kde pnm2ppa.conf sysconfigcsh.cshrc kderc ppp sysctl.confcsh.login krb5.conf prelink.conf syslog.confcups krb.conf printcap termcapdefault krb.realms printcap.local updatedb.confDIR_COLORS ksysguarddrc printconf.local updfstab.conf DIR_COLORS.xterm ldap.conf profile updfstab.conf.default dumpdates ld.so.cache profile.d vfontcapenscript.cfg ld.so.conf protocols vimrcesd.conf lftp.conf ptal vsftpdexports libuser.conf pwdb.conf vsftpd.ftpusersfam.conf lilo.conf.anaconda quotagrpadmins er_list fb.modes localtime quotatab warnquota.conffdprm log.d racoon wgetrcfilesystems login.defs rc X11firmware logrotate.conf rc0.d xinetd.conffonts logrotate.d rc1.d xinetd.dfoomatic lsb-release rc2.d xmlfstab ltrace.conf rc3.d yp.confgconf mail rc4.d zlogingnome-vfs-2.0 mailcap rc5.d zlogoutgnome-vfs-mime-magic mail.rc rc6.d zprofilegpm-root.conf makedev.d rc.d zshenvgre.conf man.config rc.local zshrcgroup mdadm.conf rc.sysinitgroup- mgetty+sendfax redhat-lsbgroup.lock mime.types redhat-release[root@testtimeslinux etc]# cd vsftpd[root@testtimeslinux vsftpd]# lsvsftpd.conf[root@testtimeslinux vsftpd]# vi vsftpd.conf //编辑vsftpd.conf配置文件//将文件中#anon_mkdir_write_enable=YES和anon_upload_enable=YES前面的#号去掉。