操作系统为redhat 或者 Centos ,这两个也是市场上使用最多的。 1. 服务启动与关闭 service vsftpd status --查看状态 service vsftpd start --启动vsftpd 守护进程(启动服务) service vsftpd stop --关闭服务 chkconfig vsftpd on --开机自启动 chkconfig vsftpd off --开机不启动 2. 相关文件 /etc/vsftpd/ftpusers --禁止登录ftp的用户列表(与允许列表冲突时,优先禁止) /etc/vsftpd/user_list --允许登录ftp的用户列表 /etc/vsftpd/vsftpd.conf --ftp配置文件 3. vsftpd.conf 参数详解 /etc/vsftpd/vsftpd.conf 文件详解,分好类,方便大家查找与学习 #################匿名权限控制############### anonymous_enable=YES #是否启用匿名用户 no_anon_password=YES #匿名用户login时不询问口令 下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。 anon_upload_enable=(yes/no); #控制匿名用户对文件(非目录)上传权限。 anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限 anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限 anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名 注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置 write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他) anon_root=(none) #匿名用户主目录 anon_max_rate=(0) #匿名用户速度限制 anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073) chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username chown_username=whoever #匿名上传文件所属用户名 #################本地用户权限控制############### write_enable=YES #可以上传(全局控制) 删除,重命名 local_umask=022 #本地用户上传文件的umask userlist_enable=YES #限制了这里的用户不能访问 local_root #设置一个本地用户登录后进入到的目录 user_config_dir #设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名 download_enable #限制用户的下载权限 chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username chown_username=whoever #匿名上传文件所属用户名 chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 chroot_list_file=/etc/vsftpd/chroot_list #指定限制的用户文件 user_config_dir= #后面跟存放配置文件的目录。用来实现不同用户不同权限。 #在vsftpd.conf文件中加入这一句, #在相应的目录里面,为每个用户创建自己的配置文件,用来实现不同的权限 可以通过以下三条配置文件来控制用户切换目录。 chroot_list_enable=YES/NO #设置是否启用chroot_list_file配置项指定的用户列表文件。 #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 .默认值为yes。 chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定在自家目录中的用户的列表文件。 chroot_list_enable=YES 通过与chroot_local_user=YES/NO搭配能实现以下几种效果: 1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。 下面是个实例,希望对大家有用: 1、只能上传。不能下载、删除、重命名。 cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST 对于参数的详细的解释 cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER CWD - change working directory 更改目录 DELE - delete a remote file 删除文件 LIST - list remote files 列目录 MKD - make a remote directory 新建文件夹 NLST - name list of remote directory PWD - print working directory 显示当前工作目录 RETR - retrieve a remote file 下载文件 RMD - remove a remote directory 删除目录 RNFR - rename from 重命名 RNTO - rename to 重命名 STOR - store a file on the remote host 上传文件 # ABOR - abort a file transfer 取消文件传输 # CWD - change working directory 更改目录 # DELE - delete a remote file 删除文件 # LIST - list remote files 列目录 # MDTM - return the modification time of a file 返回文件的更新时间 # MKD - make a remote directory 新建文件夹 # NLST - name list of remote directory # PASS - send password # PASV - enter passive mode # PORT - open a data port 打开一个传输端口 # PWD - print working directory 显示当前工作目录 # QUIT - terminate the connection 退出 # RETR - retrieve a remote file 下载文件 # RMD - remove a remote directory # RNFR - rename from # RNTO - rename to # SITE - site-specific commands # SIZE - return the size of a file 返回文件大小 # STOR - store a file on the remote host 上传文件 # TYPE - set transfer type # USER - send username # less common commands: # ACCT* - send account information # APPE - append to a remote file # CDUP - CWD to the parent of the current directory # HELP - return help on using the server # MODE - set transfer mode # NOOP - do nothing # REIN* - reinitialize the connection # STAT - return server status # STOU - store a file uniquely # STRU - set file transfer structure # SYST - return system type 2、只能下载。不能上传、删除、重命名。write_enable=NO 3、只能上传、删除、重命名。不能下载。download_enable=NO 4、只能下载、删除、重命名。不能上传。 cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST ###################虚拟用户设置################### 虚拟用户使用PAM认证方式。 pam_service_name=vsftpd #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。 check_shell=YES #(注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 ) guest_enable= YES/NO #启用虚拟用户。默认值为NO。 guest_username=ftp #这里用来映射虚拟用户。默认值为ftp。 virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。 #当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。 ###################访问控制设置################### 两种控制方式:一种控制主机访问,另一种控制用户访问。 1、控制主机访问: tcp_wrappers=YES/NO 设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。 比如:若要仅允许192.168.10.1—192.168.10.254的用户可以连接FTP服务器, 则在 /etc/hosts.allow /etc/hosts.deny 文件中添加以下内容: 其格式如下: 限制的服务:ip(网段) vsftpd:192.168.1. vsftpd:192.168.1.12 vsftpd:192.168.1.0/255.255.255.0这里不能写成192.168.1.0/24 2、控制用户访问: vsftpd.ftpusers #用于保存不允许进行FTP登录的本地用户帐号。就是vsftp用户的黑名单 vsftpd.user_list (1)设置禁止vsftpd.user_list文件中的用户登录:要在主配置文件vsftpd.conf中修改如下两项, userlist_enable=yes userlist_deny=yes 说明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。 (2)设置只允许vsftpd.user_list文件中的用户登录;同样的道理要把主配置文件vsftpd.conf 中的语句修改如下两项: userlist_enable=yes userlist_deny=no 说明:配置完以后,只允许vsftpd.user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。 ###################超时设置################## idle_session_timeout=600 #空闲连接超时 data_connection_timeout=120 #数据传输超时 ACCEPT_TIMEOUT=60 #PAVS请求超时 connect_timeout=60 #PROT模式连接超时 ################服务器功能选项############### xferlog_enable=YES #开启日记功能 xferlog_std_format=YES #使用标准格式 log_ftp_protocol=NO #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用. pasv_enable=YES #允许使用pasv模式 pasv_promiscuous+NO #关闭安全检查,小心呀. port_enable=YES #允许使用port模式 prot_promiscuous #关闭安全检查 tcp_wrappers=YES #开启tcp_wrappers支持 pam_service_name=vsftpd #定义PAM 所使用的名称,预设为vsftpd。 nopriv_user=nobody #当服务器运行于最底层时使用的用户名 pasv_address=(none) #使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?) #################服务器性能选项############## ls_recurse_enable=YES #是否能使用ls -R命令以防止浪费大量的服务器资源 one_process_model #是否使用单进程模式 listen=YES 绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式 text_userdb_names=NO #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名 #称。若是希望出现拥有者的名称,则将此功能开启。 use_localtime=NO #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果 #use_sendfile=YES #测试平台优化 ################信息类设置################ ftpd_banner=welcome to FTP . #login时显示欢迎信息.如果设置了banner_file则此设置无效 dirmessage_enable=YES #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容 setproctitle_enable=YES #显示会话状态信息,关! ############## 文件定义 ################## chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #定义不能更改用户主目录的文件 userlist_file=/etc/vsftpd/vsftpd.user_list #定义限制/允许用户登录的文件 banner_file=/etc/vsftpd/banner #定义登录信息文件的位置 banned_email_file=/etc/vsftpd.banned_emails #禁止使用的匿名用户登陆时作为密码的电子邮件地址 xferlog_file=/var/log/vsftpd.log #日志文件位置 message_file=.message #目录信息文件 ############## 目录定义 ################# user_config_dir=/etc/vsftpd/userconf #定义用户配置文件的目录 local_root=webdisk #此项设置每个用户登陆后其根目录为/home/username/webdisk #定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录 #来说的. anon_root=/var/ftp #匿名用户登陆后的根目录 #############用户连接选项################# max_clients=100 #可接受的最大client数目 max_per_ip=5 #每个ip的最大client数目 connect_from_port_20=YES #使用标准的20端口来连接ftp listen_address=192.168.0.2 #绑定到某个IP,其它IP不能访问 listen_port=2121 #绑定到某个端口 ftp_data_port=2020 #数据传输端口 pasv_max_port=0 #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。 pasv_min_port=0 #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。 ##############数据传输选项################# anon_max_rate=51200 #匿名用户的传输比率(b/s) local_max_rate=5120000 #本地用户的传输比率(b/s) ##############安全选项################# Idle_session_timeout=600 #(用户会话空闲后10分钟) Data_connection_timeout=120 #(将数据连接空闲2分钟断) Accept_timeout=60 #(将客户端空闲1分钟后断) Connect_timeout=60 #(中断1分钟后又重新连接) Local_max_rate=50000 #(本地用户传输率50K) Anon_max_rate=30000 # (匿名用户传输率30K) Pasv_min_port=50000 # (将客户端的数据连接端口改在 Pasv_max_port=60000 #50000—60000之间) Max_clients=200 #(FTP的最大连接数) Max_per_ip=4 #(每IP的最大连接数) Listen_port=5555 #(从5555端口进行数据连接) (责任编辑:IT) |