当前位置: 首页 > Linux

使用vsftpd搭建ftp服务器

时间:2023-04-06 02:36:32 Linux

1。简介:在ubuntu环境下使用vsftpd搭建ftp服务器。.vsftp是专门为linux等unix类型系统设计的ftp服务器。vsftpd支持ipv6和ssl。支持显式和隐式FTPS(不支持SFTP)。vsftp是Ubuntu、CentOS、Fedora、NimbleX、Slackware、RHELLinux系统的默认ftp服务器。2、配置环境ubuntu16.04.1x86_64GNU/Linux测试工具:FileZilla3.36.0**3。配置方法:**3.1。安装vsftpdsudoapt-getinstallvsftpdvsftp安装后会自动生成ftp用户和ftp组。3.2.备份配置文件vsftpd的配置文件在/etc/vsftpd.conf中,备份一个修改前的原文件。须藤cp/etc/vsftpd.conf/etc/vsftpd.conf.original3.3。部分配置文件介绍3.3.1.Anonymoususerlogin是否允许匿名用户登录ftp,默认是YES,只允许Anonymous用户下载#AllowanonymousFTP?(默认情况下禁用)。anonymous_enable=NO3.3.2。本地用户登录为了让/etc/passwd中的内部用户可以登录ftp,需要将此项设置为YES#取消注释允许本地用户登录。local_enable=YES3。3.3.上传设置如果需要对系统进行读写,需要将此项设置为YES#取消注释以启用任何形式的FTP写命令。write_enable=YES3.3.4。Chrootjail#You可以指定本地用户的显式列表以chroot()到他们的主#目录。如果chroot_local_user是YES,那么这个列表将成为#userstoNOTchroot()的列表。#chroot)chroot_local_user=YESchroot_list_e内级目录nable=YES#(defaultfollows)chroot_list_file=/etc/vsftpd.chroot_list这是一个很有意思的变量,这个是配置是否运行ftp的用户在离开自己的默认目录设置之前,需要手动添加vsftpd.chroot_list文件,存放该文件中ftp用户的含义根据chroot_local_user和chroot_list_enable的不同而不同。这里,两者都设置为YES,想要访问所有目录的ftp用户都存放在vsftpd.chroot_list文件中。3.3.5.阻止用户登录您可以通过设置来阻止某些用户访问ftp服务器。配置如下:userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO在配置文件中手动添加这三项,同时创建vsftpd.user_list。类似chrootjail配置参数,不同设置效果不同3.3.6.pam_service_namepam_service_name参数user配置虚拟ftp用户,此项需要设置为ftp,否则可能会出现530Loginincorrectloginfailure错误。#这个字符串是vsftpd将使用的PAM服务的名称。#pam_service_name=vsftpdpam_service_name=ftp3.3.7。连接限制在vsftpd文件中添加如下配置信息local_max_rate=1000000#最大数据传输速率,以字节/秒为单位max_clients=50#可以连接的最大客户端数max_per_ip=2#每个IP3.3.8的最大连接数。Othersettingsshowhiddenfiles#显示隐藏文件和“.”和“..”文件夹。#对不覆盖隐藏文件很有用:force_dot_files=YES隐藏文件所有者信息#隐藏有关文件所有者(用户和组)的信息。hide_ids=YES3.4。重启vsftpd服务通过重启vsftpd来应用配置更改,重启服务有三种方式1)sudoservicevsftpdrestart2)sudosystemctlrestartvsftpd.service3)sudo/etc/init.d/vsftpdrestart3.5.FTP用户创建useraddmyusername会在/home/路径下创建一个与用户默认路径相同的用户名文件夹。您可以使用useradd-d[directory]??myusername选项指定创建时的默认路径,也可以使用usermod-d[directory]??myusername重新指定用户默认路径。创建用户时,可以使用命令sudousermod–s/usr/sbin/nologinmyusername禁止ssh登录ftp用户。创建好用户后,就可以使用ftp工具进行连接了。4.一些ERROR解决方案4.1。500OOPS:vsftpd:refusingtorunwithwritablerootinsidechroot()如果将新的ftp用户路径指定为根路径,如/var/www/ftp,连接时可能会报500OOPS:vsftpd:refusingtorunwithwritablerootinsidechroot()错误。有两种解决方法:1.使用sudochmod–Ra-w[directory]??去掉可写权限。使用此方法将失去上传功能。2.在vsftpd.conf配置文件中添加allow_writeable_chroot=YES4.2.550Accessisdenied上传时可能会遇到550accessdenied错误。这时需要检查上传路径是否为ftp用户提供写权限。可能涉及的命令:1)将myusername用户添加到另一个用户组usermod–a–Gtheothergroupnamemyusername2)设置所有文件夹权限为755(drwxr-xr-x)find/opt/lampp/htdocs-typed-execchmod755{}\;3)将所有文件权限设置为644(-rw-r--r--)find/opt/lampp/htdocs-typef-execchmod644{}\;**5.参考信息**[1]。Howto:使用vsftpd轻松FTP,https://ubuntuforums.org/show...[2]。非常安全的FTP守护程序,https://wiki.archlinux.org/in...[3]。vsftpd配置:chroot_local_user和chroot_list_enable详解,https://blog.csdn.net/bluishg...[4]。如何为文件夹及其所有子文件夹和文件设置chmod?,https://stackoverflow.com/que...