一、目标服务器安装配置ftp服务器
1、安装ftp服务,执行:
sudo apt install vsftpd
2、安装好后编辑配置文件,配置文件路径为 /etc 文件夹里面的vsftpd.conf文件
3、配置内容如下:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
local_root=/home/huang/ftpfiledir
allow_writeable_chroot=YES
其中比较重要的配置如下:
anonymous_enable=NO,禁止匿名登录
用户方面配置:
local_enable=YES,允许本地用户登录(root账户是不可以登录的)
write_enable=YES ,可以上传(全局控制) 删除,重命名
local_root=自定义路径,指定用户本地根目录路径
以下3个可以按照需要配置:
代表启动用户登录过滤
userlist_enable=YES,
是否拒绝,yes表示拒绝,user_file(下面一个配置)列表里的用户不能登录(黑名单),如果为no 则表示列表里的用户可以登录(白名单)
userlist_deny=YES,
列表里的用户,一个用户名占一行,没有该文件或文件夹的话需要用户自行建立,文件内容如下所示
userlist_file=/etc/vsftpd/user_list,
举个例子,userlist_enable=yes,启动用户过滤,userlist_deny=YES,表示/etc/vsftpd/user_list路径下的user_list文件中的用户拒绝访问ftp。相反,userlist_deny=No,只有user_list文件中的用户可以访问ftp;
chroot****环境配置(限制访问除主目录以外其他路径):
是否启动限制用户的名单, YES为启用, NO禁用
chroot_list_enable=No,
,是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到目录之外的)
chroot_local_user=yes
是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于 chroot_local_user的值,没有该文件或文件夹的话需要用户自行建立。
chroot_list_file=/etc/vsftpd/chroot_list ,
组合效果如下表:
建议使用:chroot_list_enable=No,chroot_local_user=yes的组合,这样所有用户都不能访问其他路径。
二、文件权限配置
在上面的local_root=/home/huang/ftpf这项配置中,要注意文件夹的权限配置,例如ftpf做为根目录,要把所属用户和用户组权限授予使用ftp的用户,例如用户是 huang:
或者是专门建立一个使用ftp的用户(然后使用上面所述的userlist_enable等配置项限制)
三、启动
以上配置弄好后,设置开机自启:sudo systemctl enable vsftpd
启动:sudo service vsftpd start (sudo systemctl start vsftpd)
查看运行状态:sudo service vsftpd status (sudo systemctl status vsftpd)