一、FTP服务简介
FTP(文件传输协议)常用的网络协议之一,为系统提供了通过网络与远程服务器进行文件传输的简便方法 FTP服务器包名称为vsftpd(Very secure File Transfer Protocol Daemon)。 二、搭建步骤 2.1 虚拟机准备和搭建环境 虚拟机准备,建议额外新增一块盘,挂载给ftp服务器的目录 注:虚拟机安装步骤略
centos版本cat /etc/redhat-release 环境准备 注:ftp服务器的安装包名字为vsftpd.x86_64
或者通过yum list "*ftp*"检查安装包
2.2 安装ftp服务 经过对linux虚拟机进行检测,已经包含了ftp服务安装包,可以直接进行安装。 注:安装过程,建议用yum install -y vsftpd.x86_64,可以减少安装中进行选择,一般都选择yes,也就是y确认
2.3 安装完毕,可以找出安装后的安装包具体名字,并且通过查询所得名字列出vsftpd对应安装的路径 rpm -qa |grep vsftpd 查询已经安装了的具体安装包名字 rpm -ql vsftpd-3.0.2-29.el7_9.x86_64 查看具体安装包存放路径
2.4 查看ftp服务是否正常 (1)通过监听21端口,发现21端口未启用 (2)systemctl status vsftpd 注:验证发现,ftp服务成功安装也需要手动重启服务,并且建议开启开机自启,免得服务器重启之后,ftp服务异常
2.5 启动ftp服务和开机自启 systemctl start vsftpd systemctl status vsftpd
2.6 ftp服务的具体文件配置路径 /etc/vsftpd,配置文件vsftpd.conf,我们可以通过修改配置文件进行相应参数调整
三、ftp配置文件vsftpd.conf的参数介绍 小技巧:工作中,修改配置的时间很多,很多参数是我们不需要查看的,我们可以通过管道符进行一些查看参数的优化,比如注释行或者空格,我以ftp服务配置文件举例。 原有配置 过滤注释行 cat vsftpd.conf |grep -v "^#" -v反向查找,"^#"代表以#开头的 过滤空格 cat vsftpd.conf |grep -v "^#" |grep -v "^$" ,"^$" 代表过滤空白行 anonymous_enable=YES 允许匿名用户登录 write_enable=YES 允许本地用户的写权限 local_enable=YES 允许本地用户登录 local_umask=022 允许匿名用户上传文件,需要结合anon_upload_enable=YES使用 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES 允许匿名用户修改上传文件的所有权 xferlog_std_format=YES 允许使用对应格式来上传和下载文件,需要结合下列两个使用 ascii_upload_enable=YES ascii_download_enable=YES listen=NO 默认监听关闭 listen_ipv6=yes 默认监听ipv6 pam_service_name=vsftpd userlist_deny=YES user_list中记录的都是被拒绝的名单 tcp_wrappers=YES 设置采用tcp_wrappers来实现来对主机的访问控制
四、验证 4.1 浏览器无法通过web界面访问 4.2 解决办法 关闭操作系统自身防火墙 setenforce 0 设置SELinux 成为permissive模式 systemctl stop firewalld 关闭防火墙 systemctl status firewalld 查看状态
4.3 浏览器验证 通过web访问,我们可以知道匿名访问路径ftp的默认存放路径是/var/ftp/pub
4.4 虚拟机之间互访验证 新增账号用于ftp验证 useradd zgt 新增用户 echo 123456 |passwd --stdin zgt 设置密码
虚拟机访问ftp服务器 ftp 192.168.13.184 注:可以发现,匿名用户访问路径和新增访问路径不一样,新增用户路径一般是/home/用户名,通过在新增用户路径新建一个文件,匿名用户路径没有新增。 新增有 无文件 |