专栏首页IT笔记Linux下如何简单快速搭建FTP服务器

Linux下如何简单快速搭建FTP服务器

遥想多年前,我们还在玩虚拟主机的时候,一个小小的FTP账号我们就可以玩半天,那会使用的是flashfxp。

后来,有了VPS(那时用的还是win系列服务器系统),还会自建FTP服务器,记得好像是serv-u这个产品。

再后来,李若英都要嫁人了,我也用上了高大上的云服务器,抛弃了低级趣味的win系列服务器操作系统,转而投向Linux系列。

2017.jpg

如果不是特殊需求,还真没有建FTP服务的必要。Linux下我可以使用命令实现上传下载,也可以使用winscp等工具界面话管理文件。

搭建

vsftpd服务器同时支持匿名用户、本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集中管理的FTP根目录,方便了管理员的管理,同时将用于FTP登录的用户名、密码与系统用户账号区别开,进一步增强了FTP服务器的安全性。

安装vsftpd软件

使用如下命令检测是否安装了vsftpd软件:

rpm -qa |grep vsftpd

如果没有安装,执行安装命令:

 yum install vsftpd -y

启动服务

使用vsftpd软件,主要包括如下几个命令: 启动ftp命令 service vsftpd start 停止ftp命令 service vsftpd stop 重启ftp命令 service vsftpd restart

vsftpd的配置

ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是: ftpusers 该文件用来指定那些用户不能访问ftp服务器。 user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp vsftpd.conf vsftpd的主配置文件(相关配置说明,自行百度)

新建虚拟账号

1.准备一个虚拟用户的口令库文件.该文件中保存的用户名和密码是用户连接FTP服务器时,需要输入的用户名和密码.文件可以自己创建,位置无关紧要,文件格式为:奇数行为用户名,偶数行为密码. vi vusers.txt itstyle//虚拟用户itstyle itstyle//虚拟用户itstyle的密码

2.用刚才建立的虚拟用户口令库文件生成FTP服务器的认证文件.该认证文件是一个被加密后的密文.PAM在调用相应的认证模块后,会对从FTP服务器发来的用户名和密码进行加密,然后在跟该文件进行对比,发现相符条目后,登陆用户才会被允许登陆。 db_load -T -t hash -f vusers.txt /etc/vsftpd/vusers.db

在运行该命令前,别忘记安装db4-utils软件包,该包包含有db_load命令等.关于该命令的使用不在本文讨论范围内.其中-f参数后跟的为刚才创建的虚拟用户口令库文件.最后的路径为生成的FTP认证文件的存放位置。

为了进一步保证安全,可以将该FTP认证文件的权限设置为600。

3.建立虚拟用户所需要的PAM配置文件.由于FTP服务器在接受到用户的用户名和口令后会调用PAM认证,所以我们还要创建虚拟用户的PAM配置文件。 我们将该文件保存在/etc/pam.d目录下,文件名暂时取为:vsftpd.这里要注意一点就是,该文件名要与FTP服务主配置文件(/etc/vsftpd/vsftpd.conf)中的pam_service_name=vsftpd选项的选项值相同. 创建好该文件后,将下面的内容加入到该文件中: auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vusers account required /lib/security/pam_userdb.so db=/etc/vsftpd/vusers 改好后,保存退出.注意3个红色文件的文件名.该3个文件为1个文件,只不过在使用中写法不同.

4.由于用户在通过PAM的认证后要被映射成一个本地用户,所以我们还要建立一个本地用户供虚拟用户使用。 我们只需要对该本地用户赋予FTP主目录的适当访问权限就行.即使FTP服务器遭到攻击,这个本地用户也没有访问其他目录的权限,相对比较安全一些. useradd -d /home/ftpsite virtual //用户名为virtual,主目录为FTP的根 chmod 700 /home/ftpsite //将其权限设置为700,可以根据实际情形进行修改

5.在FTP的主配置文件中,启用FTP虚拟用户.增加如下选项即可:

guest_enable=YES guest_username=virtual //将虚拟用户映射成本地的哪个用户.这里用的是virtual,刚才建

                                 立的那个用户.

pam_service_name=/etc/vsftpd/vsftpd //切记要修改该项的值

6.配置到这里就完成了,别忘记重启FTP服务进行测试。

**7.为不同的虚拟用户分配权限 默认情况下,虚拟用户拥有相同的权限,就是virtual的权限,我们可以根据实际需求对不同的虚拟用户分配权限. 首先在FTP的主配置文件中加一个选项:**

user_config_dir=/etc/vsftpd_user_conf //文件名和路径都可以自己定义 然后创建该目录. mkdir /etc/vsftpd_user_conf 下面就可以在该目录下编辑不同虚拟用户的权限配置文件了,比如要对mike编辑其权限. touch mike //建立mike的权限文件.文件名要与虚拟用户名相同 可以根据实际需求为该文件添加下面的选项和值: anon_world_readable_only=NO //表示用户可以浏览FTP目录和下载文件 anon_upload_enable=YES //表示用户可以上传文件 anon_mkdir_write_enable=YES //表示用户有创建和删除目录的权限 anon_other_write_enable=YES //表示用户具有文件改名和删除文件的权限

到这里,虚拟用户就算完成配置完成了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 支付宝扫码支付关闭订单功能实现

    前段时间做了支付宝的扫码支付,奈何当时demo中没找到退款API,AlipayTradeService接口里面只有预下单和退款的方法,然后就忙别的事情。 今天查...

    小柒2012
  • 支付宝扫码支付和微信扫码支付业务场景及问题记录

    这段时间一直在捣鼓扫码支付的功能,项目中使用了支付宝扫码支付和微信扫码支付。中间遇到了很多坑,由于我们系统是分别支持这两种方式的,并且可以随时切换支付方式,特此...

    小柒2012
  • SpringBoot 2.x 开发案例之整合MinIo文件服务

    在之前的图床开发中撸主曾使用了分布式文件服务FASTDFS和阿里云的OSS对象存储来存储妹子图。奈何OSS太贵,FASTDFS搭建配置又太繁琐,今天给大家推荐一...

    小柒2012
  • python 行政区域地址标准化:业务经理填报的地址乱起八糟,高德接口有点厉害!

    需求:由于业务检查需求,需要将一个结构化地址,如”XX省XX市XX区XXX号“地区转化为对应国家统计区行政划分的

    forxtz
  • GDB实现原理和使用范例

    这篇文章为了让你深入了解gdb的工作原理,以及如何在linux环境下使用强大的gdb调试程序功能。

    mariolu
  • IBM SaaS 100抛出橄榄枝 海尔能否心动?

    点央视春晚小米和格力的对话,让很多家电企业意识到互联网企业跨界融合带来的挑战。目前很多互联网企业已经涉足传统的黑电产业,例如手机和电视,未来也存在互联网企业进军...

    静一
  • iOS开发中利用AVFoundation进行音频的录制和播放

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

    用户1451823
  • 如何建立一个Node.js的应用生产在Ubuntu 14.04

    Node.js是一个开源的Javascript运行时环境,可以轻松构建服务器端和网络应用程序。该平台运行在Linux,OS X,FreeBSD和Windows上...

    程序员的自我修养
  • Yii2中你可能忽略但很有用的两个方法batch&each 转

    为了让大家看的更明白,我们模拟一个场景,然后通过yii2的debug来查看all与batch/each方法下的内存使用情况。

    双面人
  • 为什么编译原理被称为龙书?

    这本书很有意思,它的书名是 《Compilers: Principles, Techniques, and Tools》,也就是编译器的原则、技术和工具。但它却...

    cxuan

扫码关注云+社区

领取腾讯云代金券