Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 其他文档 > sftp配置全过程,sftp配置详解

sftp配置全过程,sftp配置详解

收藏

本作品内容为sftp配置全过程,格式为 doc ,大小 227328 KB ,页数为 47页

sftp配置全过程


('1Vsftp3.2VSFTP安全与效能兼备的ftp服务器3.2.1VSFTP概述FTP,filetransferprotocol,这是档案传输的通讯协议,也是一般最常用来传送档案的方式。读者在使用RedHat9的时候,可能会感受到ftpserver有一些改变:第一,就是ftpserver只剩下vsftp,原有的wuftp等都没放入第二,就是vsftp从XINETD中独立出来,并将设定档从/etc/vsftpd.conf之中移到/etc/vsftpd/vsftpd.conf。为什么做这样的改变?可以想见的是vsftp已有独立运作的能力,不需要XINETD来做更进一步的管控,并且类似sendmail、httpd、ssh、samba等,将设定文件的放入/etc下独立的目录。FTP分为两类,一种为PORTFTP,也就是一般的FTP另一类是PASVFTP,分述如下:PORTFTP这是一般形式的FTP,首先会建立控制频道,默认值是port21,也就是跟port21建立联机,并透过此联机下达指令。第二,由FTPserver端会建立数据传输频道,默认值为20,也就是跟port20建立联机,并透过port20作数据的传输。PASVFTP跟PORTFTP类似,首先会建立控制频道,默认值是port21,也就是跟port21建立联机,并透过此联机下达指令。第二,会由client端做出数据传输的请求,包括数据传输port的数字。这两者的差异为何?PORTFTP当中的数据传输port是由FTPserver指定,而PASVFTP的数据传输port是由FTPclient决定。通常我们使用PASVFTP,是在有防火墙的环境之下,透过client与server的沟通,决定数据传输的port。3.2.2范例3.2.1.直接启动VSFTP服务这个范例是套用RedHat的预设范例,直接启动vsftp。[root@relayvsftpd]#/sbin/servicevsftpdstartStartingvsftpdforvsftpd:OK]3.2.2.更换port提供服务:将预设的port21更换为2121为了安全,或是以port来区隔不同的ftp服务,我们可能会将ftpport改为21之外的port,那么,可参考以下步骤。Step1.修改/etc/vsftpd/vsftpd.conf新增底下一行listen_port=2121Step2.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]3.2.3.特定使用者peter、john不得变更目录使用者的预设目录为/home/username,若是我们不希望使用者在ftp时能够切换到上一层目录/home,则可参考以下步骤。Step1.修改/etc/vsftpd/vsftpd.conf将底下三行#chroot_list_enable=YES#(defaultfollows)#chroot_list_file=/etc/vsftpd.chroot_list改为chroot_list_enable=YES#(defaultfollows)chroot_list_file=/etc/vsftpd/chroot_listStep2.新增一个档案:/etc/vsftpd/chroot_list内容增加两行:peterjohnStep3.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]若是peter欲切换到根目录以外的目录,则会出现以下警告:ftp>cd/home550Failedtochangedirectory.3.2.4.取消anonymous登入若是读者的主机不希望使用者匿名登入,则可参考以下步骤。Step1.修改/etc/vsftpd/vsftpd.conf将anonymous_enable=YES改为anonymous_enable=NOStep2.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]3.2.5.安排欢迎话语若是我们希望使用者在登入时,能够看到欢迎话语,可能包括对该主机的说明,或是目录的介绍,可参考以下步骤。首先确定在/etc/vsftpd/vsftpd.conf当中是否有底下这一行dirmessage_enable=YES2楼RedHat9的默认值是有上面这行的。接着,在各目录之中,新增名为.message的档案,再这边假设有一个使用者test1,且此使用者的根目录下有个目录名为abc,那首先我们在/home/test1之下新增.message,内容如下:Hello~WelcometothehomedirectoryThisisfortestonly...接着,在/home/test1/abc的目录下新增.message,内容如下:Welcometoabc\'sdirectoryThisissubdir...那么,当使用者test1登入时,会看到以下讯息:230-Hello~Welcometothehomedirectory230-230-Thisisfortestonly...230-若是切换到abc的目录,则会出现以下讯息:250-Welcometoabc\'sdirectory250-250-Thisissubdir...3.2.6.对于每一个联机,以独立的process来运作一般启动vsftp时,我们只会看到一个名为vsftpd的process在运作,但若是读者希望每一个联机,都能以独立的process来呈现,则可执行以下步骤。Step1.修改/etc/vsftpd/vsftpd.conf新增底下一行setproctitle_enable=YESStep2.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]使用ps-ef的指令,可以看告不同使用者联机的情形,如下图所示:[root@homevsftpd]#ps-efgrepftproot20901016:41pts/000:00:00vsftpd:LISTENERnobody21202090017:18?00:00:00vsftpd:192.168.10.244:connectedtest121222120017:18?00:00:00vsftpd:192.168.10.244/test1:IDLEnobody21242090017:19?00:00:00vsftpd:192.168.10.244:connectedtest221262124017:19?00:00:00vsftpd:192.168.10.244/test2:IDLEroot21291343017:20pts/000:00:00grepftp[root@homevsftpd]#3.2.7.限制传输档案的速度:本机的使用者最高速度为200KBytes/s,匿名登入者所能使用的最高速度为50KBytes/sStep1.修改/etc/vsftpd/vsftpd.conf新增底下两行anon_max_rate=50000local_max_rate=200000Step2.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]在这边速度的单位为Bytes/s,其中anon_max_rate所限制的是匿名登入的使用者,而local_max_rate所限制的是本机的使用者。VSFTPD对于速度的限制,范围大概在80%到120%之间,也就是我们限制最高速度为100KBytes/s,但实际的速度可能在80KBytes/s到120KBytes/s之间,当然,若是频宽不足时,数值会低于此限制。3.2.8.针对不同的使用者限制不同的速度:假设test1所能使用的最高速度为250KBytes/s,test2所能使用的最高速度为500KBytes/s。Step1.修改/etc/vsftpd/vsftpd.conf新增底下一行user_config_dir=/etc/vsftpd/userconfStep2.新增一个目录:/etc/vsftpd/userconfmkdir/etc/vsftpd/userconfStep3.在/etc/vsftpd/userconf之下新增一个名为test1的档案内容增加一行:local_max_rate=250000Step4.在/etc/vsftpd/userconf之下新增一个名为test2的档案内容增加一行:local_max_rate=500000Step5.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]3.2.9-1.建置一个防火墙下的ftpserver,使用PORTFTPmode:预设的ftpport:21以及ftpdataport:20启动VSFTPD之后执行以下两行指令,只允许port21以及port20开放,其它关闭。iptables-AINPUT-ptcp-mmultiport--dport21,20-jACCEPT3楼iptables-AINPUT-ptcp-jREJECT--reject-withtcp-reset3.2.9-2.建置一个防火墙下的ftpserver,使用PORTFTPmode:ftpport:2121以及ftpdataport:2020Step1.执行以下两行指令,只允许port2121以及port2020开放,其它关闭。iptables-AINPUT-ptcp-mmultiport--dport2121,2020-jACCEPTiptables-AINPUT-ptcp-jREJECT--reject-withtcp-resetStep2.修改/etc/vsftpd/vsftpd.conf新增底下两行listen_port=2121ftp_data_port=2020Step3.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]在这边要注意,8、9两个例子中,ftpclient(如cuteftp)的联机方式不能够选择passivemode,否则无法建立数据的联机。也就是读者可以连上ftpserver,但是执行ls、get等等的指令时,便无法运作。3.2.10.建置一个防火墙下的ftpserver,使用PASSFTPmode:ftpport:2121以及ftpdataport从9981到9986。Step1.执行以下两行指令,只允许port2121以及port9981-9990开放,其它关闭。iptables-AINPUT-ptcp-mmultiport--dport2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990-jACCEPTiptables-AINPUT-ptcp-jREJECT--reject-withtcp-resetStep2.修改/etc/vsftpd/vsftpd.conf新增底下四行listen_port=2121pasv_enable=YESpasv_min_port=9981pasv_max_port=9986Step3.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]在这边要注意,在10这个例子中,ftpclient(如cuteftp)的联机方式必须选择passivemode,否则无法建立数据的联机。也就是读者可以连上ftpserver,但是执行ls,get等等的指令时,便无法运作。3.2.11.将vsftpd与TCP_wrapper结合若是读者希望直接在/etc/hosts.allow之中定义允许或是拒绝的来源地址,可执行以下步骤。这是简易的防火墙设定。Step1.确定/etc/vsftpd/vsftpd.conf之中tcp_wrappers的设定为YES,如下图所示:tcp_wrappers=YES这是RedHat9的默认值,基本上不需修改。Step2.重新启动vsftpd[root@homevsftpd]#/sbin/servicevsftpdrestartShuttingdownvsftpd:OK]Startingvsftpdforvsftpd:OK]Step3.设定/etc/hosts.allow,譬如提供111.22.33.4以及10.1.1.1到10.1.1.254连线,则可做下图之设定:vsftpd:111.22.33.410.1.1.:allowALL:ALL:DENY3.2.12.将vsftpd并入XINETD若是读者希望将vsftpd并入XINETD之中,也就是7.x版的预设设定,那么读者可以执行以下步骤。Step1.修改/etc/vsftpd/vsftpd.conf将listen=YES改为listen=NOStep2.新增一个档案:/etc/xinetd.d/vsftpd内容如下:servicevsftpd{disable=nosocket_type=streamwait=nouser=rootserver=/usr/sbin/vsftpdport=21log_on_success+=PIDHOSTDURATIONlog_on_failure+=HOST}Step3.重新启动xinetd[root@homevsftpd]#/sbin/servicexinetdrestartStoppingxinetd:OK]Startingxinetd:OK]3.2.3设定档说明在范例中,有些省略的设定可以在这边找到,譬如联机的总数、同一个位址的联机数、显示档案拥有者的名称等等,希望读者细读后,可以做出最适合自己的设定。格式vsftpd.conf的内容非常单纯,每一行即为一项设定。若是空白行或是开头为#的一行,将会被忽略。内容的格式只有一种,如下所示option=value4楼要注意的是,等号两边不能加空白,不然是不正确的设定。===ascii设定=====================ascii_download_enable管控是否可用ASCII模式下载。默认值为NO。ascii_upload_enable管控是否可用ASCII模式上传。默认值为NO。===个别使用者设定===================chroot_list_enable如果启动这项功能,则所有的本机使用者登入均可进到根目录之外的数据夹,除了列在/etc/vsftpd.chroot_list之中的使用者之外。默认值为NO。userlist_enable用法:YES/NO若是启动此功能,则会读取/etc/vsftpd.user_list当中的使用者名称。此项功能可以在询问密码前就出现失败讯息,而不需要检验密码的程序。默认值为关闭。userlist_deny用法:YES/NO这个选项只有在userlist_enable启动时才会被检验。如果将这个选项设为YES,则在/etc/vsftpd.user_list中的使用者将无法登入若设为NO,则只有在/etc/vsftpd.user_list中的使用者才能登入。而且此项功能可以在询问密码前就出现错误讯息,而不需要检验密码的程序。user_config_dir定义个别使用者设定文件所在的目录,例如定义user_config_dir=/etc/vsftpd/userconf,且主机上有使用者test1,test2,那我们可以在user_config_dir的目录新增文件名为test1以及test2。若是test1登入,则会读取user_config_dir下的test1这个档案内的设定。默认值为无。===欢迎语设定=====================dirmessage_enable如果启动这个选项,使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,若是有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。banner_file当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。ftpd_banner这边可定义欢迎话语的字符串,相较于banner_file是档案的形式,而ftpd_banner是字串的格式。预设为无。===特殊安全设定====================chroot_local_user如果设定为YES,那么所有的本机的使用者都可以切换到根目录以外的数据夹。预设值为NO。hide_ids如果启动这项功能,所有档案的拥有者与群组都为ftp,也就是使用者登入使用ls-al之类的指令,所看到的档案拥有者跟群组均为ftp。默认值为关闭。ls_recurse_enable若是启动此功能,则允许登入者使用ls-R这个指令。默认值为NO。write_enable用法:YES/NO这个选项可以控制FTP的指令是否允许更改filesystem,譬如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE以及SITE。预设是关闭。setproctitle_enable用法:YES/NO启动这项功能,vsftpd会将所有联机的状况已不同的process呈现出来,换句话说,使用ps-ef这类的指令就可以看到联机的状态。默认值为关闭。tcp_wrappers用法:YES/NO如果启动,则会将vsftpd与tcpwrapper结合,也就是可以在/etc/hosts.allow与/etc/hosts.deny中定义可联机或是拒绝的来源地址。pam_service_name这边定义PAM所使用的名称,预设为vsftpd。secure_chroot_dir这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd不需要filesystem的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty===纪录文件设定=====================xferlog_enable用法:YES/NO如果启动,上传与下载的信息将被完整纪录在底下xferlog_file所定义的档案中。预设为开启。xferlog_file这个选项可设定纪录文件所在的位置,默认值为/var/log/vsftpd.log。xferlog_std_format5楼如果启动,则纪录文件将会写为xferlog的标准格式,如同wu-ftpd一般。默认值为关闭。===逾时设定======================accept_timeout接受建立联机的逾时设定,单位为秒。默认值为60。connect_timeout响应PORT方式的数据联机的逾时设定,单位为秒。默认值为60。data_connection_timeout建立数据联机的逾时设定。默认值为300秒。idle_session_timeout发呆的逾时设定,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线,单位为秒。默认值为300。===速率限制======================anon_max_rate匿名登入所能使用的最大传输速度,单位为每秒多少bytes,0表示不限速度。默认值为0。local_max_rate本机使用者所能使用的最大传输速度,单位为每秒多少bytes,0表示不限速度。预设值为0。===新增档案权限设定==================anon_umask匿名登入者新增档案时的umask数值。默认值为077。file_open_mode上传档案的权限,与chmod所使用的数值相同。默认值为0666。local_umask本机登入者新增档案时的umask数值。默认值为077。===port设定======================connect_from_port_20用法:YES/NO若设为YES,则强迫ftp-data的数据传送使用port20。默认值为YES。ftp_data_port设定ftp数据联机所使用的port。默认值为20。listen_portFTPserver所使用的port。默认值为21。pasv_max_port建立资料联机所可以使用port范围的上界,0表示任意。默认值为0。pasv_min_port建立资料联机所可以使用port范围的下界,0表示任意。默认值为0。===其它========================anon_root使用匿名登入时,所登入的目录。默认值为无。local_enable用法:YES/NO启动此功能则允许本机使用者登入。默认值为YES。local_root本机使用者登入时,将被更换到定义的目录下。默认值为无。text_userdb_names用法:YES/NO当使用者登入后使用ls-al之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。默认值为NO。pasv_enable若是设为NO,则不允许使用PASV的模式建立数据的联机。默认值为开启。===更换档案所有权===================chown_uploads用法:YES/NO若是启动,所有匿名上传数据的拥有者将被更换为chown_username当中所设定的使用者。这样的选项对于安全及管理,是很有用的。默认值为NO。chown_username这里可以定义当匿名登入者上传档案时,该档案的拥有者将被置换的使用者名称。预设值为root。===guest设定=====================guest_enable用法:YES/NO若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。guest_username这里将定义guest的使用者名称。默认值为ftp。===anonymous设定==================anonymous_enable用法:YES/NO管控使否允许匿名登入,YES为允许匿名登入,NO为不允许。默认值为YES。no_anon_password若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。anon_mkdir_write_enable用法:YES/NO如果设为YES,匿名登入者会被允许新增目录,当然,匿名使用者必须要有对上层目录的写入权。默认值为NO。anon_other_write_enable用法:YES/NO如果设为YES,匿名登入者会被允许更多于上传与建立目录之外的权限,譬如删除或是更名。默认值为NO。anon_upload_enable称。默认值为ftp。deny_email_enable若是启动这项功能,则必须提供一个档案/etc/vsftpd.banner_emails,内容为emailaddress。若是使用匿名登入,则会要求输入emailaddress,若输入的emailaddress在此档案内,则不允许联机。默认值为NO。===Standalone选项==================listen用法:YES/NO若是启动,则vsftpd将会以独立运作的方式执行,若是vsftpd独立执行,如RedHat9的默认值,则必须启动若是vsftpd包含在xinetd之中,则必须关闭此功能,如RedHat8。在RedHat9的默认值为YES。listen_address若是vsftpd使用standalone的模式,可使用这个参数定义使用哪个IPaddress提供这项服务,若是主机上只有定义一个IPaddress,则此选项不需使用,若是有多个IPaddress,可定义在哪个IPaddress上提供ftp服务。若是不设定,则所有的IPaddress均会提供此服务。默认值为无。max_clients若是vsftpd使用standalone的模式,可使用这个参数定义最大的总联机数。超过这个数目将会拒绝联机,0表示不限。默认值为0。max_per_ip若是vsftpd使用standalone的模式,可使用这个参数定义每个ipaddress所可以联机的数目。超过这个数目将会拒绝联机,0表示不限。默认值为0。=============================3.2.4FTP数字代码的意义110重新启动标记应答。120服务在多久时间内ready。125数据链路埠开启,准备传送。150文件状态正常,开启数据连接端口。200命令执行成功。202命令执行失败。211系统状态或是系统求助响应。212目录的状态。213文件的状态。214求助的讯息。215名称系统类型。220新的联机服务ready。221服务的控制连接埠关闭,可以注销。225数据连结开启,但无传输动作。226关闭数据连接端口,请求的文件操作成功。227进入passivemode。230使用者登入。250请求的文件操作完成。257显示目前的路径名称。331用户名称正确,需要密码。332登入时需要账号信息。350请求的操作需要进一部的命令。421无法提供服务,关闭控制连结。425无法开启数据链路。426关闭联机,终止传输。450请求的操作未执行。451命令终止:有本地的错误。452未执行命令:磁盘空间不足。500格式错误,无法识别命令。501参数语法错误。502命令执行失败。6楼用法:YES/NO如果设为YES,匿名登入者会被允许上传目录的权限,当然,匿名使用者必须要有对上层目录的写入权。默认值为NO。anon_world_readable_only用法:YES/NO如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。ftp_username定义匿名登入的使用者名503命令顺序错误。504命令所接的参数不正确。530未登入。532储存文件需要账户登入。550未执行请求的操作。551请求的命令终止,类型未知。552请求的文件终止,储存位溢出。553未执行请求的的命令,名称不正确。2sftp3利用VSFTP架设Linux下的FTP站点2008-09-2518:03:39来源:互联网【大中小】评论:0条我要投稿收藏本文分享至微博站长交易(http://jy.chinaz.com)帮站长赚钱虚拟主机评测+IDC导航=IDC123.COM3.1.1.11.声明\uf0b7本文档的版权(c)2006-2007归etonyC.F.AN所有.转载自http://www.debsir.org/.3.1.1.22.FTP原理FTPTransferProtocol件传输协议的缩写,在RFC959中具体说明。FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式PORT模式(主动方式)FTP客户端首先和FTPServer的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP20端口发送数据。FTPserver必须和客户端建立一个新的连接用来传送数据。PASV模式(被动方式)在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV命令的时候,FTPserver打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTPserver将通过这个端口进行数据的传送,这个时候FTPserver不再需要建立一个新的和客户端之间的连接传送数据。如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。3.1.1.33.VSFTPDvsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如Linux,BSD,Solaris,HP-UX以及IRIX上面。它支持很多其他的FTP服务器不支持的特征。比如:\uf0b7非常高的安全性需求\uf0b7带宽限制\uf0b7良好的可伸缩性\uf0b7创建虚拟用户的可能性\uf0b7IPv6支持\uf0b7中等偏上的性能\uf0b7分配虚拟IP的可能性\uf0b7高速vsftpd的名字代表"verysecureFTPdaemon",安全是它的开发者ChrisEvans考虑的首要问题之一。在这个FTP服务器设计开发的最开始的时候,高安全性就是一个目标。一个例子就是vsftpd是在chroot模式下工作的,chroot模式就是为程序(这里就是vsftpd了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了---所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的FTP服务器将被从系统的其他部分独立开来,从而避免了更大的损失。由于有了如此多的特性,其中FTP服务的安全性应该是最重要的,vsftpd比其他FTP服务器更加优越。WU-FTPDhttp://www.wu-ftpd.org/在这里可以被视作一个反面的例子,因为它在过去的几年中出现了太多的安全缺陷。3.1.1.44.VSFTPD的基本配置3.1.1.54.1安装源代码安装详细参阅:http://www.vsftpdrocks.org/source/下载源代码wgetftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.1.tar.gz解压tarzxvfvsftpd-1.2.1.tar.gz进入源代码目录cdvsftpd-1.2.1编译make创建用户如果不存在nobody用户,请创建useraddnobody创建目录vsftpd需要/usr/share/empty目录,如果不存在,请创建:mkdir/usr/share/empty安装makeinstall复制配置文件到/etc目录cpvsftpd.conf/etc以独立方式启动vsftpd服务/usr/local/sbin/vsftpd&3.24.2使用Debian的方式安装#aptitudeupdate#aptitudeinstallvsftpd(2.0.5)3.2.1.15.配置文件说明/etc/vsftpd.confvsftpd的主配置文件/etc/ftpusers记录不允许访问FTP服务器的用户名单管理员可以把一些对系统安全有威胁的敏感账户记录在这个文件中,以免对系统造成威胁#/etc/ftpusers:listofusersdisallowedFTPaccess.Seeftpusers(5).rootdaemonbinsyssyncgamesmanlpmailnewsuucpnobody/etc/vsftpd.user_list此文件与userlist_file选项有关,也可通过userlist_file选项指定其他文件,默认为/etc/vsftpd.user_list,设置userlist_enable=YES时方可生效,默认(userlist_deny=YES)指定不能访问服务器的用户列表,如设定userlist_deny=NO,则FTP服务器仅允许此列表中的用户访问。/etc/init.d/vsftpdvsftpd的启动脚本/var/log/vsftpd.logvsftpd的日志文件编辑整理3.2.1.25.1配置相关内容参阅:manvsftpd.conf或参阅:我翻译的VSFTPD.CONF联机手册http://etony.9966.org/doc/other/vsftpd-man-zh.html3.2.1.35.2系统的启动与停止启动服务/etc/init.d/vsftpdstart重启服务/etc/init.d/vsftpdrestart停止服务/etc/init.d/vsftpdstop也可以使用rcconf工具设置vsftpd服务是否在系统引导时启动3.2.1.46.配置示例一个示例文件#以独立模式启动listen=YES#同时允许200客户端连入,每个IP最多允许4个进程max_clients=200max_per_ip=4允许匿名访问,只有下载权限。禁止本地(系统)用户登录#Accessrightsanonymous_enable=YESlocal_enable=NOwrite_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO#禁止匿名用户下载具有全局读取权限的文件,目录中的用户和组信息列取时都显示为"ftp".#被动模式下,服务器端口范围限制在50000~60000anon_world_readable_only=YESconnect_from_port_20=YEShide_ids=YESpasv_min_port=50000pasv_max_port=60000#生成详细的上载和下载日志,禁止使用"ls-R"命令,xferlog_enable=YESls_recurse_enable=NOascii_download_enable=NOasync_abor_enable=YES#以节省资源模式运行(针对Linux2.4内核),#远程客户端最大FTP命令间隔超过120秒,或空闲的数据连接超过300秒,都将被断开#匿名客户端允许的最大数据传输速率50000b/sone_process_model=YESidle_session_timeout=120data_connection_timeout=300anon_max_rate=500003.2.1.57.为VSFTPD配置虚拟用户(文本方式)3.2.1.67.1创建虚拟与用户数据库1.创建loguser.txt,格式如下:useridpass比如我创建两个用户:tony密码为tonypass,etony密码为etonypass则loguser.txt的内容如下:tonytonypassetonyetonypass2.安装数据库生成工具:#aptitudeinstalllibdb3-util3.生成数据库:#db_load-T-thash-floguser.txt/etc/vsftpd_login.db4.设置数据库文件的访问权限:#chmod600/etc/vsftpd_login.db3.2.1.77.2配置PAM文件修改/etc/pam.d/vsftpd内容如下:authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd_loginaccountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd_login3.37.3为虚拟用户创建本地系统用户useradd-d/home/ftpsitevirtualmkdir/home/ftpsitechownvirtual.virtual/home/ftpsitels-ld/home/ftpsitedrwxr-sr-x2virtualvirtual482006-08-1805:48/home/ftpsite在目录下创建一些内容echo"etony\'svsftpdserver">/home/ftpsite/msgchownvirtual.virtual/home/ftpsite/msg3.3.1.17.4创建/etc/vsftpd.conf根据需要创建/etc/vsftpd.conf,但要确保含有一下设置:anonymous_enable=NOlocal_enable=YESwrite_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NOchroot_local_user=YESguest_enable=YESguest_username=virtuallisten=YESlisten_port=21pasv_min_port=30000pasv_max_port=309993.3.1.27.5启动vsftpd/etc/init.d/vsftpdstartrestart3.3.1.37.6测试$lftplocalhost-utony,tonypasslftptony@localhost:~>ls-rw-r--r--11001100122Aug1721:49msglftptony@localhost:/>exit$lftplocalhost-utony,tonyplftptony@localhost:~>lsls:Loginfailed:530Loginincorrect.3.3.1.48.为VSFTPD配置虚拟用户(数据库方式)3.3.1.58.1安装MySQL数据库#aptitudeinstallmysql-serverlibpam-mysql当前MySQL数据库版本为5.0.24-1libpam-mysql0.6.2-1tonybox:/var/log#mysql-urootWelcometotheMySQLmonitor.Commandsendwith;or\\g.YourMySQLconnectionidis7toserverversion:5.0.22-Debian_4-logType\'help;\'or\'\\h\'forhelp.Type\'\\c\'toclearthebuffer.mysql>mysql>mysql>createdatabasevsftpd;QueryOK,1rowaffected(0.04sec)mysql>usevsftpdDatabasechangedmysql>createtableusers(namechar(20),passwdchar(20));QueryOK,0rowsaffected(0.02sec)mysql>insertintousersvalues(\'tony\',password(\'passtony\'));QueryOK,1rowaffected(0.02sec)mysql>insertintousersvalues(\'etony\',password(\'passetony\'));QueryOK,1rowaffected(0.01sec)mysql>grantselect,insertonvsftpd.userstovsftpduser@localhostidentifiedby\'vsftpdpass\';QueryOK,0rowsaffected(0.02sec)3.3.1.68.2创建用户tonybox:/var/log#mysql-uvsftpduser-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\\g.YourMySQLconnectionidis10toserverversion:5.0.22-Debian_4-logType\'help;\'or\'\\h\'forhelp.Type\'\\c\'toclearthebuffer.mysql>usevsftpdReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechangedmysql>selectfromusers;+----+-------+------------------+idnamepasswd+----+-------+------------------+1tony2351315b1bd1bd582etony59c0cde4781fb0be+----+-------+------------------+2rowsinset(0.00sec)mysql>3.3.1.78.3配置PAM文件修改/etc/pam.d/vsftpd内容如下:authrequired/lib/security/pam_mysql.souser=vsftpduserpasswd=vsftpdpasshost=localhostdb=vsftpdtable=usersusercolumn=namepasswdcolumn=passwdcrypt=2accountrequired/lib/security/pam_mysql.souser=vsftpduserpasswd=vsftpdpasshost=localhostdb=vsftpdtable=usersusercolumn=namepasswdcolumn=passwdcrypt=2crypt的值0:在数据库中明文存储1:使用crypt()函数加密存储2:使用MySQLPASSWORD()函数加密存储3.3.1.88.4其他配置同为VSFTPD配置虚拟用户(文本方式)3.3.1.98.5测试tonybox:~#lftplocalhost-uetony,passetonylftpetony@localhost:~>ls-rw-r--r--11001100122Aug1721:49msglftpetony@localhost:/>注:与mysql-server-5.0对应的libpam-mysql由于使用的PASSWORD()函数与服务器端使用的PASSWORD()不匹配,故无法实现密码加密,仅可实现在数据库中明文存储ftp用户密码。mysql-server-4.1与libpam-mysql(0.5.0-6)可以实现在数据库中使用加密存储ftp用户密码3.49.关于日志libpam-mysql0.6.2-1模块仍然不是很完善等待添加......3.4.1.110.FAQhttp://www.vsftpdrocks.org/faq/中文版参阅:http://wolfg.iblog.cn/index.php?p=ViewArticle$articleId=50969\uf0b7Q)为什么设置了chroot_local_user=YES后,符号链接(symlink)就不起作用了呢?\uf0b7A)这是chroot()这种安全机制如何工作的结果。可选地,看一下硬连接(hardlinks),或者,你用的是"现代的"Linux,看一下强大的"mount--bind"命令。\uf0b7Q)求助!我得到了"refusingtorunwithwritableanonymousroot"错误信息。\uf0b7A)vsftpd是不允许"危险(不安全)"的配置的。出现这个错误信息的原因通常是ftp的家(home)目录的属主权限不正确。家(home)目录的属主不应该是ftp用户自己,而且ftp用户也不能有写的权限。解决的方法是:chownrootftp;chmod-wftp\uf0b7Q)求助!上传或其他"写"命令都报"500Unknowncommand.".\uf0b7A)默认情况下"写"命令(上传和建新目录等)都是被禁止的.这是一种安全的方法.要允许写命令需要在配置文件/etc/vsftpd.conf中加入write_enable=YES.\uf0b7Q)求助!上传后的文件权限是-rw-------。\uf0b7A1)根据上传用户是本地用户还是匿名用户,修改local_umask或anon_umask选项。例如,设置anon_umask=022指定匿名上传的文件权限为-rw-r--r--。注意,22前面的0不能少。\uf0b7A2)也可以看看vsftpd.conf的man帮助中的新选项file_open_mode。4SUSE下vsftp架设以及访问帐号设置最近捣鼓了下linux(SUSE)上的vsftp的架设,总结几点如下以备忘:1、用putty连接上suse,运行命令:YaST,然后选择里面的NetworkServices,再找到NetworkServices(xinetd),然后运寻根它;2、找到ftp(vsftp),按照底部的说明进行安装,注意最后打开防火墙端口;3、安装好vsftp之后,架设就完成了一半;紧接着转到目录:/etc/下,使用vi打开文件vsftp.conf,如:vivsftp.conf,然后把能打开的选项都打开;4、使用useradd命令添加用户:useraddtest使用passwd命名设置密码,passwdtest(然后输入两次密码);最后给ftp的目录设置上所有权限,注意参数-R,chmod-R777/test/5在SUSELinux下安装配置VSFTP下面简单介绍下在SuSELinux下安装配置VSFTP及使用方法。一,准备条件VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。[root@hpe45root]#useraddnobodyuseradd:usernobodyexistsVSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。[root@hpe45root]#mkdir/usr/share/empty/mkdir:cannotcreatedirectory\'/usr/share/empty\':FileexistsVSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。[root@hpe45root]#mkdir/var/ftp/[root@hpe45root]#useradd-d/var/ftpftp接下来的操作对于ftp用户是否已经存在都是有用的。[root@hpe45root]#chownroot.root/var/ftp[root@hpe45root]#chmodog-w/var/ftp[z1]一般情况下,安装好vsftp后,不用做任何配置,应该可以通过本地用户名和密码登录ftp服务器,默认目录是用户根目录。确保ftpusers和user_list文件中没有要登录的用户名,要不然该用户可能被排除在外。ftpusers和user_list在/etc或者/etc/vsftpd目录中。注意的地方有:1、确保但不全有下面配置项vsftpd.conf二,安装yast-ivsftpd就行了三,配置配置要修改文件/etc/vsftpd.confwrite_enable=YESanon_world_readable_only=YESNO控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。anon_upload_enable=YESNO控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。anon_mkdir_write_enable=YESNO控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。anon_other_write_enable=YESNO控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。重点:吧var/ftp下的某个文件夹chown给ftp就可以匿名写入了vsftpd&直接运行chkconfigsetvsftpdon系统启动时自动运行本地及匿名用户都可以登陆我的配置文件:vsftpd.conf#Exampleconfigfile/etc/vsftpd.conf##Thedefaultcompiledinsettingsarefairlyparanoid.Thissamplefile#loosensthingsupabit,tomaketheftpdaemonmoreusable.#Pleaseseevsftpd.conf.5forallcompiledindefaults.##Ifyoudonotchangeanythinghereyouwillhaveaminimumsetupforan#anonymusFTPserver.##READTHIS:ThisexamplefileisNOTanexhaustivelistofvsftpdoptions.#Pleasereadthevsftpd.conf.5manualpagetogetafullideaofvsftpd\'s#capabilities.#GeneralSettings##UncommentthistoenableanyformofFTPwritecommand.#write_enable=YES##Activatedirectorymessages-messagesgiventoremoteuserswhenthey#gointoacertaindirectory.#dirmessage_enable=YES##Itisrecommendedthatyoudefineonyoursystemauniqueuserwhichthe#ftpservercanuseasatotallyisolatedandunprivilegeduser.##nopriv_user=ftpsecure##Youmayfullycustomisetheloginbannerstring:#ftpd_banner="欢迎登陆FTP!"##Youmayactivatethe"-R"optiontothebuiltinls.Thisisdisabledby#defaulttoavoidremoteusersbeingabletocauseexcessiveI/Oonlarge#sites.However,somebrokenFTPclientssuchas"ncftp"and"mirror"assume#thepresenceofthe"-R"option,sothereisastrongcaseforenablingit.##ls_recurse_enable=YES##Youmayspecifyafileofdisallowedanonymouse-mailaddresses.Apparently#usefulforcombattingcertainDoSattacks.##deny_email_enable=YES##(defaultfollows)##banned_email_file=/etc/vsftpd.banned_emails##Ifenabled,alluserandgroupinformationin#directorylistingswillbedisplayedas"ftp".##hide_ids=YES#LocalFTPuserSettings##Uncommentthistoallowlocaluserstologin.#local_enable=YES##Defaultumaskforlocalusersis077.Youmaywishtochangethisto022,#ifyourusersexpectthat(022isusedbymostotherftpd\'s)#local_umask=022##Uncommenttoputlocalusersinachroot()jailintheirhomedirectory#afterlogin.#chroot_local_user=YES##Youmayspecifyanexplicitlistoflocaluserstochroot()totheirhome#directory.Ifchroot_local_userisYES,thenthislistbecomesalistof#userstoNOTchroot().#chroot_list_enable=YES##(defaultfollows)#chroot_list_file=/etc/chroot_list##Themaximumdatatransferratepermitted,inbytespersecond,for#localauthenticatedusers.Thedefaultis0(unlimited).##local_max_rate=7200#AnonymusFTPuserSettings##AllowanonymousFTP?#anonymous_enable=YES##Anonymoususerswillonlybeallowedtodownloadfileswhichare#worldreadable.#anon_world_readable_only=YES##UncommentthistoallowtheanonymousFTPusertouploadfiles.Thisonly#hasaneffectiftheaboveglobalwriteenableisactivated.Also,youwill#obviouslyneedtocreateadirectorywritablebytheFTPuser.#anon_upload_enable=YES##Defaultumaskforanonymususersis077.Youmaywishtochangethisto022,#ifyourusersexpectthat(022isusedbymostotherftpd\'s)##anon_umask=022##UncommentthisifyouwanttheanonymousFTPusertobeabletocreate#newdirectories.#anon_mkdir_write_enable=YES##UncommentthistoenableanonymusFTPuserstoperformotherwriteoperations#likedeletionandrenaming.##anon_other_write_enable=YES##Ifyouwant,youcanarrangeforuploadedanonymousfilestobeownedby#adifferentuser.Note!Using"root"foruploadedfilesisnot#recommended!##chown_uploads=YES#chown_username=whoever##Themaximumdatatransferratepermitted,inbytespersecond,foranonymous#authenticatedusers.Thedefaultis0(unlimited).##anon_max_rate=7200#LogSettings##Logtothesyslogdaemoninsteadofusinganlogfile.#syslog_enable=YES##UncommentthistologallFTPrequestsandresponses.##log_ftp_protocol=YES##Activateloggingofuploads/downloads.#xferlog_enable=YES##Youmayoverridewherethelogfilegoesifyoulike.Thedefaultisshown#below.##vsftpd_log_file=/var/log/vsftpd.log##Ifyouwant,youcanhaveyourlogfileinstandardftpdxferlogformat.#Note:Thisdisablesthenormalloggingunlessyouenabledual_log_enablebelow.#xferlog_std_format=YES##Youmayoverridewherethelogfilegoesifyoulike.Thedefaultisshown#below.##xferlog_file=/var/log/xferlog##Enablethistohaveboothlogfiles.Standardxferlogandvsftpd\'sownstylelog.##dual_log_enable=YES##Uncommentthistoenablesessionstatusinformationinthesystemprocesslisting.##setproctitle_enable=YES#TransferSettings##MakesurePORTtransferconnectionsoriginatefromport20(ftp-data).#connect_from_port_20=YES##Youmaychangethedefaultvaluefortimingoutanidlesession.#idle_session_timeout=600##Youmaychangethedefaultvaluefortimingoutadataconnection.#data_connection_timeout=120##EnablethisandtheserverwillrecogniseasynchronousABORrequests.Not#recommendedforsecurity(thecodeisnon-trivial).Notenablingit,#however,mayconfuseolderFTPclients.##async_abor_enable=YES##BydefaulttheserverwillpretendtoallowASCIImodebutinfactignore#therequest.TurnonthebelowoptionstohavetheserveractuallydoASCII#manglingonfileswheninASCIImode.#Bewarethatturningonascii_download_enableenablesmaliciousremoteparties#toconsumeyourI/Oresources,byissuingthecommand"SIZE/big/file"in#ASCIImode.#TheseASCIIoptionsaresplitintouploadanddownloadbecauseyoumaywish#toenableASCIIuploads(topreventuploadedscriptsetc.frombreaking),#withouttheDoSriskofSIZEandASCIIdownloads.ASCIImanglingshouldbe#ontheclientanyway..##ascii_upload_enable=YES#ascii_download_enable=YES##SettoNOifyouwanttodisallowthePASVmethodofobtainingadata#connection.##pasv_enable=NO#PAMsetting.DoNOTchangethisunlessyouknowwhatyoudo!#pam_service_name=vsftpd#Setlisten=YESifyouwantvsftpdtorunstandalone#listen=YES#Settossl_enable=YESifyouwanttoenableSSLssl_enable=NO6suse下安装配置vsftp来源:ChinaUnix博客日期:2007.04.1813:27(共有0条评论)我要评论该文档参考“人来疯”的vsftp配置大全而写,如下是文档链接:人来疯的vsftp配置大全但是该文档是针对RedHat的RHEL的安装配置,在suse上不能完全通过,对于loc用户模式不能编译成功。下面是我对该文档的一个补充在下载完vsftpd的安装包后,进行编译,我使用的是最新本版本vsftpd-2.0.5,可以去下列地址进行下载vsftp下载地址然后下载vsftpd-2.0.5.tar.gz修改文件builddefs.h后进行编译,编译过程中出现如下错误:/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:cannotfind-lsslcollect2:ldreturned1exitstatusmake:[vsftpd]Error1上面的错误说明找不到ssl的动态库,去系统中查找是否存在ssl的动态库。linux:~#ls/usr/lib/ssl/usr/lib/libssl.so.0/usr/lib/libssl.so.0.9.7说明存在ssl的动态库,只需要建立链接即可linux:~#ln-s/usr/lib/libssl.so.0.9.7/usr/lib/libssl.so创建链接后查看:linux:/tmp/ftp/vsftpd-2.0.5#ls/usr/lib/ssl/usr/lib/libssl.so/usr/lib/libssl.so.0/usr/lib/libssl.so.0.9.7再进行编译,又出现如下错误:/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:cannotfind-lcryptocollect2:ldreturned1exitstatusmake:[vsftpd]Error1上面的错误说明找不到crypto的动态库,去系统中查找是否存在ssl的动态库。linux:~#ls/usr/lib/crypto/usr/lib/libcrypto.so.0.9.7/usr/lib/libcrypto.so.0/usr/lib/libgcrypto.so说明存在ssl的动态库,只需要建立链接即可linux:~#ln-s/usr/lib/libcrypto.so.0.9.7/usr/lib/libgcrypto.so\x7f创建链接后查看:linux:/tmp/ftp/vsftpd-2.0.5#ls/usr/lib/crypto/usr/lib/libcrypto.so/usr/lib/libcrypto.so.0.9.7/usr/lib/libcrypto.so.0/usr/lib/libgcrypto.so然后再编译就成功了,接着按照“人来疯”的文档进行配置即可。OS版本如下:linux:/tmp/ftp/vsftpd-2.0.5#more/etc/SuSE-releaseSUSELINUXEnterpriseServer9(i586)VERSION=9PATCHLEVEL=2Linux下vsftp的重新安装和配置虚拟用户重新安装和配置虚拟用户以下都是在root用户下进行的#tarzxvfvsftpd-2.0.5.tar.gz——解压#cdvsftpd-2.0.5.tar.gz——解压后进入vsftpd-2.0.5.tar.gz目录#mkdir/usr/share/empty/——VSFTPD默认设置需要一个空目录:/usr/share/empty#mkdir/var/ftp/——如果容许匿名用户(anonymous),那么你将需要一个"ftp"用户和其home目录(这个home目录不属于“ftp”用户,而且“ftp"用户也对其没有写权限)在你的系统中存在。#adduser然后回车,依照程序说明来添加两个用户"nobody"和"ftp",\'nobody\'一般都已经存在来,如果添加时提示用户已经存在,就不用添了。\'ftp\'用户设置时主目录都设在/var/ftp#chmod755/var/ftp——把/var/ftp目录的权限设为drwxr-xr-x#make#makeinstall#cpvsftpd.conf/etc——"makeinstall"不会拷贝默认的配置文件,所以手工拷贝过去。不同的系统位置可能不一样,看一下,如果有/etc/vsftp目录的话,就拷贝到/etc/vsftp下安装完成。测试一下:编辑/etc/vsftpd.conf,在最下面加入以下这一行:listen=YES确定你没有运行其他FTP服务(否则VSFTPD不能占用FTP所需的21端口)。#/usr/local/sbin/vsftpd&[1]306如果一切正常,那么你将连上FTP服务器#ftplocalhostConnectedtolocalhost(127.0.0.1)。220(vsFTPd2.0.1)Name:ftp331Pleasespecifythepassword.Password:230Loginsuccessful.Havefun.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>运行方式:VSFTPD能运行在独立模式(standalone)或者通过inetd来启动。独立模式(standalone)就是前面测试时用的方法,在vsftpd.conf加入"listen=YES"用xinetd服务启动请在/etc/xinetd.d/vsftpdserviceftp{socket_type=streamwait=nouser=rootserver=/usr/local/sbin/vsftpd#server_args=#log_on_success+=DURATIONUSERID#log_on_failure+=USERIDnice=10disable=no}配置vsftp修改/etc/vsftpd.conf,vsftpd.conf比较的简单,有很多选项没有列出来,具体可以看blog里的另外篇。有几个可能会比较常用到的但是不在vsftpd.conf中的列在下面:让vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:max_clients=100max_per_ip=5anon_max_rate=数字——这是匿名的下载速度local_max_rate=数字——这是vsFTP服务器上普通用户的下载速度注:这个数字的单位是字节,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以100KB下载,所以这个数字应该是1024x100=102400所以我们要在vsftpd.conf中加入下面的两行:anon_max_rate=102400local_max_rate=102400目录的说明:在vsftpd.cof文件中,有dirmessage_enable=YES,然后在目录中建一个文件".message"在文件中写上有关目录的说明就可以了。配置vsftp虚拟用户1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:#viaccount.txtylg1234zhanghong4321gou56782.生成口令库文件,并修改其权限:#db_load-T-thash-f./account.txt/etc/account.db#chmod600/etc/account.db3.新建一个虚拟用户的PAM文件。加上如下两行内容:#vi/etc/pam.d/vsftp.vuauthrequired/lib/security/pam_userdb.sodb=/etc/accountaccountrequired/lib/security/pam_userdb.sodb=/etc/account4.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:#useradd-d/ftpsitevirtual_user#chmod700/ftpsite经过该步骤的设置,/ftpsite就是virtual_user用户的主目录,该用户也是/ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。5.生成一个测试文件。先切换至virtual_user用户身份,然后在/ftpsite目录下创建一个文件:#su-virtual_user$vi/ftpsite/mytestThisisatestfile.$su-root6.编辑/etc/vsftpd.conf文件,使其整个文件内容如下所示(去掉了注释内容):anonymous_enable=NOlocal_enable=YESlocal_umask=022xferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESone_process_model=NOchroot_local_user=YESftpd_banner=WelcomtomyFTPserver.anon_world_readable_only=NOguest_enable=YESguest_username=virtual_userpam_service_name=vsftp.vu上面代码中,guest_enable=YES表示启用虚拟用户;guest_username=virtual则是将虚拟用户映射为本地用户,这样虚拟用户登录后才能进入本地用户virtual的目录/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件为vsftp.vu.7SUSE9.1下配置vsftp7.1.1VSFTP匿名用户配置获取VSFTP程序Vsftp官方下载:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz假如我们把他下载到/home/crystal目录#cd/home/crystal#tarxzvfvsftpd-2.0.3.tar.gz//解压缩程序#cdvsftpd-2.0.3#vibuilddefs.h\\\\编辑builddefs.h文件,文件内容如下:#ifndefVSF_BUILDDEFS_H#defineVSF_BUILDDEFS_H#undefVSF_BUILD_TCPWRAPPERS#defineVSF_BUILD_PAM#undefVSF_BUILD_SSL#endif/VSF_BUILDDEFS_H将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL#make//直接在vsftpd-2.0.3里用make编译#llvsftpd-rwxr-xr-x1rootroot86088Jun612:29vsftpd//可执行程序已被编译成功创建必要的帐号,目录:#useraddnobody//可能你的系统已经存在此帐号,那就不用建立#mkdir/usr/share/empty//可能你的系统已经存在此目录,那就不用建立#mkdir/var/ftp//可能你的系统已经存在此目录,那就不用建立#useradd-d/var/ftpftp//可能你的系统已经存在此帐号,那就不用建立#chownroot:root/var/ftp#chmodog-w/var/ftp请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin安装vsftp配置文件,可执行程序,man等:#install-m755vsftpd/usr/local/sbin/vsftpd-ano#install-m644vsftpd.8/usr/share/man/man8#install-m644vsftpd.conf.5/usr/share/man/man5#install-m644vsftpd.conf/etc/vsftpd-ano.conf这样就安装完成了,那么我们开始进行简单的配置#vim/etc/vsftpd-ano.conf,将如下三行加入文件listen=YESlisten_port=21anon_root=/var/ftp//设置匿名用户本地目录,和ftp用户目录必须相同listen=YES的意思是使用standalone启动vsftpd,而不是superdaemon(xinetd)控制它(vsftpd推荐使用standalone方式)#/usr/local/sbin/vsftpd-ano/etc/vsftpd-ano.conf&//以后台方式启动vsftpd注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:500OOPS:badboolvalueinconfigfilefor:listentcp_wrappers=YES这一行在原来的文档里面要求加入,但是在SUSE下不行,运行后出现500OOPS:tcp_wrappersissettoYESbutnotcpwrappersupportcompiledin!!这是因为suse的vsftpd是使用xinetd启动的,所以tcpwrapper限制本身都透过xinetd来处理,vsftpd本身的配置文件案内不需要开该参数...(from:http://expert.lccnet.com.tw/modules/newbb/viewtopic.php?topic_id=3639&forum=15)LYVM-Suse9:/#netstat-tulnActiveInternetconnections(onlyservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp000.0.0.0:210.0.0.0:LISTENtcp000.0.0.0:220.0.0.0:LISTENtcp00127.0.0.1:250.0.0.0:LISTENtcp00::1:25:::LISTENudp1844000.0.0.0:680.0.0.0:可以看到已经启动了。测试搭建好的匿名用户方式#ftp127.0.0.1Connectedto127.0.0.1.220(vsFTPd2.0.3)530PleaseloginwithUSERandPASS.530PleaseloginwithUSERandPASS.KERBEROS_V4rejectedasanauthenticationtypeName(127.0.0.1:root):ftp331Pleasespecifythepassword.Password://直接按回车230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.//通过输入binary可以转换为binary模式。//通过输入passive可以转换为passive模式。ftp>pwd257"/"ftp>quit221Goodbye.#OK,已经完成了,verynice.高级配置细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)为什么呢?因为vsftpd是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。#mkdir/var/ftp/pub#chmod-R777/var/ftp/pub为了测试方便,我们先建立一个名为kill-ano的脚本,是为了杀掉FTP程序的#!/bin/basha=`/bin/ps-Agrepvsftpd-anoawk\'{print$1}\'`kill-9$a这里要注意awk后面不可有空格,整个命令行由~键打出的`包围起来,{}由单引号\'包围。那么现在大家看看我的匿名服务器配置文件吧anonymous_enable=YES//允许匿名访问,这是匿名服务器必须的write_enable=YES//全局配置可写anon_umask=077//匿名用户上传的文件权限是-rw----#anon_umask=033//设成这个匿名用户可以上传下载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/vsftpd.log//将上传下载信息记录到/var/log/vsftpd.log中xferlog_std_format=YES//日志使用标准xferlog格式idle_session_timeout=600//客户端超过600S没有动作就自动被服务器踢出data_connection_timeout=120//数据传输时超过120S没有动作被服务器踢出ftpd_banner=Welcometod-1701.comFTPservice.//FTP欢迎信息anon_max_rate=80000//这是匿名用户的下载速度为80KBytes/s,自己的ftp可以改多一些check_shell=NO//不检测SHELL现在再测试,先kill掉再启动FTP程序#./kill-ano#/usr/local/sbin/vsftpd-ano/etc/vsftpd-ano.conf&上传一个文件测试一下,怎么样?OK了吧,下载刚上传的那个文件,恩?不行,提示550Failedtoopenfile.传输已失败!传输队列已完成1个文件传输失败没有关系,你记得咱们设置了anon_umask=077了吗?所以你下载不了,如果你到服务器上touch一个文件(644),测试一下,是可以被下载下来的,好了,匿名服务器就说到这里了。8在SUSELinuxEnterprise下安装配置VSFTP下面简单介绍下在SuSELinux下安装配置VSFTP及使用方法。一,准备条件VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。[root@hpe45root]#useraddnobodyuseradd:usernobodyexistsVSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。[root@hpe45root]#mkdir/usr/share/empty/mkdir:cannotcreatedirectory\'/usr/share/empty\':FileexistsVSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。[root@hpe45root]#mkdir/var/ftp/[root@hpe45root]#useradd-d/var/ftpftp接下来的操作对于ftp用户是否已经存在都是有用的。[root@hpe45root]#chownroot.root/var/ftp[root@hpe45root]#chmodog-w/var/ftp二,安装yast-ivsftpd就行了三,配置配置要修改文件/etc/vsftpd.confwrite_enable=YESanon_world_readable_only=YESNO控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。anon_upload_enable=YESNO控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。anon_mkdir_write_enable=YESNO控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。anon_other_write_enable=YESNO控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。重点:吧var/ftp下的某个文件夹chown给ftp就可以匿名写入了。四,运行vsftpd&直接运行chkconfigsetvsftpdon系统启动时自动运行。',)


  • 编号:1700774248
  • 分类:其他文档
  • 软件: wps,office word
  • 大小:47页
  • 格式:docx
  • 风格:商务
  • PPT页数:227328 KB
  • 标签:

广告位推荐

相关其他文档更多>