当前位置: > Linux服务器 > ftp >

vsFTP服务器安装及相关参数配置

时间:2016-04-01 21:32来源:linux.it.net.cn 作者:IT
vsFTP参数设定及常见问题解决 


1.    vsFTP简介

        vsFTP是Very Secure FTP的缩写,意指非常安全的FTP服务。其功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务。


 

2.    常见问题解决

        a.    添加ftp账户

 
1
2
3
4
5
6
7
#touch /etc/vsftpd.chroot_list
#touch /etc/vsftpd.user_list
#addgroup ftp  #安装vsftp默认会创建一个ftp账号/组,此步可省略
#adduer --shell /sbin/nologin --home your_dir(eg./home/ftp) your_ftp_user
#usermod -aG ftp your_ftp_user
#vi /etc/shells
增加一行:/sbin/nologin #如果不增加,则在后期利用账号不能成功登陆ftp;同时设置为/sbin/nologin可保证创建的ftp账号不能作为系统账号登陆Linux系统;
        b.    500 OOPS: vsftpd: refusing to run with writable root inside chroot()

                vsftp安全性升级,禁止在ftp账户在其对应的根目录具有写权限;

                解决方法:用户根目录写权限去掉;

        c.    500 OOPS: cannot change directory:/home/*******

                如果selinux开启的,则在终端执行如下操作:

 
1
2
3
#getsebool ftpd_disable_trans #如果显示不是on,则执行以下
#setsebool -P ftpd_disable_trans 1
#service vsftpd restart
                还应该考虑ftp用户对应的访问目录的权限是否已经开启可读权限;

        d.    临时冻结ftp用户

 
1
2
3
4
#vi /etc/vsftpd.conf
userlist_enable=yes
userlist_deny=yes
#vi /etc/vsftpd.user_list #添加你要冻结的账户,这样在file文件内的账号将被临时冻结,如需重新开通ftp使用权限,将用户从此文件删除即可;
        e.    修改ftp用户访问目录
 
1
2
#vi /etc/passwd
#直接修改你ftp账户后面对应的目录即可
        f.    锁定ftp用户的访问目录权限
 
1
2
3
chroot_local_user=YES #文件中的用户可以访问本身目录以外的其他目录,不在文件中的账号不能访问本身目录以外的其他目录
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

        g.    上传文件权限

 
1
2
#chown ftp:ftp  your_dir(eg. /home/ftp)
#设定对应目录具有写权限;


 
3.    vsFTP常用参数配置

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
1、listen=YES
若设置为YES,开启监听网络。
2、anonymous_enable
若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。
如果开启的话,则可以通过用户名ftp或者anonymous来访问,密码随便。
3、local_enable
若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。
如果你拒绝了陌生人访问,那么这个必须设置为YES吧,否则谁能访问你的FTP呢?
4、write_enable
若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。
若为NO则所有FTP用户都无法写入,包括无法新建、修改、删除文件、目录等操作,也就是说用户都没办法上传文件!!
5、anon_upload_enable
若设置为YES,开启匿名用户的上传权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。若设置为NO,则关闭匿名用户的上传权限。
6、anon_mkdir_write_enable
若设置为YES,开启匿名用户新建目录的权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。若设置为NO,则关闭匿名用户新建目录的权限。
7、dirmessage_enable
若设置为YES,则可开启目录信息推送,也就是用户登录FTP后可以列出当前目录底下的文件、目录。 这个应该要开启吧!
8、xferlog_enable
若设置为YES,则开启登录、上传、下载等事件的日志功能。应开启!
9、xferlog_file=/var/log/vsftpd.log
指定默认的日志文件,可指定为其他文件。
10、xferlog_std_format
若设置为YES,则启用标准的ftpd日志格式。可以不启用。
11、connect_from_port_20
若设置为YES,则服务器的端口设为20。
如果不想用端口20,可以另外通过ftp_data_port来指定端口号。
12、chown_uploads
若设置为YES,则匿名用户上传文件后系统将自动修改文件的所有者。
若要开启,则chown_username=whoever也需指定具体的某个用户,用来作为匿名用户上传文件后的所有者。
13、idle_session_timeout=600
不活动用户的超时时间,超过这个时间则中断连接。
14、data_connection_timeout=120
数据连接超时时间 。
15、ftpd_banner=Welcome to blah FTP service.
FTP用户登入时显示的信息 。
16、local_root=/home/ftp
指定一个目录,用做在每个本地系统用户登录后的默认目录。
17、anon_root=/home/ftp
指定一个目录,用做匿名用户登录后的默认目录。
18、chroot_local_user、 chroot_list_enable、chroot_list_file
这个组合用于指示用户可否切换到默认目录以外的目录。
其中,chroot_list_file默认是/etc/vsftpd.chroot_list,该文件定义一个用户列表。
若chroot_local_user 设置为NO,chroot_list_enable设置为NO,则所有用户都是可以切换到默认目录以外的。
若chroot_local_user 设置为YES,chroot_list_enable设置为NO,则锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。
若chroot_local_user 设置为YES,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动。
若chroot_local_user设置为NO,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都被限定在各自的默认目录活动,而列表以外的用户则可以访问默认目录以外的目录。
建议设置:chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!
好处:所有人都被限制在特定的目录里面。如果某些特定用户需要访问其他目录的权限,只需将其用户名写入chroot_list_file文件就可以赋予其访问其他目录的权限!
 
19、userlist_file、userlist_enable、userlist_deny
这个组合用于指示用户可否访问FTP服务。
其中,userlist_file默认是/etc/vsftpd.user_list,该文件定义一个用户列表。
若userlist_enable设置为YES,userlist_deny设置为NO,则只有userlist_file所指定的文件里面的用户列表里面的用户可以访问FTP。
若userlist_enable设置为YES,userlist_deny设置为YES,则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。
若userlist_enable设置为NO,userlist_deny设置为YES,则这个列表没有实际用处,起不到限制的作用!因为所有用户都可访问FTP。
建议设置:userlist_enable与userlist_deny都设置为YES。这样则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。
好处:只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!
 
20、user_config_dir
指定一个目录用于存放针对每个用户各自的配置文件,比如用户kkk登录后,会以该用户名建立一个对应的配置文件。
比如指定user_config_dir=/etc/vsftpd_user_conf, 则kkk登录后会产生一个/etc/vsftpd_user_conf/kkk的文件,这个文件保存的配置都是针对kkk这个用户的。可以修改这个文件而不用担心影响到其他用户的配置。

4.    设置vsFTP被动模式

        a.    配置参数

 
1
2
3
4
vi /etc/vsftpd.conf
pasv_enable=yes
pasv_min_port=50000
pasv_max_port=51000
        b.    开启模块


 
1
2
#modprobe ip_conntrack_ftp
#modprobe ip_nat_ftp

        c.    配置iptables(云主机安全组)

 
1
2
3
vi /etc/sysconfig/iptables
-A OUTPUT -p tcp --sport 50000:51000 -j ACCEPT
-A INPUT -p tcp --dport 50000:51000 -j ACCEPT


(责任编辑:IT)
------分隔线----------------------------