15.在Ubuntu 14.04上搭建vsftpd
2016-03-12 17:16
549 查看
1.FTP原理
FTP(File Transfer Protocol)是常用的文件传输协议(RFC 959),FTP会话包含控制通道和数据通道:
控制通道:由客户端发起的与FTP Server进行沟通的通道,连接FTP发送FTP指令等,使用21端口。
数据通道:客户端与FTP Server进行文件传输或者列表的通道,使用20端口或其他端口。
2.vsftp的搭建方法
vsftpd(Very Secure FTP daemon)是好用又安全的轻量化FTP工具,工作在chroot模式(为FTP服务开设单独的目录,使FTP用户无法访问该目录之外的内容)。
首先更新系统:
然后安装vsftpd:
修改/etc/vsftpd.conf文件中如下内容(29、33、120行):
然后在配置文件末尾添加如下4行配置:
然后重启vsftpd(每次修改vsftpd的配置后需要重启才能生效)并检查运行状态:
可以看到vsftd在监听21端口,接下来创建专门用来访问FTP的用户及用户目录:
然后在/etc/shells中的最后一行添加nologin的登录权限:
进行到这一步,使用uftp这个账号可以成功登录FTP服务器,但是不能访问上级目录,不能下载文件,可以上传文件,可以创建目录。
FTP虽然基于TCP协议,但是所有数据都是明文传输(数据通道和命令通道均是如此)。接下来配置更为安全的SFTP:
创建一个FTP用户组:
然后修改sshd的配置文件(/etc/ssh/sshd_config):
然后注释掉这一行:
再在最后一行添加如下内容:
因为更改了ssh的配置,所有需要重启一下ssh服务:
然后需要将uftp用户加入到ftpaccess组中:
接下来使用uftp这个账户,就可以登录FTP服务器,创建/删除文件夹,上传、下载文件了,不过还是不能删除文件,怎么配置删除权限作为遗留问题继续研究吧,或者有朋友知道的可以告诉我一下,在此谢过了!
FTP(File Transfer Protocol)是常用的文件传输协议(RFC 959),FTP会话包含控制通道和数据通道:
控制通道:由客户端发起的与FTP Server进行沟通的通道,连接FTP发送FTP指令等,使用21端口。
数据通道:客户端与FTP Server进行文件传输或者列表的通道,使用20端口或其他端口。
2.vsftp的搭建方法
vsftpd(Very Secure FTP daemon)是好用又安全的轻量化FTP工具,工作在chroot模式(为FTP服务开设单独的目录,使FTP用户无法访问该目录之外的内容)。
首先更新系统:
$ 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服务器,创建/删除文件夹,上传、下载文件了,不过还是不能删除文件,怎么配置删除权限作为遗留问题继续研究吧,或者有朋友知道的可以告诉我一下,在此谢过了!
相关文章推荐
- php的时间转换
- yii2 表单提交一直报错 或者页面脚本写ajax,用firbug调试总是找不到地址页面404
- laravel 学习笔记一 (异常处理)
- CodeIgniter 判断用户超时登录清除session
- php-7.0编译模块的出错
- PHP_SQL_数据库读取的“日期”处理
- [PHP]从脚本页面到Mysql数据库的各种中文乱码问题
- Laravel5 根目录router无效
- (多线程)OutPut2
- (多线程)OutPut
- Yii url 工具类
- 使用基于ThinkPHP3.2.3的ThinkAdmin创建手机电脑通用的表白墙(七)优化:访问控制
- laravel 创建路由失败原因
- FTP工作模式<二>
- 获取坐标封装 getPos
- ftp 简介<一>
- 使用基于ThinkPHP3.2.3的ThinkAdmin创建手机电脑通用的表白墙(六)表白页面
- thinkphp的success方法
- phpcms标签云
- 整理 PHPstorm实用个人配置,修改调整个性化快捷键,修改使用phpstorm创建的模板的默认注释: