ubuntu如何搭建vsftpd服务器

目录
  • 一、vsftpd是什么?
  • 二、搭建过程
    • 1.查询vsftpd是否存在和安装成功
    • 2.安装vsftpd
    • 3.查询vsftpd版本号
    • 4.其他命令
    • 5.使用匿名用户登录
  • 三、用户设置
    • 1.匿名用户登录
    • 2.本地用户登录
    • 3.使用虚拟用户
  • 四、公网vsftpd服务器配置
    • 1 服务器配置成被动模式
    • 2 路由器端口映射
    • 3 Linux服务器开放上述用到的端口
  • 总结

一、vsftpd是什么?

vsftpd 是very secure FTP daemon的缩写,安全性是它的一个最大的特点。

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件。

二、搭建过程

1.查询vsftpd是否存在和安装成功

命令如下:

whereis vsftpd

vsftpd服务未安装显示如下:

2.安装vsftpd

命令如下:

sudo apt-get install vsftpd

安装过程:

再次查询vsftpd服务,如图所示:

3.查询vsftpd版本号

vsftpd -version

版本号显示如下,说明安装成功。

4.其他命令

查询vsftpd状态

service vsftpd status

开启vsftpd

sudo service vsftpd start

重启vsftpd

sudo service vsftpd restart

关闭vsftpd

sudo service vsftpd stop

该处使用的url网络请求的数据。

5.使用匿名用户登录

1、修改vsftpd的配置文件

sudo vi /etc/vsftpd.conf

将配置文件中:anonymous_enable=YES

2、使用ftp工具连接到自己的服务器,输入用户名anonymous,密码为空。

登录成功后,应该看到下面的提示信息:

3、ubuntu20.04匿名用户的目录是 /srv/ftp,不同版本的目录不一样。在该目录下,创建空文件welcome。

sudo touch welcome

现在可以使用FTP客户端看到这个文件了。

三、用户设置

1.匿名用户登录

前面已经配置完成,不再赘述。

2.本地用户登录

2.1本地用户登录配置

在一个网点内部,FTP更多的情况下被配置为向授权用户开放。为此,用户应该在服务器上拥有自己的账号。vsftpd把这样的用户成为本地用户。

修改vsftpd的配置文件,重启FTP服务器。

sudo vi /etc/vsftpd.conf
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES

出于安全性,有一些用户不允许通过FTP登录,vsftpd将这些用户整理在 /etc/ftpusers中。

这是FTP黑名单,所有被列入其中的用户都不能通过FTP登录进来。

2.2 限制用户在本地目录中

vsftpd提供了chroot(change root)系统调用,使其它目录对使用者不可见,也不可访问。

修改vsftpd的配置文件中以下配置。

# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES

类似的,也可以知道哪些用户受限,通过配置文件chroot_list_file。

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

3.使用虚拟用户

3.1 创建虚拟用户数据库文件

安装创建数据库文件需要使用的db工具:

sudo apt-get install db-util

db工具通过读取一个特定格式的文本文件来创建数据库文件,这个文件为每个用户预留2行,第一行为用户名,第二行为密码。

建立文件login_user,包含内容:

fei
123456

运行db_load 命令,通过~/login_user(由-f选项指定)创建数据库文件/etc/vsftpd_login.db。

sudo db_load -T -t hash -f /home/xuzhanfei/login_user /etc/vsftpd_login.db
  • -T:通过文本文件创建
  • -t hash:通过哈希表的数据结构创建数据库

最后,更改权限,使其只对root用户可见:

sudo chmod 600 /etc/vsftpd_login.db 

3.2 配置PAM验证

/etc/pam.d/vsftpd 是vsftpd 默认使用的PAM验证文件,在该文件中加入以下两行,其余内容屏蔽:

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required  /lib/x86_64-linux-gnu/security/pam_userdb.so  db=/etc/vsftpd_login

同时,修改vsftpd的配置文件中以下配置。

# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd

3.3 创建本地用户映射

下面做一些配置,将登录进来的用户映射到一个指定的非特权用户,这里就使用ftp用户。

修改vsftpd的配置文件中以下配置:

# 激活访客身份
guest_enable=YES
# 映射用户
guest_username=ftp

3.4 设置用户目录和权限

将 fei 用户目录设置为 /home/ftp/fei,赋予读写权限。

首先,为用户创建主目录,虚拟用户登录后自动映射为本地ftp 用户,因此,把目录的属主设置为 ftp 用户:

sudo mkdir /srv/ftp/fei
sudo chown ftp /srv/ftp/fei/ ##设置目录的属主

接下来,配置用户的目录和权限,先创建路径:

sudo mkdir /etc/vsftpd_user_conf

修改vsftpd的配置文件中以下配置:

# 存放用户配置的目录
user_config_dir=/etc/vsftpd_user_conf

添加 fei 的文本文件,增加以下内容:

# 打开vsftpd的全局写权限
write_enable=YES
# 打开文件上传权限
anon_upload_enable=YES
# 打开建立目录的权限
anon_mkdir_write_enable=YES
local_root=/srv/ftp/fei/

重启 vsftpd 服务。

注:未解决本地用户和虚拟用户登录冲突的问题

四、公网vsftpd服务器配置

1 服务器配置成被动模式

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXX端口,你过来连接我”。于是客户端向服务器的XXX端口发送连接请求,建立一条数据链路来传送数据。

被动模式也会存在防火墙的问题,客户端与服务端传输数据时,在服务端也会有防火墙,但在服务端的防火墙有连接追踪的功能,解决了防火墙的问题。因此,一般使用被动模式比较多。

修改vsftpd的配置文件中以下配置。

pasv_enable=YES           (使能被动连接)
pasv_min_port=9981         (被动连接服务器建立的端口XXX)
pasv_max_port=9983
pasv_address=192.194.203.142 (路由器静态IP地址)

2 路由器端口映射

(1)外网想要连接FTP服务器,需要知道数据传输的端口9981-9983。

(2)数据端口是随机的,那么服务器该如何将这些随机数据端口映射到公网的路由器上呢???

(3)我们需要把命令端口21和随机的数据端口映射到公网的端口(该端口需要开通权限),例如:学校开放公网端口为:9981-9983。

3 Linux服务器开放上述用到的端口

验证端口开放成功:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解在Ubuntu下搭建FTP服务器

    后台一直提示wordperss版本和插件有更新,看着碍眼,决定把它们全都更新.不过更新文件需要服务器提供FTP服务,linode也没有提供到FTP,只能自己装一个了.我装的服务器系统是Ubuntu 12.04 LTS,FTP软件当然是选择大名鼎鼎的vsftpd(very secure FTP daemon), 用系统自带的FTP还好Ubuntu装vsftpd还是很简单,一句命令就行: sudo apt-get install vsftpd 命令执行过程中,安装程序会给本地创建一个名为"ftp&q

  • Ubuntu 安装 vsftpd FTP详细步骤

    vsftpd 是一个对 UNIX 系统遵循 GPL 协议的 FTP 服务器,包括 Linux.它安全而且速度非常快. 本教程将告诉你如何在 Linux 系统中搭建自己的 FTP 服务器. 1. 安装 vsftpd. sudo apt-get install vsftpd  2. 替换配置文件. 用文本编辑器打开 vsftpd.conf 配置文件,一般在 /etc 目录下. [sudo joe /etc/vsftpd.conf 可以做如下修改: 把  anonymous_enable=YES 改成

  • Ubuntu14.04安装FTP服务器的实现步骤

    目录 安装 软件管理 匿名访问方式 修改配置文件 客户端登陆服务器 命令行登陆 在文件夹下连接服务器 window下访问 系统用户访问 修改配置文件 客户端登录服务器 命令行登录 文件夹下连接服务器 window下访问 虚拟用户访问方式 安装工具 创建账户 修改总体配置 配置每个用户信息 客户端登录服务器 命令行登录 FTP:文件传输协议,用于在两台计算机之间进行文件的上传和下载. 有时候我们需要将本地的文件上传到远程的Ubuntu 14.04服务器上,或者把远程Ubuntu 14.04服务器上

  • ubuntu如何搭建vsftpd服务器

    目录 一.vsftpd是什么? 二.搭建过程 1.查询vsftpd是否存在和安装成功 2.安装vsftpd 3.查询vsftpd版本号 4.其他命令 5.使用匿名用户登录 三.用户设置 1.匿名用户登录 2.本地用户登录 3.使用虚拟用户 四.公网vsftpd服务器配置 1 服务器配置成被动模式 2 路由器端口映射 3 Linux服务器开放上述用到的端口 总结 一.vsftpd是什么? vsftpd 是very secure FTP daemon的缩写,安全性是它的一个最大的特点. vsftpd

  • 图文详解Ubuntu搭建Ftp服务器的方法(包成功)

    一.今天下午由于课程的要求不得已做了Ubuntu搭建Ftp服务器的实验,但是实验指导书还是N年前的技术,网上搜了一大把,都是模模糊糊的! 在百般困难中终于试验成功,特把经验分给大家 希望大家少走弯路! 二.详细步骤如下: (1)首先打开终端进入root模式下(在终端中输入:sudo su 回车 提示输入密码  输入密码即可): (2)安装vsftpd软件(首先要联网,或者通过新立德软件安装!卸载软件命令:sudo apt-get remove vsftpd) <span style="fo

  • Ubuntu 14.04 搭建 apt-get 服务器的教程

    1. 系统环境: ubuntu14.04 amd64 desktop 2. 步骤: 2.1 安装 dpkg-dev.nginx <span style="font-size:18px;">$ sudo apt-get update $ sudo apt-get install dpkg-dev nginx -y</span> 2.2 创建软件存储目录 $ mkdir -p ~/data/soft 注意,如果创建在根目录,如/data/soft可能会出现权限问题,

  • 阿里云基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP daemon",安全是它的开发者 Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标. 准备工作 安装vsftpd yum install v

  • 教你使用Ubuntu搭建DNS服务器

    本例是在ubuntu18.04上进行的,其他版本的ubuntu同样类似! 一.重点说明/etc/bind/named.conf.options配置文件 在进行bind9服务器配置时,/etc/bind/named.conf.options是十分关键的配置文件,它决定着DNS服务器是否可以正常工作. 重点解释第30行:listen-on port 53 { 192.168.110.6; }; 这行代码指定了bind9服务器的监听端口号为53,监听的ip的地址为本机的IP地址.这里的IP地址一定是要

  • Shell脚本搭建FTP服务器(vsftpd)

    各种知识点都写在注释里. 只需要 sudo $PATH/ftpsetup.sh即可,默认以test/test为用户名密码登录,登录后的根目录只读,子目录writable可写. Ubuntu 13和Linux Mint 15上测试ok. 复制代码 代码如下: #!/bin/bash # by liuhx 2013-Nov-04. # 设置ftp环境的脚本.ftp的根目录为只读,其下的writable目录为可写 # 可自定义以下四项 # ftp用户名 userName="test" # f

  • Ubuntu16.04环境下搭建FTP服务器的教程

    Ubuntu16.04搭建FTP服务器 安装ftp 安装ftp: sudo apt-get update sudo apt-get install vsftpd 检查ftp是否安装: vsftpd --version 更改配置文件 注意使用sudo命令获得root权限 打开配置文件: sudo vim /etc/vsftpd.conf 做如下更改: # Example config file /etc/vsftpd.conf # # The default compiled in setting

  • Centos搭建vsftp服务器的方法

    VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 下面重点给大家介绍Centos搭建vsftp服务器的方法,具体内容如下所示: 1.首先yum安装vsftp server   以3.0.2为例 命令:yum -y install vsftpd 2.配置文件  vsftp.conf 具体配置内容如下: anonymous_enable=NO local_enable=YES write_

  • centos 搭建ftp服务器详解及简单介绍

    centos 搭建ftp服务器 1.安装vsftpd sudo yum install vsftpd 2.配置vsftpd.conf # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES write_ena

随机推荐