Linux下搭建FTP服务器教程(vsftp)

admin12个月前笔记118

一、基本安装

1. 运行以下命令安装 vsftpd。


 image.png

yum install -y vsftpd

2.运行以下命令打开及查看etc/vsftpd

cd /etc/vsftpd

image.png

说明:/etc/vsftpd/vsftpd.conf 是核心配置文件。/etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。/etc/vsftpd/user_list  是白名单文件,是允许访问 FTP 服务器的用户列表。/etc/vsftpd/vsftpd_conf_migrate.sh  是vsftpd操作的一些变量和设置

备注:使用命令 rpm -ql vsftpd  可列出vsftpd中包含的文件

 

3.运行以下命令设置开机自启动。

systemctl enable vsftpd

4.运行以下命令启动 FTP 服务。

systemctl start vsftpd

5.运行以下命令查看 FTP 服务端口。

netstat -antup | grep ftp

image.png 

 

6.配置本地用户登录本地用户登录就是指用户使用 Linux 操作系统中的用户账号和密码登录 FTP 服务器。

vsftpd 安装后默只支持匿名 FTP 登录,用户如果试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 拒绝,但可以在 vsftpd 里配置用户账号和密码登录。具体步骤如下:

a. 运行以下命令创建 ftptest 用户。

useradd ftptest   (删除用户命令:sudo userdel -r newuser)

b.运行以下命令修改 ftptest 用户密码。

passwd ftptest

 image.png

 

7.修改/etc/vsftpd/vsftpd.conf

a. 运行vim /etc/vsftpd/vsftpd.conf。

b. b.按键 “i” 进入编辑模式。

c. c.将是否允许匿名登录 FTP 的参数修改为anonymous enable=NO。

d. d.将是否允许本地用户登录 FTP 的参数修改为local_enable=YES。

e. e.按键 “Esc” 退出编辑模式,然后按键“:wq” 保存并退出文件。

f. f.运行命令 cat /etc/vsftpd/vsftpd.conf 查看配置文件内容。

 

     如果启动不了,关闭ipvp6监听vim /etc/vsftpd/vsftpd.conf


 

二、基本配置

完成vsftpd安装后发现无法远程连接,仍需要完成以下配置。

原因分析:

FTP连接方式分为:主动模式和被动模式。默认为被动模式。

如果为被动模式,服务器端必须监听至少一个额外的被动模式端口。

所以,若只开通20和21端口是不够的,需要另外配置入站端口。

 

备注参考信息:

FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。先假设客户端为C,服务端为S.Port模式:当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。Pasv模式:

当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

 

添加配置信息 修改配置文件 vim /etc/vsftpd/vsftpd.conf

 

解释:8800/8899 为上面安全组添加的端口号pasv_enable=YES|NOYES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。pasv_min_port=port number pasv_max_port=port number

设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。

完成以上配置,基本可以实现远程连接FTP。

 

注意防火墙开放端口

 

配置完成记得重启服务器systemctl restart vsftpd

 image.png 

三、配置 vsftpd 限制 FTP 账户访问其它目录

 

使用 vsftpd 搭建 FTP 服务,可以配置用户登录后,限制访问其它的目录,只能进它的主目录。 配置方法如下:

1、打开 vsftp 的配置文件 vim /etc/vsftpd/vsftpd.conf  找到 chroot Chroot_local_user

     设置所有的本地用户都执行 chroot chroot_local_user=yes (本地所有帐户都只能在自家目录) 

2、设置指定用户执行 chroot

      找到并修改 chroot_list_enable=yes 

3、chroot_list_file=/ 任意指定的路径 /chroot_list (文件中的名单可以调用)注意:vsftpd.chroot_list 是没有创建的需要自己创建。若不想限制个别用户,将用户名添加到vsftpd.chroot_list文件中,每个用户名一行。

 

 四、创建用户

useradd -s /sbin/nologin -d /home/test test

 

"-s /sbin/nologin":指定该用户无法使用bash或其他shell来登陆系统,仅用于ftp连接

"-d /home/test":指定该用户的ftp目录

 

如服务无法启动systemctl restart vsftpd.service

设置selinux

需要设置selinux后才能访问FTP服务器:

setsebool -P ftp_home_dir 1 setsebool -P allow_ftpd_full_access 1

 

-P表示设定该项目永久套用

查看selinux的ftp配置是否成功:

 

getsebool -a |grep ftp

 

"ftp_home_dir","ftpd_full_access"参数都为"on"表示配置成功

image.png


相关文章

Nginx 负载均衡配置、限流配置、Https 配置详解

Nginx 负载均衡配置、限流配置、Https 配置详解

一. 负载均衡1. 用法通过 proxy_pass 可以把请求代理至后端服务,但是为了实现更高的负载及性能, 我们的后端服务通常是多个, 这个是时候可以通过 upstream 模块实现负载均衡。使用的...

Linux 中如何开启端口

Linux 中如何开启端口

Linux 端口的开启Linux 端口的开启一、firewall 方式 (centOS7.*)二、修改 iptables 方式 (centOS6.*)一、firewall 方式 (centOS7.*)...

网站性能优化的常用方法

网站性能优化的常用方法

集成 CDN内容交付网络(又名 CDN)是一个非常棒的工具,可以集成到你的网站中,因为它可以大大加快你的内容交付速度。因为它是一个分布式服务器网络,所以 CDN 会找到离用户最近的服务器并部署它来交付...

ChatGPT的5种有趣用途,您可能不知道

ChatGPT的5种有趣用途,您可能不知道

ChatGPT是一款功能强大的语言模型,它可以进行自然语言处理,帮助您解决各种问题。除了传统的聊天机器人,ChatGPT还可以用于很多其他有趣的用途,让您大开眼界。在文章中,我们将介绍5种您可能不知道...

linux下三种开机自启动服务的方式总结

linux下三种开机自启动服务的方式总结

方法1:.利用ntsysv命令进行设置,利用root登陆终端命令下输入ntsysv 回车;如下图a在这个界面上进行操作即可,简要的操作说明:括号中(*)代表默认开机启动,否则不会在开机的时候启动;按钮...

2023最新V2Ray搭建图文教程,V2Ray一键搭建脚本

2023最新V2Ray搭建图文教程,V2Ray一键搭建脚本

V2Ray 搭建教程一键搭建 V2Ray,小白福利一条命令搞定 V2Ray 搭建,最详细的 V2Ray 图文教程!前言此教程面向小白萌新,从创建 VPS 到使用 SSH 登录并安装和配置 V2Ray,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。