为什么vsftpd 配置pasv经常提示port及pasv要设定

vsftpd.conf内配置参数说明
无论我怎么改vsftpd.conf里面的local_umask上传后的文件属性总是-rw-------这是怎么回事?用的是虚拟用户登陆虚拟用户上传的文件属性用什么参数更改?问题已解决除本地用户外的其他用户属性配置函数anon_umask=啊,这么短也被加精华了,谢谢斑竹的鼓励,我还是把vsftpd.conf内所有配置函数的说明贴上来比较对得起“精华”两个字。原文章地址/www/net/02/117.shtmlvsftpd.conf设置部分引用:VSFTPD的设置选项VSFTPD的配置文件/etc/vsftpd/vsftpd.conf是个文本文件。以“#”字符开始的行是注释行。每个选项设置为一行,格式为“option=value”,注意“=”号两边不能留空白符。除了这个主配置文件外,还可以给特定用户设定个人配置文件,具体介绍见后。VSFTPD包中所带的vsftpd.conf文件配置比较简单,而且非常偏执狂的(文档自称:-))。我们可以根据实际情况对其进行一些设置,以使得VSFTPD更加可用。连接选项本部分主要是一些与建立FTP链接相关的选项。监听地址与控制端口listen_address=ipaddress此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了在主机的哪个IP地址上监听FTP请求,即在哪个IP地址上提供FTP服务。对于只有一个IP地址的主机,不需要使用此参数。对于多址主机,不设置此参数,则监听所有IP地址。默认值为无。listen_port=port_value指定FTP服务器监听的端口号(控制端口),默认值为21。此选项在standalone模式下生效。FTP模式与数据端口FTP分为两类,PORTFTP和PASVFTP,PORTFTP是一般形式的FTP。这两种FTP在建立控制连接时操作是一样的,都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接,并通过此链接进行传输操作指令。它们的区别在于使用数据传输端口(ftp-data)的方式。PORTFTP由FTP服务器指定数据传输所使用的端口,默认值为20。PASVFTP由FTP客户端决定数据传输的端口。PASVFTP这种做法,主要是考虑到存在防火墙的环境下,由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口),决定两者之间的数据传输端口更为方便一些。port_enable=YES|NO如果你要在数据连接时取消PORT模式时,设此选项为NO。默认值为YES。connetc_from_port_20=YES|NO控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用,NO不使用。默认值为NO,但RHL自带的vsftpd.conf文件中此参数设为YES。ftp_data_port=portnumber设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORTFTP模式。port_promiscuous=YES|NO默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。小心打开此选项。pasv_enable=YES|NOYES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。pasv_min_port=portnumberpasv_max_port=portnumber设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如,将有助于安全性的提高。pasv_promiscuous=YES|NO此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。pasv_address=此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incomingconnectdsocket)中获取。ASCII模式默认情况下,VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令,指明要使用ASCII模式,但是,VSFTPD表面上接受了asc命令,而在实际传输文件时,还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。ascii_upload_enable=YES|NO控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO。ascii_download_enable=YES|NO控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。性能与负载控制超时选项idle_session_timeout=空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为300。data_connection_timeout=空闲的数据连接的超时时间。默认值为300秒。accept_timeout=numericalvalue接受建立联机的超时设定,单位为秒。默认值为60。connect_timeout=numericalvalue响应PORT方式的数据联机的超时设定,单位为秒。默认值为60。以上两个选项针对客户端的,将使客户端空闲1分钟后自动中断连接,并在中断1分钟后自动激活连接。负载控制max_clients=numericalvalue此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了FTP服务器最大的并发连接数,当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。?max_per_ip=numericalvalue此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将影响到象网际快车这类的多进程下载软件。默认值为0,表示不限制。anon_max_rate=value设定匿名用户的最大数据传输速度value,以Bytes/s为单位。默认无。local_max_rate=value设定用户的最大数据传输速度value,以Bytes/s为单位。默认无。此选项对所有的用户都生效。此外,也可以在用户个人配置文件中使用此选项,以指定特定用户可获得的最大数据传输速率。步骤如下:①在vsftpd.conf中指定用户个人配置文件所在的目录,如:user_config_dir=/etc/vsftpd/userconf②生成/etc/vsftpd/userconf目录。③用户个人配置文件是在该目录下,与特定用户同名的文件,如:/etc/vsftpd/userconf/xiaowang④在用户的个人配置文件中设置local_max_rate参数,如:local_max_rate=80000以上步骤设定FTP用户xiaowang的最大数据传输速度为80KBytes/s。VSFTPD对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s,但实际的速度可能在80KBytes/s到120KBytes/s之间。当然,若是线路带宽不足时,速率自然会低于此限制。用户选项VSFTPD的用户分为三类:匿名用户、本地用户(localuser)以及虚拟用户匿名用户anonymous_enable=YES|NO控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。ftp_username=匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。no_anon_password=YES|NO控制匿名用户登入时是否需要密码,YES不需要,NO需要。默认值为NO。deny_email_enable=YES|NO此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址进行登录的匿名用户。即,当匿名用户使用banned_email_file文件中所列出的e-mail进行登录时,被拒绝。显然,这对于阻击某些Dos攻击有效。当此参数生效时,需追加banned_email_file参数banned_email_file=/etc/vsftpd.banned_emails指定包含被拒绝的e-mail地址的文件,默认文件为/etc/vsftpd.banned_emails。anon_root=设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/。anon_world_readable_only=YES|NO控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。anon_upload_enable=YES|NO控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。anon_mkdir_write_enable=YES|NO控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。anon_other_write_enable=YES|NO控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。chown_uploads=YES|NO是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO。chown_username=whoever指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。不推荐使用root用户。本地用户在使用FTP服务的用户中,除了匿名用户外,还有一类在FTP服务器所属主机上拥有账号的用户。VSFTPD中称此类用户为本地用户(localusers),等同于其他FTP服务器中的real用户。local_enable=YES|NO控制vsftpd所在的系统的用户是否可以登录vsftpd。默认值为YES。local_root=定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无。user_config_dir=定义用户个人配置文件所在的目录。用户的个人配置文件为该目录下的同名文件。个人配置文件的格式与vsftpd.conf格式相同。例如定义user_config_dir=/etc/vsftpd/userconf,并且主机上有用户xiaowang,lisi,那我们可以在user_config_dir的目录新增名为xiaowang、lisi的两个文件。当用户lisi登入时,VSFTPD则会读取user_config_dir下lisi这个文件中的设定值,应用于用户lisi。默认值为无。虚拟用户guest_enable=YES|NO若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。guest_username=定义VSFTPD的guest用户在系统中的用户名。默认值为ftp。安全措施用户登录控制pam_service_name=vsftpd指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。/etc/vsftpd.ftpusersVSFTPD禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。userlist_enable=YES|NO此选项被激活后,VSFTPD将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,VSFTPD查到该用户名在列表,VSFTPD就直接禁止掉该用户,不会再进行询问密码等后续步聚。默认值为NO。userlist_file=/etc/vsftpd.user_list指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。userlist_deny=YES|NO决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。NO,只允许在文件中的用户登录FTP服务器。tcp_wrappers=YES|NO在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES。目录访问控制chroot_list_enable=YES|NO锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。chroot_list_file=/etc/vsftpd/chroot_list指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。chroot_local_users=YES|NO将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。passwd_chroot_enable当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。文件操作控制hide_ids=YES|NO是否隐藏文件的所有者和组信息。YES,当用户使用"ls-al"之类的指令时,在目录列表中所有文件的拥有者和组信息都显示为ftp。默认值为NO。ls_recurse_enable=YES|NOYES,允许使用"ls-R"指令。这个选项有一个小的安全风险,因为在一个大型FTP站点的根目录下使用"ls-R"会消耗大量系统资源。默认值为NO。write_enable=YES|NO控制是否允许使用任何可以修改文件系统的FTP的指令,比如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE以及SITE。默认值为NO,不过自带的简单配置文件中打开了该选项。secure_chroot_dir=这选项指向一个空目录,并且ftp用户对此目录无写权限。当vsftpd不需要访问文件系统时,这个目录将被作为一个安全的容器,用户将被限制在此目录中。默认目录为/usr/share/empty。新增文件权限设定anon_umask=匿名用户新增文件的umask数值。默认值为077。file_open_mode=上传档案的权限,与chmod所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。local_umask=本地用户新增档案时的umask数值。默认值为077。不过,其他大多数的FTP服务器都是使用022。如果您的用户希望的话,可以修改为022。在自带的配置文件中此项就设为了022。提示信息ftpd_banner=loginbannerstring此参数定义了loginbannerstring(登录欢迎语字符串)。用户可以自行修改。预设值为无。当ftpd_banner设置后,将取代系统原来的欢迎词。banner_file=/directory/vsftpd_banner_file此项指定一个文本文件,当使用者登入时,会显示此该文件的内容,通常为欢迎话语或是说明。默认值为无。与ftpd_banner相比,banner_file是文本文件的形式,而ftpd_banner是字串格式。banner_file选项将取代ftpd_banner选项。dirmessage_enable=YES|MO控制是否启用目录提示信息功能。YES启用,NO不启用,默认值为YES。此功能启用后,当用户进入某一个目录时,会检查该目录下是否有message_file选项所指定的文档,若是有,则会出现此文档的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。message_file=此选项,仅在dirmessage_enable选项激活方生效。默认值为.message。日志设置xferlog_enable=YES|NO控制是否启用一个日志文件,用于详细记录上传和下载。该日志文件由xferlog_file选项指定。默认值为NO,但简单配置文件中激活此选项。xferlog_file=这个选项设定记录传输日志的文件名。默认值为/var/log/vsftpd.log。xferlog_std_format=YES|NO控制日志文件是否使用xferlog的标准格式,如同wu-ftpd一样。使用xferlog格式,可以重新使用已经存在的传输统计生成器。然而,默认的日志格式更为可读性。默认值为NO,但自带的配置文件中激活了此选项。log_ftp_protocol=YES|NO当此选项激活后,所有的FTP请求和响应都被记录到日志中。提供此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。其他设置setproctitle_enable=YES|NOYES,VSFTPD将在系统进程列表中显示每个会话(session)的状态。也就是说,进程报告将显示每个vsftpd会话在做什么(挂起、下载等),如用ps-ef|grepftp。出于安全的目的,可以考虑将此选项关闭。NO,进程报告只显示一个vsftpd进程在运行。默认值为NO。text_userdb_names=YES|No当使用者登入后使用ls-al之类指令时,目录列表的用户和组信息域,默认是出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。默认值为NO。user_localtime=YES|NO默认为NO。YES,VSFTPD显示目录列表时使用你本地时区的时间。默认是显示GMT时间。同样,由ftp命令“MDTM”返回的时间值也受此选项影响。check_shell=YES|NO此选项仅对不使用PAM方式的VSFTPD生效。当此选项关闭后,当本地用户登录时,VSFTPD不会检查/etc/shells文件以寻找一个有效的用户shell。默认为YES。nopriv_user=指定一个用户,当VSFTPD不想要什么权限时,使用此用户身份。这用户最好是一个专用的用户,而不是用户nobody。在大多数的机器上,nobody用户被用于大量重要的事情。默认值为nobody。pam_service_name=指明VSFTPD使用用PAM验证服务时的PAM配置文件名。默认值为ftp。
最新图文推荐
最新专栏文章
大家感兴趣的内容
&&<a rel="nofollow" class="red" href="" target="_blank" color="red新版网站排行榜
===全新上线===
网友热评的文章
seajs.config({
base: "/resource/passapi/scripts/"
seajs.use('seajs/seajs-css');
seajs.use(['artdialog/src/dialog-plus'], function (dialog) {
$('#favorite').on('click', function(){
$.getJSON('/passapi.php?op=userstatus&callback=?', function(data){
if (data.status == 1) {
var _this = $('#favorite').find('span');
$.getJSON('/?app=favorite&controller=favorite&action=add&jsoncallback=?&contentid='+contentid, function(json){
if(json.state){
_this.html('当前位置: >
vsftpd出现550 Permission denied.如何解决
时间: &#160;&#160; 来源:服务器之家 &#160;&#160; 投稿:root
1.vsftpd的匿名用户默认只支持下载权限
[root@localhost /]#&ftp
127.0.0.1&测试ftp用匿名用户登陆到本地服务器
Connected to 127.0.0.1.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root):&anonymous
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp&&&&&&&&&&&&&&&&&登陆成功(默认vsftp是开启匿名登录)
接下来测试匿名用户上传与下载
[root@localhost ~]#&touch
/var/ftp/pub/test.txt&先在匿名用户下载目录创建一个test.txt文件
[root@localhost /]#&cd root
[root@localhost ~]#&touch
test1.txt&&进入根目录创建一个test1.txt文件,作为上传测试
ftp&&cd pub
227 Entering Passive Mode (127,0,0,12,92,5)
150 Here comes the directory listing.
-rw-r--r--&&&&1
0&&&&&&&&0&&&&&&&&&&&&&&&6
Dec 28 14:59 test.txt
226 Directory send OK.
ftp&&mget test.txt&下载text.txt
mget test.txt?
227 Entering Passive Mode (127,0,0,12,123,33)
150 Opening BINARY mode data connection for test.txt (6
226 File send OK.
6 bytes received in 0.0047 seconds (1.2 Kbytes/s)
ftp&&!ls&测试是否下载到本地
anaconda-ks.cfg&&install.log&&install.log.syslog&&test1.txt&&test.txt&下载成功
ftp&&put test1.txt&上传test1.txt
local: test1.txt remote: test1.txt
200 PORT command successful. Consider using PASV.
550 Permission denied.&&请求被拒绝,说明没有上传权限
ftp&&delete test.txt
550 Permission denied.&&请求被拒绝,说明没有删除权限
2.让匿名用户支持上传功能,下载,创建目录文件的权限
要实现这个功能,必须做三件事情(测试环境是在关闭selinux情况下)
(1)修改/etc/vsftpd/vsftpd.conf---à去掉注释 anon_upload_enable=YES (2)修改/etc/vsftpd/vsftpd.conf---à去掉注释 anon_mkdir_write_enable=YES
以上两个步骤如下:
[root@localhost ~]#&vi
/etc/vsftpd/vsftpd.conf&&&&
25 # has an effect if the above global write enable is
activated. Also, you will
&&&&&26 # obviously need to create a
directory writable by the FTP user.
&&&&&27&anon_upload_enable=YES
&&&&&29 # Uncomment this if you want
the anonymous FTP user to be able to create
&&&&&30 # new directories.
&&&&&31&anon_mkdir_write_enable=YES
&&&&&33 # Activate directory messages -
messages given to remote users when they
&&&&&34 # go into a certain
directory.
&&&&&35 dirmessage_enable=YES
(3)文件系统中FTP匿名用户对某个目录有写权限
[root@localhost ~]#&cat /etc/passwd |grep
ftp:x:14:50:FTP
User:/var/ftp:/sbin/nologinà/var/ftp
ftp用户的家目录&/sbin/nologin&不支持系统登录,只能作为虚拟用户用来登录vsftpd
创建一个名为put目录,并定义这个文件的所有者为ftp
[root@localhost ftp]#&mkdir put
[root@localhost ftp]#&chown ftp
put&修改文件所有者为ftp
[root@localhost ftp]#&ll
drwxr-xr-x 2 root root -13 pub
drwxr-xr-x 2 ftp&&root
[root@localhost ftp]#&&service vsftpd
restart&重启vsftpd服务
关闭vsftpd:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[确定]
为vsftpd启动vsftpd:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[确定]
提示:要想让匿名用户支持删除和更名权限,必须在vsftpd.conf加入以下参数
anon_other_write_enable=YES&&允许匿名账号具有删除.更名权限
转载请注明原文地址:CentOS下vsftp设置、匿名用户&本地用户设置、PORT、PASV模式设置 - 如果你真的想做一件事,你一定会找到方法; 如果你不想做一件事,你一定会找到借口。 - ITeye技术网站
博客分类:
1, 安装:yum install vsftpd
2, 设置vsftp开机自启动:chkconfig --level 35 vsftpd on
3, 启动vsftpd守护进程:Service vsftpd start
4, 开启iptables防火墙21端口-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT ,然后重启service iptables restart&&
5, 截止到现在:
a. Vsftpd配置文件:/etc/vsftpd/vsftpd.conf
b. 系统用户ftp(默认无密码)已经可以作为vsftp的匿名用户来使用。
c. 从/etc/passwd中的值ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin可以看出:根目录 /var/ftp/, 禁止控制台登陆,也就是该用户只能进行ftp访问。
d. anon_upload_enable=YES,anon_mkdir_write_enable=YES被注释掉,即默认匿名用户不可上传文件,也不可以在服务器上创建目录。
e. port_enable=YES,即默认情况下,FTP& PORT主动模式被启用
f. connect_from_port_20=YES,即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。
g. ftp_data_port=port number,设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。
h. pasv_enable=YES,即默认情况下,FTP& PASV被动模式被启用。但是由于防火墙设置的原因,默认情况下,FTP PASV被动模式使用FTP会失败。
i. listen=YES,即默认情况下,vsftpd以单例模式监听IPv4 socket端口。该命令不能和listen_ipv6同时使用。因此如果要同时启用对IPv4和IPv6的支持的话,必须同时运行2份vsftpd,每份vsftpd包含自己的配置文件(一个监听IPv4,一个监听IPv6)
j. windows cmd下使用命令 ftp serverip,然后在弹出的提示画面中输入用户名“ftp”就能正常登录到ftp服务器。执行命令ls,从服务器端返回的如下信息:“200 PORT command successful. Consider using PASV.150 Here comes the directory listing.”中我们就可以看出,这个ftp连接执行在PORT主动模式下
k. 使用Winscp、FileZilla连接时,会发现ftp用户能正常登录,但是list命令执行超时。这是因为默认情况下,这些客户端的FTP都运行在PASV被动模式下,而vsftp服务器由于没有对PASV端口范围及相应的iptables防火墙做设置,数据传输的连接被阻塞导致命令执行超时。当客户端强制启用PORT主动模式连接后,就能正常使用ftp功能。
l. FileZilla强制启用FTP PORT主动访问方式:Edit-&Setting-&Connection-&Ftp-&Transfer Mode-&Select “Active” and uncheck “Allow fall back to other transfer mode on failure”
m. Winscp强制启用FTP PORT主动访问方式:在Winscp的login登录界面中,选择ftp,然后勾上“Advanced options”,选中左边导航中的Connection栏目,然后在弹出画面上不选中“Passive Mode”。
6, 匿名用户上传下载
a. anonymous_enable=YES
b. anon_upload_enable=YES
c. anon_mkdir_write_enable=YES
d. 目录权限设置:修改/var/ftp/pub的目录权限为744,并把目录的owner和group都改成ftp(ftp用户必须有可执行x权限,否则在执行ftp命令CWD pub时,会报错误:Response: 550 Failed to change directory. Error: Failed to retrieve directory listing。匿名用户下载是使用的是nobody这个用户,所以权限相应的other这个位置要有R权限才能被下载。)
e. chown ftp.ftp /var/ftp/pub
f. chmod 744 /var/ftp/pub
g. /var/ftp使用默认的权限755以及默认的owner、group:root
h. 如下关闭selinux,否则上传文件时报错误553 Could not create file. Error: Critical file transfer error。也可以不关闭selinux,在selinux中设置ftp例外,参考:
i. /etc/selinux/config文件中的SELINUX=enforcing,改成SELINUX=permissive,机器reboot(如果不想重启机器,也可以执行命令setenforce 0;setenforce 1 设置SELinux 成为enforcing模式;setenforce 0 设置SELinux 成为permissive模式。)
j. 上传后的文件不能被直接下载,如果需要可以直接被下载,要设置匿名用户上传文件时的掩码anon_umask=073
k. 匿名用户重命名,删除权限设置anon_other_write_enable=YES
l. no_anon_password=YES   #匿名用户登录时不询问口令
7, 由于默认情况下,匿名ftp用户的PASV模式访问被防火墙阻塞,启用PASV模式访问
a. pasv_enable=YES,即默认情况下,FTP& PASV被动模式被启用。
b. pasv_min_port=30000 ,设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意(1024 – 65535端口)。默认值为0。把端口范围设在比较高的一段范围内,比如。
c. pasv_max_port=31000
d. 防火墙设置:-A INPUT -m state --state NEW -m tcp -p tcp --dport
-j ACCEPT&& ######同时可以用参数-s 192.168.0.0/16来限制客户端IP范围,以这种方式增加安全性。
e. netstat -ap | grep ftp 查看服务器端ftp数据传输时使用的端口:
tcp&&
192.168.0.1:30661&&& 192.168.0.2:63731&&&&&&&& ESTABLISHED 1746/vsftpd(下载)
tcp&&&&&&& 0& 8.0.1:30886&&& 192.168.0.2:63750&&&&&&&& ESTABLISHED 1785/vsftpd(上传)
8,禁用匿名用户,启用系统本地用户
a. anonymous_enable=NO& 禁止匿名用户登录 local_enable=YES 允许本地用户登录
b. write_enable=YES& #本地用户可以上传(全局控制) 删除,重命名
c. local_umask=022 #本地用户上传文件的umask,上传文件默认权限644(666-022),上传文件夹默认权限755(777-022)
d. 关闭selinux,否则上传文件时报错误553 Could not create file. Error: Critical file transfer error。也可以不关闭selinux,在selinux中设置ftp例外,参考:
e. userlist_enable=yes&&& 启用/etc/vsftpd/user_list列表
f. userlist_deny=no&&& 只允许/etc/vsftpd/user_list列表中的用户登录(ftpusers限制仍然起作用)
g. chroot_list_enable=NO,chroot_local_user=YES,所有的用户均不能切换到其他目录。
h. useradd –d /ftp –s /bin/false prj& 添加本地系统的ftp用户prj,并设置用户home目录,禁止shell登录,设置密码passwd prj。默认创建的/ftp目录owner是prj,权限700。
i. 把用户prj加到user_list列表文件中
j. user_config_dir=/etc/vsftpd/userconf #设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名,实现不同用户不同权限(1,文件格式、属性和主配置文件一致 2,文件名没有.conf后缀& 3,这里的属性会覆盖主配置文件相应的属性 4,并不是所有属性放这里都会起作用)
k. 建立目录/etc/vsftpd/userconf,并创建ftp用户名想对应的文件prj,在文件中用local_root属性指定prj用户登录后进入的目录。还可以设置属性:cmds_allowed,local_umask=022, local_max_rate限速等
l. 编辑/etc/pam.d/vsftp文件,注释掉auth required pam_shells.so(这个语句的意思是只有包含shell的用户才能登录)
m. ftpd_banner定制ftp登录时的欢迎信息
n. max_clients=100 #FTP的最大连接数
o. max_per_ip=5  & #每IP的最大连接数
p. vsftpd服务器重启
9,禁用匿名用户,启用虚拟FTP用户
a. anonymous_enable=NO& 禁止匿名用户登录
b. local_enable=YES 允许本地用户登录,虽然虚拟用户不是操作系统用户,但是最终还是关联到虚拟宿主用户身上,因此,这里属性还是要设置为yes
c. pam_service_name=vsftpd #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
d. guest_enable=YES& 启用虚拟用户登录
e. guest_username=ftp #这里设置虚拟用户的宿主用户。默认值为ftp。
f. virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户与其宿主用户有相同的权限。 当此参数关闭(NO)时,虚拟用户与匿名用户有相同的权限。默认情况下此参数是关闭的(NO)。
g. 用db_load生成虚拟用户数据库
h. 修改pam.d下的vsftpd文件,修改用户认证方式
i. …
10,ssl加密的vsftp(vsftp with OpenSSL)参考:
11,vsftp配置用户磁盘配额(磁盘限额参考:
// 匿名用户设置
anonymous_enable=YES
no_anon_password=YES
anon_root=/var/ftp
anon_umask=073
anon_max_rate=
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable
chown_uploads
chown_username
// 本地用户设置
anonymous_enable=NO
write_enable=YES
userlist_enable=yes
userlist_deny=no
chroot_list_enable=NO
chroot_local_user=YES
user_config_dir=/etc/vsftpd/userconf
// 本地用户设置 - 各用户独立设置属性
local_root
local_umask=022
local_max_rate
vsftpd日志:默认情况下,vsftp在/var/log/xferlog文件中记录Wu-ftpd格式的日志(它会记录上传和下载的动作)。通过设置dual_log_enable和log_ftp_protocol,可以启用vsftp自己的日志,默认日志文件/var/log/vsftpd.log,其中会记录所有的ftp命令日志,看到的内容和FTP客户端FileZilla中显示的内容一致!所以调试错误的时候,貌似也没有开启的必要。ftp登录或者操作出问题的时候,主要看返回的错误代码是多少,然后找可能的原因。如553 Could not create file.
xferlog_enable=yes/no //是否启用 xferlog 日志格式
xferlog_std_format=yes/no //是否采用标准格式记录日志
xferlog_file=/path/to/logfile //xferlog 日志文件所在位置,默认为/var/log/xferlog
dual_log_enable=yes/no //是否采用VSFTPd自己的日志记录方式
log_ftp_protocol=yes/no //是否记录所有的ftp命令日志
syslog_enable=yes/no&& //是否将日志信息写入系统日志/var/log/messages中
常见ftp错误代码:
Connect 连接被拒绝: 可能原因是vsftpd服务没被启动
530 Permission denied: 可能原因是userlist_enable=YES并且/etc/vsftpd/user_list中包含要登录的ftp用户名&& 即user_list禁止了该用户的登录、或者可能是没有指定userlist_file=/etc/vsftpd/user_list
530 Login incorrect: 可能原因是登录的ftp用户名被包含在禁止登录列表/etc/vsftpdftpusers中 | 同时要确保用户名、密码是正确的 | 也可能是配置文件中少了一行pam_service_name=vsftpd |& 检查/etc/pam.d/vsftpd 文件里面lib的路径 | 编辑/etc/pam.d/vsftp文件,注释掉auth required pam_shells.so(这个语句的意思是只有包含shell的用户才能登录)
530 Non-anonymous sessions must use encryption.:服务器的强制,非匿名用户必须使用加密连接
500 OOPS: cannot open user list file:可能原因是不存在文件“/etc/vsftpd/user_list”或文件中不存在该帐户,解决:解决: cho username && /etc/vsftpd/user_list
500 OOPS: cannot open chroot() user list file | 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list:可能原因是不存在文件“/etc/vsftpd/chroot_list”
500 OOPS: missing value in config file: 可能原因是配置文件“=”等号前值有问题,或只有一个空格
500 OOPS: bad bool value in config file: 可能原因是配置文件=”等号后值有问题
500 OOPS: unrecognised variable in config file: 可能原因是参数前有空格
500 OOPS: chdir, 500 OOPS: child died, 500 OOPS: chroot:可能原因是用户主目录没有权限或没有主目录,或者还是selinux影响的
500 OOPS: vsftpd: both local and anonymous access disabled!匿名用户和本地用户登录都被禁用
GnuTLS error -12: A TLS fatal alert has been received.:received.:Filezilla最新版本认为vsftpd默认的加密算法"DES-CBC3-SHA"不够安全而拒绝连接导致的。有两种办法解决该问题,一是降级你的Filezilla客户端版本到3.5.3以下,二是更改服务器端vsftpd的配置。增加属性:ssl_ciphers=HIGH
ECONNREFUSED - Connection refused by server: 当启用隐式ssl连接,用filezilla、winscp客户端连接时报错,因为vsftpd此时服务器端的端口还是21,但是客户端确以990来连接。修改客户端连接时使用的参数或者服务器的通过参数listen_port设置端口为990,问题解决
浏览 23647
浏览: 917362 次
来自: 合肥
“要为每个虚拟网卡指定不同的物理地址”这句话有误吧,不同物理网 ...
你的神马故事?说给我听听。我知道日本淫很会编故事。你是日本淫? ...
你的神马故事?说给我听听。我知道日本淫很会编故事。你是日本淫? ...
你的神马故事?说给我听听。我知道日本淫很会编故事。你是日本淫? ...
你的神马故事?说给我听听。我知道日本淫很会编故事。你是日本淫? ...

我要回帖

更多关于 ftp port pasv 的文章

 

随机推荐