部署FTP服务
FTP(文本传输协议)是INTERNET上仍常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法。
FTP服务器包的名称为vsftpd,它代表very secure file transferprotocol damon 服务器名称也叫做vsftpd.
默认配置文件让匿名用户(anoymous用户)只能呢个下在位于chroot 目录中的内容。
/var/ftp/意味着远程FTP客户端能以用户anoymous或ftp身份连接大批服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)
部署FTP的操作步骤
1.
打开虚拟机,配置IP,配置yum源,yum clean all
yum install lftp ##下载lftp
yum search ftp ##查找相关软件
yum install vsftp.x86_64 ##下载
3.关闭selinux(内核级加强型防火墙)
vim /etc/sysconfig/selinux
在该文件中将状态设置为disabled
getenforce ##查看selinux的状态
4.开启服务
systemctl start vsftpd
systemctl enable vsftpfd
5.设置火墙状态
(1)图形方式
firewall-config
弹出如下窗口
(2)命令方式
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
6.测试
在浏览器中:ftp 172.25.254.104能正常访问即可
在shell中:lftp 172.25.254.104 ->ls能正常显示则搭建成功
FTP服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口: 21/tcp
服务配置文件:/etc/vsfpd/vsftpd.conf
报错ID的解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小
FTP服务相关权限的设置
vim /etc/vsftpd/vsftpd.conf
匿名用户
anonymous_enable=YES | NO ##匿名用户是否可以登陆
本地用户
local_enable=YES|NO ##本地用户是否可以登陆
write_enable=YES|NO ##FTP是否对登陆用户可写
匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
匿名用户建立目录
anon_mkdir_write_enable=YES | NO
匿名用户是否可以删除和重命名
anon_other_write_enable=YES
匿名用户家目录修改
anon_root=/westos
匿名用户上传文件默认权限修改
anon_umask=xxx 改成022
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
匿名用户可下载
anon_world_readable_only=NO
最大上传速率
anon_max-rate=102400 单位:字节100K
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1500
上传测试
最大链接个数
max_clients=2
本地用户家目录修改
local_root=/westos
本地用户上传文件权限
local_umask=xxx
限制本地用户浏览根目录
chroot_local_uesr=YES ##此参数要求曲调自己对家目录写的权限,man可以查看这个参数
chmod u-w /home/*
(1)用户黑名单的建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(2)用户白名单的建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
限制本地用户登陆
(1)用户黑名单
vim /etc/vsftpd/ftpusers ##永久用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
(2)用户白名单设定
userlist_enable=YES
userlist_deny=NO
vim /etc/vsftp/user_list ##参数设定,此文件变为用户白名单,只有在名单中出现的用户才可以登陆ftp
ftp虚拟用户的设定(创建虚拟帐号身份)
1.在该目录下写用户和密码
vim /etc/vsftpd/westosfile ##文件名称任意
文件中写入:
ftpuser1
123
ftpuser2
123
fpuser3
123
2.因为上述文件有密码的存在,出于安全性考虑,对上述文件进行加密
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
3.查看vsftp.conf,认证的时候使用pam认证
vim /etc/pam.d/westos ##文件名称任意
在文件中写入
account required pam_userdb.so db=/tc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES
虚拟帐号身份指定
guest_username=westos ##默认使用虚拟用户,登陆后在pub目录,要想修改此参数,修改后登陆到westos家目录
chmod u-w /home/ftpuser
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.con
在文件中写入:
local_root=/ftphome/$USER
user_sub_token=$USER
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
虚拟帐号配置独立
chgrp ftp /ftphome -R
ll /ftphome/user*
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/user1 #在此文件中设定配置文件中的所有参数,此文件的优先级高
例如在文件中写入:
anon_upload_enable=YES