一.vsftp服务的启用
1.下载安装服务并启动
yum install vsftpd ##安装vsftpd
systemctl start vsftpd ##开启vsftpd
systemctl enable vsftpd ##设定开机自启动vsftpd
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定开启不启动火墙
2.如果不想关闭防火墙,则需要更改防火墙的设置
(1)图形更改防火墙设置
firewall-config
firewalld-cmd --permanent --add-service=ftp ##永久设定允许ftp服务开启端口
firewalld-cmd --reload ##重加载火墙配置
测试:
打开浏览器输入: ---->ftp://172.25.254.85
用ls命令检测是否可以浏览
二.ftp的基本信息
访问数据端口:21
数据传输端口:>1024的随机数
默认发布目录:/var/ftp/
访问方式:
lftp 172.25.254.9 ##匿名登陆
lftp 172.25.254.9 -u username ##用户登陆,登陆后默认在用户家目录中(/home/username)
服务主配置文件:/etc/vsftpd/vsftpd.conf
三.ftp的安全部署
以修改配置文件的方式实现ftp的安全配置
配置前必须先关闭selinux,然后重启系统
vim /etc/selinux/config ##selinux配置文件
selinux=disabled ##开机不启动selinux
reboot ##重启系统
1.对匿名用户进行设置
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO ##匿名用户是否可以登陆
anon_mkdir_readable_only=YES|NO ##匿名用户是否可以下载,NO表示可以
anon_umask=022 ##匿名用户上传文件的umask值
anon_upload_enable=YES|NO ##匿名用户是否可以上传文件
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub ##加大pub目录的权限,否则上传文件会出现553报错
anon_mkdir_write_enable=YES|NO ##匿名用户是否可以创建目录,只能在/var/ftp中建立目录
anon_other_write_enable=YES|NO ##匿名用户是否可以删除目录或文件
anon_max_rate=102400 ##匿名用户最大上速率,单位为B
chown_upload=YES
chown_username=kiosk ##修改匿名用户登陆的默认用户
max_client=10 ##允许最大登陆主机数
注:匿名用户默认是在服务器上以ftp用户身份登陆,并不是真的匿名
2.对本地用户进行设置
local_enable=YES|NO ##本地用户是否可以登陆
write_enable=YES|NO ##本地用户是否可以写
local_root=/mnt ##修改本地用户登陆的家目录
chroot_local_user=YES|NO ##限制本地用户切换目录,所有用户将被锁在自己的家目录中无法切换目录,在白名单中的用户可以切换
chmod u-w /home/* ##去掉普通用户家目录所有者的W权限,防止出现500报错
——————自建用户白名单——————
chroot_list_enable=YES ##开启白名单
chroot_list_file=/etc/vsftpd/chroot_list ##指定用户白名单文件,不在此文件中的用户无法登陆,在此文件中的用户可以切换到根下的任意目录
vim /etc/vsftpd/chroot_list ##在此文件中写入用户,此文件即为白名单
chmod ugo-w /etc/vsftpd/chroot_list ##去掉写权限,否则会出现530报错
systemctl restart vsftpd ##重启服务
——————用户黑名单——————
vim /etc/vsftpd/ftpusers ##此文件为系统默认永久黑名单,只要出现在该名单中的用户,就无法登陆
userlist_deny=YES|NO ##开启(关闭)黑名单
vim /etc/vsftpd/user_list ##系统默认临时黑名单,在此名单的用户无法登陆,当黑名单关闭时,该文件为默认白名单。
可能会出现的报错:
530——账号的信息有误,ftp地址,ftp账号,ftp密码以及端口方面有问题,也有可能是服务器宕机,或家目录不存在
550——服务本身不允许该操作
553——目录权限太小无法允许该操作
500——目录权限太大无法允许该操作
3.虚拟用户模式(最安全的方法)
(1)虚拟用户的创建
第一步:创建用于进行ftp认证的用户数据库文件,
第二步:用hash算法将明文信息转换为密文
第三步:创建vsftp用于储存文件的根目录,以及虚拟用户影射的系统本地用户
第四步:建立用户支持虚拟用户的PAM文件
第五步:测试
第六步:配置虚拟用户具备独立的家目录
建立虚拟用户的家目录
修改配置文件,让虚拟用户登陆到自己独立的家目录中
(2)虚拟用户的管理
将匿名用户的所有权限关闭
修改配置文件,给指定虚拟用户特定的权限。
在/etc/vsftpd/user_conf目录下建立文件,以虚拟用户命名
修改虚拟用户的家目录权限和虚拟用户登录家目录组