Linux搭建FTP站点

vsftpd是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程以CentOS 7.2 64位操作系统为例,介绍如何在Linux实例上安装并配置vsftpd。

前提条件

使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

Linux 实例搭建FTP站点具体步骤如下:

视频教程

步骤一: 安装vsftpd

完成以下操作,安装vsftpd。

  1. 远程连接Linux实例。具体操作,请参见使用用户名密码验证连接Linux实例

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

    yum install -y vsftpd
    

    出现如下图所示界面,表示安装成功。

  3. 依次运行以下命令进入/etc/vsftpd目录,并查看该目录下的文件。

    cd /etc/vsftpd
    
    ls
    

    说明

    • /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。
    • /etc/vsftpd/ftpusers是黑名单文件,此文件中的用户不允许访问FTP服务器。
    • /etc/vsftpd/user_list是白名单文件,此文件中的用户允许访问FTP服务器。
  4. 运行以下命令设置FTP服务开机自启动。

    systemctl enable vsftpd.service
    
  5. 运行以下命令启动FTP服务。

    systemctl start vsftpd.service
    
  6. 运行以下命令查看FTP服务监听的端口。

    netstat -antup | grep ftp
    

vsftpd安装后默认开启了匿名访问FTP服务器的功能。使用匿名访问,您无需输入用户名密码即可登录FTP服务器,但没有权限修改或上传文件。

步骤二: 配置vsftpd

本节介绍以下两种配置vsftpd的方法,并提供了相关的参数说明,您可以根据具体需要进行参考。

  • 方法一:配置匿名用户上传文件权限
  • 方法二:配置本地用户登录

方法一:配置匿名用户上传文件权限

匿名访问FTP服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到FTP服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。配置匿名用户上传文件的权限的操作步骤如下:

  1. 修改配置文件/etc/vsftpd/vsftpd.conf。

    1. 运行vim /etc/vsftpd/vsftpd.conf命令打开配置文件。
    2. 按i进入编辑模式。
    3. 将写权限修改为write_enable=YES
    4. 将匿名上传权限修改为anon_upload_enable=YES
    5. 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。

    修改后的配置文件,如下图所示。

  2. 依次运行以下命令更改/var/ftp/pub目录的权限,为FTP用户添加写权限,并重新加载配置文件。

    chmod o+w /var/ftp/pub/
    
    systemctl restart vsftpd.service
    

方法二:配置本地用户登录

本地用户登录是指用户使用Linux操作系统的账号和密码登录FTP服务器。vsftpd安装后默认只支持匿名访问FTP服务器,如果您试图使用本地用户登录服务器,将会被vsftpd服务拒绝。配置本地用户访问FTP服务器的操作步骤如下:

  1. 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。

    useradd ftptest
    
  2. 运行以下命令修改ftptest用户的密码。

    passwd ftptest
    
  3. 运行以下命令创建一个供FTP服务使用的文件目录。

    mkdir /var/ftp/test
    
  4. 运行以下命令更改/var/ftp/test目录的拥有者为ftptest。

    chown -R ftptest:ftptest /var/ftp/test
    
  5. 修改vsftpd.conf配置文件。

    1. 运行vim /etc/vsftpd/vsftpd.conf命令打开配置文件。

    2. 按i进入编辑模式。

    3. 根据实际需要,配置FTP服务器为主动模式或被动模式。

      • 主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口。配置FTP为主动模式的参数如下:

        #禁止匿名登录FTP服务器
        anonymous_enable=NO
        #允许本地用户登录FTP服务器
        local_enable=YES
        #设置本地用户登录后所在的目录
        local_root=/var/ftp/test
        #全部用户被限制在主目录
        chroot_local_user=YES
        #启用例外用户名单
        chroot_list_enable=YES
        #指定例外用户列表,这些用户不被锁定在主目录
        chroot_list_file=/etc/vsftpd/chroot_list
        
        #配置其他参数
        allow_writeable_chroot=YES
        local_umask=022
        dirmessage_enable=YES
        xferlog_enable=YES
        connect_from_port_20=YES
        xferlog_std_format=YES
        listen=YES
        pam_service_name=vsftpd
        userlist_enable=YES
        tcp_wrappers=YES
        
      • 被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置FTP为被动模式的参数如下:

        #禁止匿名登录FTP服务器
        anonymous_enable=NO
        #允许本地用户登录FTP服务器
        local_enable=YES
        #设置本地用户登录后所在目录
        local_root=/var/ftp/test
        #全部用户被限制在主目录
        chroot_local_user=YES
        #启用例外用户名单
        chroot_list_enable=YES
        #指定例外用户列表,这些用户不被锁定在主目录
        chroot_list_file=/etc/vsftpd/chroot_list
        #开启被动模式
        pasv_enable=YES
        #FTP服务器公网IP
        pasv_address=<FTP服务器公网IP>
        #设置被动模式下,建立数据传输可使用port范围的最小值
        pasv_min_port=port number
        #设置被动模式下,建立数据传输可使用port范围的最大值
        pasv_max_port=port number
        
        #配置其他参数
        local_umask=022
        dirmessage_enable=YES
        xferlog_enable=YES
        xferlog_std_format=YES
        tcp_wrappers=YES
        allow_writeable_chroot=YES
        listen=YES
        listen_ipv6=NO
        pam_service_name=vsftpd
        userlist_enable=YES
        

        说明 建议您把端口范围设在比较高的一段范围内,例如50000-50010,有助于提高访问FTP服务器的安全性。

    4. 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。

  6. 创建chroot_list文件,并在文件中写入例外用户名单。

    1. 运行vim /etc/vsftpd/chroot_list命令创建chroot_list文件。
    2. 按i进入编辑模式。
    3. 输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
    4. 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。

    说明 如果没有例外用户也必须要有chroot_list文件,内容可为空。

  7. 运行以下命令重启vsftpd服务。

    systemctl restart vsftpd.service
    

配置文件vsftpd.conf参数说明

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

  • 用户登录控制参数说明如下表所示。

    <caption></caption>

    参数 说明
    anonymous_enable=YES 接受匿名用户
    no_anon_password=YES 匿名用户login时不询问口令
    anon_root=(none) 匿名用户主目录
    local_enable=YES 接受本地用户
    local_root=(none) 本地用户主目录
  • 用户权限控制参数说明如下表所示。

    <caption>
    </caption>

    参数 说明
    write_enable=YES 可以上传(全局控制)
    local_umask=022 本地用户上传文件的umask
    file_open_mode=0666 上传文件的权限配合umask使用
    anon_upload_enable=NO 匿名用户可以上传
    anon_mkdir_write_enable=NO 匿名用户可以建目录
    anon_other_write_enable=NO 匿名用户修改删除
    chown_username=lightwiter 匿名上传文件所属用户名

步骤三: 设置安全组

搭建好FTP站点后,您需要在实例安全组的入方向添加放行下列FTP端口的规则。

  • FTP为主动模式时:端口21。
  • FTP为被动模式时:端口21,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。

添加安全组规则的具体步骤,请参见添加安全组规则

步骤四: 客户端测试

您可以通过FTP客户端或浏览器访问FTP服务器进行测试。本教程以windows自带的IE(Internet Explorer)浏览器为例,分别为您介绍FTP服务器配置为主动模式或被动模式时的访问步骤。

  • FTP服务器为主动模式
    1. 打开客户端的IE浏览器。
    2. 将浏览器设置为主动访问模式。选择设置 >Internet 选项 > 高级。选中启用 FTP 文件夹视图,取消勾选使用被动 FTP。
    3. 在地址栏中输入ftp://<FTP服务器IP地址>:FTP端口,例如:ftp://39.10.0.28:21
    4. 在弹出的对话框中,输入用户名和密码,即可对FTP文件进行相应权限的操作。
  • FTP服务器为被动模式
    1. 打开客户端的IE浏览器。
    2. 将浏览器设置为被动访问模式。选择设置 > Internet 选项 > 高级。选中启用FTP文件夹视图和使用被动FTP。
    3. 在地址栏中输入ftp://<FTP服务器IP地址>:FTP端口,例如:ftp://39.10.0.28:21
    4. 在弹出的对话框中,输入用户名和密码,即可对FTP文件进行相应权限的操作。

摘自:https://help.aliyun.com/document_detail/92048.html?spm=a2c4g.11186623.6.1122.36627bfesFpCEY

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342