Linux:用vsftpd工具搭建ftp服务器

vsftpd是一个开源免费的搭建ftp服务器的工具

安装:

yum install vsftpd

service vsftpd start
service vsftpd status
chkconfig vsftpd on # 开机启动,centos 6

注意防火墙,防火墙配置参考其他博文

开启vsftpd服务后,可以在浏览器输入 ftp://服务器地址 访问ftp服务器的共享目录里的文件。

假设ftp用户的共享目录为:/home/ftpuser/
我们如果想让/mnt/ftp/目录下的文件能够通过ftp服务访问到,可以将目录挂载到ftp用户共享目录下:

mkdir -p /home/ftpuser/mnt
mount --bind /mnt/ftp/ /home/ftpuser/mnt

用户管理:

配置文件位置:/etc/vsftpd/vsftpd.conf
配置用户权限的三个配置文件:
三个文件格式一样,都是一行一个用户名,三个文件的优先级顺序为:
**ftpusers > user_list > chroot_list **
ftpusers:黑名单文件,不受配置影响,不允许里面的用户登录ftp服务(输入密码机会都没有,直接拒绝)。
user_list:受userlist_enable配置项影响,若userlist_enable=NO忽略,若userlist_enable=YES,取决于userlist_deny的值,YES为黑名单(默认),NO为白名单(若为白名单则只允许其内用户登录)。
使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous。

userlist_deny=YES userlist_deny=NO
userlist_enable=YES user_list为黑名单,除此之外的用户都可以访问ftp服务。 user_list为白名单,只允许白名单用户访问ftp服务。
userlist_enable=NO 忽略userlist_deny配置和user_list文件 忽略userlist_deny配置和user_list文件

chroot_list:通过chroot_local_user、chroot_list_enable和chroot_list_file三个配置项来指定哪些用户可以访问其主目录以外的目录。

chroot_local_user=YES chroot_local_user=NO
chroot_list_enable=YES 1.所有用户都被限制在其主目录下 (主目录作为/根目录,下同)
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制
1.所有用户都不被限制其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=NO 1.所有用户都被限制在其主目录下
2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户
1.所有用户都不被限制其主目录下
2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

使用匿名用户:

配置项anonymous_enable=YES/NO决定是否支持匿名用户,若支持匿名用户,匿名用户共享文件夹位置:/var/ftp/
匿名用户注意两点:
1、不管chroot_local_user、chroot_list_enable怎么设置,匿名用户都不能访问/var/ftp/目录外的目录。
2、如果设置了白名单,匿名用户将无法登入,除非显式在user_list中加入一行:anonymous。


配置ftp用户最佳实践:

修改配置文件(以下是完整内容,可直接编辑替换):

[root@xjbpc con]# cat /etc/vsftpd/vsftpd.conf
# 禁用匿名用户
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
tcp_wrappers=YES
listen=YES
pam_service_name=vsftpd
# 文件chroot_list记录允许访问主目录以外目录的用户列表
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
# 文件user_list为白名单,仅允许这些用户访问ftp服务
userlist_enable=YES
userlist_deny=NO 

创建一个单独用户专门访问ftp服务:

useradd -g root -s /sbin/nologin ftpuser  #主目录默认为/home/ftpuser
passwd ftpuser  # 给用户设置密码

然后需要在/etc/vsftpd/user_list里添加用户:

ftpuser # 必须保证/etc/vsftpd/ftpusers黑名单里没有ftpuser用户

若想让该用户可以访问主目录外的目录,只需在/etc/vsftpd/chroot_list里加入用户ftpuser。

posted @ 2018-12-22 20:44  xuejianbest  阅读(819)  评论(0编辑  收藏  举报