15.在Linux上搭建安全的FTP服务器

载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/50866053

后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
在这里插入图片描述

1.FTP原理
FTP(File Transfer Protocol)是常用的文件传输协议(RFC 959),FTP会话包含控制通道和数据通道:
控制通道:由客户端发起的与FTP Server进行沟通的通道,连接FTP发送FTP指令等,使用21端口。
数据通道:客户端与FTP Server进行文件传输或者列表的通道,使用20端口或其他端口。
pasv工作模式
port工作模式
2.vsftp的搭建方法
vsftpd(Very Secure FTP daemon)是好用又安全的轻量化FTP工具,工作在chroot模式(为FTP服务开设单独的目录,使FTP用户无法访问该目录之外的内容)。
本文以Ubuntu 14.04为例说明安装过程,其他Linux系统的安装过程也是类似的。首先更新系统:

$ sudo apt-get update

然后安装vsftpd:

$ sudo apt-get install vsftpd

修改/etc/vsftpd.conf文件中如下内容(29、33、120行):

write_enable=YES
local_umask=022
chroot_local_user=YES

然后在配置文件末尾添加如下4行配置:

allow_writeable_chroot=YES
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100

然后重启vsftpd(每次修改vsftpd的配置后需要重启才能生效)并检查运行状态:

$ sudo service vsftpd restart
$ sudo netstat -nlp | grep vsftpd

可以看到vsftd在监听21端口,接下来创建专门用来访问FTP的用户及用户目录:

$ sudo useradd -m uftp -s /usr/sbin/nologin
$ sudo passwd uftp

然后在/etc/shells中的最后一行添加nologin的登录权限:

/usr/sbin/nologin

进行到这一步,使用uftp这个账号可以成功登录FTP服务器,但是不能访问上级目录,不能下载文件,可以上传文件,可以创建目录。
FTP虽然基于TCP协议,但是所有数据都是明文传输(数据通道和命令通道均是如此)。接下来配置更为安全的SFTP:

$ sudo apt-get install openssh-server

创建一个FTP用户组:

$ sudo groupadd ftpaccess

然后修改sshd的配置文件(/etc/ssh/sshd_config):

$ sudo vim 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

因为更改了ssh的配置,所有需要重启一下ssh服务:

$ sudo service ssh restart

然后需要将uftp用户加入到ftpaccess组中:

$ sudo usermod -g ftpaccess uftp

接下来使用uftp这个账户,就可以登录FTP服务器,创建/删除文件夹,上传、下载文件了。

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值