文本传输协议(File Transfer Protocol,FTP)服务能够使用户不需要了解远程主机操作系统的操作方法,就可以直接完成主机之间可靠的文件传输。
安装ftp服务
安装软件前,首先要将selinux内核级防火墙关闭,否则会影响客户端的登录。
修改/etc/sysconfig/selinux 改成disabled
重启主机,让内核重新加载,识别selinux的值
yum install vsftpd.X86_64
开启ftp服务
systemctl start vsftpd
关闭防火墙
systemctl stop firewalld
输入该机ip地址,例ftp://172.25.254.178
即可使用ftp服务
这就是ftp的发布目录,主机/var/ftp/
或使用终端访问
安装lftp服务 yum install lftp.x86_64
# lftp 172.25.254,178
常用的命令有:
ls:列出远程主机的当前目录文件
cd:在远程主机切换工作目录
ascii:设置文件传输模式为ASCII
birnary:设置文件传输模式为二进制
close:结束当前的FTP会话
hash:当数据缓冲区的数据传送完毕后显示一个#
get:从远程主机下载文件到本地主机
put:从本地主机传送文件到远程主机
open:连接到远程主机的FTP站点
quit:断开FTP连接并且退出FTP
?:显示本地帮助信息
!:切换到shell中
配置ftp服务
主配置文件vsftpd.conf
vim vsftp.conf 修改主配置文件
1)进程选项
Listen(YES|NO)
作用:listen字段表示是否使用stand-alone模式启动vsftpd,而不是使用超级进程(xinetd)控制它(vsftpd推荐使用stand-alone方式)。
YES:使用standalone启动vsftpd。
NO:不使用standalone启动vsftpd。
2)登录和访问选项控制
(1)anonymous_enable(YES|NO)
作用:用于控制是否允许匿名用户登录,YES表示允许
(2)local_enable(YES|NO)
作用:用于控制是否允许本地用户登录,YES表示允许
(3)pam_sevice_name
作用:用于设置PAM模块进行验证时所使用的PAM配置文件名。
该字段默认值为vsftpd,而默认的PAM配置文件为/etc/pam.d/vsftpd
(4)userlist_enable(YES|NO)
作用:/etc/vsftpd/user_list 在文件中添加用户名
YES开启,此文件中出现的用户无法登录ftp
NO不使用该文件
相似指令:用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list 此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
(5)tcp_wrappers=(YES|NO)
作用:是否在vsftpd中使用tcp_wrappers远程访问控制机制,YES表示使用
3)匿名用户选项
(1)匿名用户设定
anonymous_enable=YES|NO ##匿名用户登陆限制
(2)让匿名用户上传
vim /etc/vsftpd/vsftpd.conf
修改 write_enable=YES
anon_upload_enable=YES
更改组 chgrp ftp /var/ftp/pub
更改组权限 chmod 775 /var/ftp/pub
(3)匿名用户家目录修改
anon_root=/direcotry
(4)匿名用户上传文件默认权限修改
anon_umask=xxx (默认022)
(5)匿名用户建立目录
anon_mkdir_write_enable=YES|NO
(6)匿名用户下载
anon_world_readable_only=YES|NO
设定参数值为no表示匿名用户可以下载
(7)匿名用户删除
anon_other_write_enable=YES|NO
(8)匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
上传文件时所有人会变成student
注意:先修改文件使其可以上传,再修改使其变成student
4)本地用户选项
(1)本地用户设定
local_enable=YES|NO 本地用户登陆限制
write_enable=YES|NO 本地用户写权限限制
(2)本地用户家目录修改
local_root=/directory
(3)本地用户上传文件权限
local_umask=xxx
(4)限制本地用户浏览/目录
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
(5)用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(6)用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(7)限制本地用户登陆
vim /etc/vsftpd/ftpusers 用户永久黑名单
vim /etc/vsftpd/user_list 用户临时黑名单,可变白名单,具体方法参上
6)文件传输选项
(1)最大上传速率
anon_max_rate=102400
作用:每个服务器都要有最大传输值,因为带宽速度和硬盘读取速度都有上限,不能使服务器挂掉
(2)最大链接数
max_clients=2
作用:只允许两个用户登录
7)日志选项
(1)xferlog_enable=YES
作用:是否设置用于记录上传和下载的日志文件,YES表示启用
记录文件默认/var/log/xferlog (可更改)
(2)xferlog_std_format=YES
作用:用于设置日志的格式是否采用标准格式。
报错:
530 认证错误
500 文件系统权限过大
550 服务本身功能未开放
553 本地文件系统权限过小
ftp虚拟用户的设定
(创建虚拟帐号身份)
vim /etc/vsftpd/loginusers ##文件名称任意
ftpuser1 虚拟账户1
123 虚拟账户1密码
ftpuser2
123
ftpuser3
123
#db_load -T -t hash -f /etc/vsftpd/loginusers /etc/vsftpd/loginusers.db
对该文件加密
vim /etc/pam.d/ftpauth ##文件名称任意 认证时看这个文件
account (帐号) required(必须有) pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
测试
虚拟帐号身份指定)
guest_username=ftpuser
chmod 555 /home/ftpuser
虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
编辑:
local_root=/ftpuserhome/$USER 本身不识别$USER
user_sub_token=$USER 引用shell中的字符
建立虚拟用户家目录mkdir /ftpuserhome
更改权限
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir -p /ftpuserhome/ftpuser{1..3}
touch /ftpuserhome/ftpuser1/ftpuserdata1
测试:
虚拟帐号配置独立(将每个帐号配置文件独立)
vim /etc/vsftpd/vsftpd.conf
编辑:
user_config_dir=/etc/vsftpd/userconf
手动创建
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高
写在最后,如果大家喜欢linux运维方面的知识,欢迎关注本博主,会每周更新与linux运维相关的一些小知识,帮助大家入门
愿你与我一同成长!
往期:
https://blog.csdn.net/Stella_Pooter/article/details/83111320 Linux运维入门~11.网络设置与路由器
https://blog.csdn.net/Stella_Pooter/article/details/83116835 Linux运维入门~12.DHCP服务配置
https://blog.csdn.net/Stella_Pooter/article/details/83273956 Linux运维入门~13.如何让你的虚拟机联网及DNS设置
https://blog.csdn.net/Stella_Pooter/article/details/83303100 Linux运维入门~14.虚拟机的安装及使用
https://blog.csdn.net/Stella_Pooter/article/details/83311261 Linux运维入门~15.yum源配置
https://blog.csdn.net/Stella_Pooter/article/details/83508184 Linux运维入门~16.网络yum源配置,第三方yum源配置,rpm命令使用
https://blog.csdn.net/Stella_Pooter/article/details/83536719 Linux运维入门~17.自动化安装虚拟机
Never say die