阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在Ubuntu 14.04上安装搭建FTP服务器详解

122次阅读
没有评论

共计 2884 个字符,预计需要花费 8 分钟才能阅读完成。

今天要做一个网络日志的迁移程序,搬文件的话,想来想去还是用 FTP 吧。FTP 用于通过 TCP 网络从一台主机向另外一台主机传送文件。这篇文章解说了怎样在 Ubuntu 14.04 上安装 FTP 服务器。流行的 FTP 服务器端软件有:PureFTP,VsFTPD,ProFTPD。这里我采用轻量并且坑少的 VsFTPd。

在 Ubuntu 14.04 上安装 FTP 服务

第一步 >> 更新库

linuxidc@linuxidc:~$ sudo apt-get update

第二步 >> 采用如下命令安装 VSFTPD 的包

linuxidc@linuxidc:~$ sudo apt-get install vsftpd

第三步 >> 安装完成后打开 /etc/vsftpd.conf 文件,按如下所述修改。

取消如下行的注释(行号为 29 和 33)

write_enable=YES
local_umask=022

>> 取消如下行的注释(行号 120)来阻止除了用户文件夹意外的文件夹。

chroot_local_user=YES

在文件最后增加如下一行:

allow_writeable_chroot=YES

>> 添加如下行开启消极模式

pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100

第四步 >> 用如下命令重启 vsftpd 服务

linuxidc@linuxidc:~$ sudo service vsftpd restart

第五步 >> 现在 ftp 服务器正在监听 21 端口。用如下命令创建用户。用 /usr/sbin/nologin 脚本来阻止 ftp 用户访问 bash 脚本。

linuxidc@linuxidc:~$ sudo useradd -m john -s /usr/sbin/nologin
linuxidc@linuxidc:~$ sudo passwd john

第六步 >> 开启 nologin 脚本的开机访问。打开 /etc/shells 并把如下行添加进去。

/usr/sbin/nologin

现在试着用刚创建的用户通过 21 端口连接 ftp 服务器。客户端采用 winscp 或 filezilla。验证用户是不是真的不能访问 home 文件夹之外的文件夹。

在 Ubuntu 14.04 上安装搭建 FTP 服务器详解

需要特别说明一下的是,在 21 端口上使用 ftp 是非常危险的。强烈建议使用 SFTP。请看下面的 SFTP 的配置。

安全的 FTP(SFTP)

SFTP 称作“安全的 FTP”,它使用 ssh 文件传输协议。所以我们需要安装 openssh-server。如果还没装的话,执行如下命令。

linuxidc@linuxidc:~$ sudo apt-get install openssh-server

第七步 >> 为 FTP 用户创建一个新的用户组 ftpaccess。

linuxidc@linuxidc:~$ sudo groupadd ftpaccess

第八步 >> 在 /etc/ssh/sshd_config 中做如下修改

>> 找到并注释掉下面一行

Subsystem sftp /usr/lib/openssh/sftp-server

在文件的最后增加如下行

Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

第九步 >> 重启 sshd 服务

linuxidc@linuxidc:~$ sudo service ssh restart

第十步 >> 下面几步用来创建访问 SFTP 服务的用户。

创建用户 john,属于 ftpaccess 组并且执行 /usr/bin/nologin 脚本

linuxidc@linuxidc:~$ sudo useradd -m john -g ftpaccess -s /usr/sbin/nologin
linuxidc@linuxidc:~$ sudo passwd johnChange ownership for the home directory.
linuxidc@linuxidc:~$ sudo chown root /home/john

在 home 文件夹创建一个用于写入文件的文件夹并修改文件夹的所有者。

linuxidc@linuxidc:~$ sudo mkdir /home/john/www
linuxidc@linuxidc:~$ sudo chown john:ftpaccess /home/john/www

现在用 SFTP 试着连接服务器(端口:22),并确保用户可以往 www 文件夹上传文件,而且也不能访问 home 文件夹以外的文件。

在 Ubuntu 14.04 上安装搭建 FTP 服务器详解

如果你想让 FTP 和 SFTP 并存,在创建用户时按照上面的第十步操作就行。对于已经存在的用户,可以像下面这样把他们移动到 ftpaccess 组,创建文件夹结构并修改所有权。

linuxidc@linuxidc:~$ sudo usermod john -g ftpaccess -s /usr/sbin/nologin
linuxidc@linuxidc:~$ sudo chown root /home/john
linuxidc@linuxidc:~$ sudo mkdir /home/john/www
linuxidc@linuxidc:~$ sudo chown john:ftpaccess /home/john/www

现在你可以通过 FTP,也可以通过 SFTP 向 www 文件夹上传文件了。

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-03/129057.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2884字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中