CentOS7上搭建FTP服务器:轻松管理文件共享

admin 知识 2023-11-14 16:02 44

FTP服务器搭建

一、FTP的概念和使用场景

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。

一般用于在网路文件的上传下载服务,主要用于提供下载服务,具有操作简单,适用范围广的优势,被广泛使用。

二、FTP的部署

部署环境:

OS:CentOS 7.7

FTP软件:vsftpd-3.0.2-25.el7.x86_64

LFTP软件:lftp-4.4.8-11.el7.x86_64

服务端部署:

s1,vsftpd安装:检查系统是否有安装vsftpd,如果没有就安装

命令:

rpm -qa |grep vsftpd || yum install vsftpd -y

vsftpd安装

s2,防火墙火墙添加ftp服务到白名单

firewall-cmd --permanent --add-service=ftp

firewall-cmd --reload

ftp防火墙设置

查看防火墙放行的服务列表:

防火墙放行的服务名单

s3,开启vsftpd服务

systemctl start vsftpd

systemctl status vsftpd

启动vsftpd服务

如果需要随开机启动,请执行以下命令:

systemctl enable vsftpd

设置VSFTPD随系统启动

s4,(可选,在使用selinux服务的严格安全环境下)添加SElinux安全上下文

SELinux安全上下文

LFTP(客户端安装):

Linux 下常用的ftp操作命令有 ftp、 lftp ,图形化界面非常好用的有 FileZilla。但在服务器命令界面中,lftp使用比较方便,功能也比ftp更加强大,不仅可以操作ftp,还能使用lftp登录sftp服务器操作,非常方便友好。lftp的界面类似Linux的shell,有命令补全、历史记录、允许多个后台任务执行、书签、排队、镜像、断点续传、多进程下载等功能。推荐使用!

c1,lftp安装:

rpm -qa |grep lftp || yum install lftp -y

lftp安装

c2,客户端访问测试

客户端使用lftp访问主机(ls有内容显示,则代表登录成功,否则不成功,也可以使用ftp命令登录,此例不做赘述)

命令:

lftp 192.168.3.80

客户端与服务端

三、FTP服务的基本信息

默认发布目录:/var/ftp

协议接口:21/tcp

服务配置文件:/etc/vsftpd/vsftpd.conf

注意⚠️:编辑配置文件后,需要重启服务才能生效

报错id的解析:

  • 500 文件系统权限过大
  • 530 用户认证失败
  • 550 服务本身功能未开启
  • 553 本地文件系统权限过小

四、FTP的定制(安全)

ftp服务配置文件:/etc/vsftpd/vsftpd.conf

以下是对配置文件的简要说明,同时是将vsftpd.conf文件过滤掉解释部分,仅保留设置项目:

  • anonymous_enable=YES (是否允许匿名用户登录,若允许则默认无需密码)
  • local_enable=YES (是否允许本地用户登录)
  • write_enable=YES (是否允许用户上传数据,作用于全部用户)
  • local_umask=022 (本地用户新建文件的掩码)
  • #anon_upload_enable=YES (是否允许匿名用户上传文件,默认不允许匿名用户上传)
  • #anon_mkdir_write_enable=YES (是否允许匿名用户创建新目录,默认不允许)
  • dirmessage_enable=YES (是否允许为目录配置显示信息,显示每个目录下面的文件信息)
  • xferlog_enable=YES (是否开启日记功能)
  • connect_from_port_20=YES (数据连接端口,默认开启20端口作为数据传输端口)
  • #chown_uploads=YES (是否修改所有匿名上传的文件的所属用户为chown_username指定的用户)
  • #chown_username=whoever (指定chown_username用户)
  • #xferlog_file=/var/log/xferlog (日志文件位置)
  • xferlog_std_format=YES (是否使用使用标准格式日志)
  • #idle_session_timeout=600 (空闲连接超时,单位是秒)
  • #data_connection_timeout=120 (数据传输超时,单位是秒)
  • #nopriv_user=ftpsecure (无权限的用于运行ftp服务的用户名,一般默认即可)
  • #async_abor_enable=YES (服务器将识别异步中止请求,是否允许使用”async ABOR”命令,一般不用,容易引起传输故障)
  • #ascii_upload_enable=YES (设置是否可用ASCII 模式上传。默认值为NO)
  • #ascii_download_enable=YES (设置是否可用ASCII 模式下载。默认值为NO)
  • #ftpd_banner=Welcome to blah FTP service. (登录时显示欢迎信息.如果设置了banner_file则此设置无效)
  • #deny_email_enable=YES (是否启用邮件黑名单,用于如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录)
  • # (default follows)
  • #banned_email_file=/etc/vsftpd/banned_emails (如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录)
  • #chroot_local_user=YES
  • #chroot_list_enable=YES (如果启动这项功能,则所有列在chroot_list_file中的使用者不能更改根目录)
  • # (default follows)
  • #chroot_list_file=/etc/vsftpd/chroot_list (定义不能更改用户主目录的文件)
  • #ls_recurse_enable=YES (是否禁止使用ls -R命令,禁止以防止浪费大量的服务器资源)
  • listen=NO (是否监听端口,启用监听其实就是启用standalone模式)
  • listen_ipv6=YES (是否监听IPV6端口,启用监听其实就是启用standalone模式)
  • pam_service_name=vsftpd (定义PAM 所使用的名称,预设为vsftpd)
  • userlist_enable=YES (是否只允许userlist中的用户登录)
  • tcp_wrappers=YES (开启tcp_wrappers支持)

出于篇幅的原因,下一篇说明vsftpd.conf配置文件的特性和定制化!

红校生-专注互联技术传道授业!

相关推荐
关闭

用微信“扫一扫”