ftp协议及vsftpd的基本应用
1、ftp协议及vsftpd的基本应用
vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
文件共享服务:
工作在应用层:ftp(file transfer protocol)
应用层协议:tcp,
工作在内核:nfs
跨平台:samba
ftp工作在221号端口,传输数据:
命令连接:文件管理类命令,始终在线的连接
数据连接:数据传输,按需创建及关闭连接
主动连接:由服务器创建连接
命令连接:
client用随机端口发起连接请求到server 21,client会把使用端口告诉服务器端
数据连接:
server用20号端口连接客户端发起端口+1或+2连接客户端
被动连接:由客户端创建连接
命令连接:
client用随机端口连接server21号端口,并告诉客户端请求数据会用哪个随机端口。
数据连接:
clinent用随机+1端口连接服务端已告知的随机端口。
ftp server:wu-ftpd、proftpd、puerftp、vsftpd、servu
ftp client:ftp、lftp、wget、filezilla、gftp、flashfxp、cuteftp
响应码:
1xx:信息
2xx:成功类状态
3xx:需要进一步提供补充类信息
4xx:客户端错误信息
5xx:服务端错误信息
220表示链接成功的状态码,
331表示输入用户名后需要进一步补充信息即密码(密码为空)
230表示登陆成功
227表示被动模式
(192,168,108,160,104,145)表示在被动模式下服务器端要打开一个随机端口和客户端链接,监听在192.168.108.160地址上的104*256+145的随机端口上
226表示目录显示成功
用户认证:
虚拟用户:仅用于访问某特定服务中的资源
nsswitch:network server switch:名称解析框架
配置文件:/etc/nsswitch.conf
模块:/lib64/libnss*,/usr/lib64/libnss
pam:pluggable authentication module
配置文件:/etc/pam.conf,/etc/pam.d/*
模块:/lib64/security/
支持系统用户:
支持匿名用户:
centos自带的是vsftp
yum -y install vsftpd
rpm -ql vsftpd
用户认证配置文件 /etc/pam.d/vsftpd
启动服务脚本:/etc/rc.d/init.d/vsftpd
日志滚动:/etc/logrotate.d/vsftpd
配置文件目录:/etc/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
主应用程序:/usr/sbin/vsftpd
匿名用户共享资源位置:/var/ftp,匿名用户:yum install finger
系统用户登录ftp访问资源位置是用户家目录
虚拟用户通过ftp访问资源的位置映射为系统用户家目录
客户端安装:
yum install ftp或者在浏览其中输入ftp://192.168.146.138
vim /etc/vsftpd/vsftpd.conf
匿名用户配置:
是否支持匿名用户登录:anonymous_enable=YES
是否支持匿名用户创建目录:anon_mkdir_write_enable=YES
是否支持匿名用户上传: #anon_upload_enable=YES
是否支持匿名用户删除目录:anon_ohter_write_enable=YES
系统用户配置:
是否支持本地用户:local_enable=YES
系统用户写权限:write_enable=YES
禁锢系统用户只能在自己家目录 :#chroot_local_user=YES
禁锢指定用户在其家目录中:#chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list
是否支持匿名用户上传: #anon_upload_enable=YES
在没有开启#anon_upload_enable=YES之前是不支持匿名用户上传的,首先应在/etc/vsftpd/vsftpd.conf 开启这一功能
frp>lcd /etc 是切换上传目录
开启匿名用户上传之后,再次上传还是不行,因为/var/ftp都是root权限
# ls -ld /var/ftp
# ps aux | grep ftp但是vsftpd程序是以普通用户ftp运行的
因此可以在/var/ftp目录下创建一个目录,并添加额外权限
切换到远程主机(另一个IP地址的主机)
禁锢指定用户在其家目录中:#chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list
编辑/etc/vsftpd/chroot_list 这个文件后只添加了centos,因此fedora可以看到家目录,而centos不能看到家目录
2、vsftpd的高级应用
vim /etc/vsftpd/vsftpd.conf
所有以#开头,后面跟了空格再跟字符的纯粹是注释行
以#开头,后面直接跟字符的,比如第3行,是可以启用的选项
直接顶头写的,比如第二行是已经启用的
比如第1行,顶头有空格的,又启用的属于语法错误
系统用户配置:
1、在ftp任何目录下创建.message文件,当用户进入该目录时显示.message中内容 dirmessage_enable=YES
2、是否启用传输日志:xferlog_enable=YES
3、指定日志文件位置:#xferlog_file=/var/log/xferlog
4、修改上传用户属主:#chown_uploads=YES
5、指定修改上传用户:#chown_username=whoever
6、设定用户超时时长:#idle_session_timeout=600
7、数据连接超时时长:#data_connection_timeout=120
8、登录ftp时显示的信息:#ftpd_banner=Welcome to blah FTP service.
9、配置文件在:/etc/pam.d/vsftpd --> pam_service_name=vsftpd
vsftpd使用pam完成用户认证,启用到的pam配置文件
pam_service_name=vsftpd 主要功能是:指明在/etc/pam.d/目录下,
用哪个文件完成基于pam对vsftpd进行用户认证
这一项启用后,在/etc/pam.d/vsftpd中
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
如果在/etc/vsftpd/ftpusers文件中添加用户的名称,则禁止登陆。
例如我在这个文件中假如centos
10、 (是否启用用户登录列表文件,默认配置文件/etc/vsftpd/user_list(手动创建):userlist_enable=YES
是否启用/etc/vsftpd/user_list列表文件:userlist_deny=yes|no )
# vim /etc/vsftpd/vsftpd.conf
添加user_list_deny=YES此时user_list是黑名单,
如果user_list_deny=NO就是白名单,只有定义在/etc/vsftpd/user_list文件中的用户才能登陆
# vim user_list 添加centos,再次登陆时直接拒绝
链接限制
11、tcp_wrappers=YES
最大并发连接数(无论多少个IP):max_clients
每个IP可同时发起的并发请求数:max_per_ip
传输速率:
匿名用户的最大传输速率,单位是“字节/秒”:anon_max_rate
本地用户最大的传输速率:local_max_rate
1、在/var/ftp/upload目录下创建一个.message文件,添加内容:
1 hello guest
2 how are you?
在另一个主机访问这个目录:
虚拟用户配置:
所有虚拟用户会被统一映射为一个指定系统账号,访问共享位置为此账号家目录。
各虚拟用户被赋予不同的访问权限;
通过参数进行指定虚拟用户账号的存储方式:
1、文件:编辑文件:
奇数行为用户名,
偶数行为密码。此文件需要被编译为hash格式:
2、关系型数据库中的表:
即时查询数据库完成用户认证:
mysql库
pam要依赖于pam_mysql
#yum install pam_mysql
lftp:lftp -u username ip
-c:支持断点续传
axel 下载很快
lftpget wget curl
ftp协议是明文
ftp协议及vsftpd的基本应用的更多相关文章
- FTP协议详解(转)
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application ...
- vsftpd-基于ftp协议的文件传输服务器软件
第一部分:在Linux上部署vsftpd服务 1. vsftpd简介 1.1 vsftpd是什么? ftp(File Transfer Protocol)文件传输协议.(实现不同操作系统之间文件的传输 ...
- 搭建 FTP 文件服务vsftpd
安装并启动 FTP 服务 安装 VSFTPD 使用 yum 安装 vsftpd: yum install vsftpd -y vsftpd 是在 Linux 上被广泛使用的 FTP 服务器,根据其[官 ...
- 转FTP协议详解
转自:http://www.cnblogs.com/li0803/archive/2010/11/16/1878833.html FTP 是File Transfer Protocol(文件传输协议) ...
- 初入网络系列笔记(5)FTP协议
一.借鉴说明,本博文借鉴以下博文 1.锤子,FTP协议,http://www.cnblogs.com/loadrunner/archive/2008/01/09/1032264.html 2.suna ...
- FTP协议
1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...
- FTP协议及工作原理
1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...
- ftp协议详解
客户端与服务器之间,需要多条连接才能完成应用的协议,属于复杂协议.如FTP,PPTP,H.323和SIP均属于复杂协议. 这里主要介绍ftp协议的工作原理.首先,ftp通信协议有两种工作模式,被动模式 ...
- 深入理解FTP协议
文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议.FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有 ...
随机推荐
- [py]flask蓝图的使用
参考 flask挺挺轻巧的, 因此玩一玩它. 如果用它做大型点的项目, 就用到了它的蓝图组织项目. 一时半会不太清楚这玩意怎么用, 得撸一撸py基础了. 我搞了个movie小的flask栗子来用用蓝图 ...
- SQL中常见语句
SQL中常见语句笔记: --替换字段中的回车符和换行符 ) ), '') --删除表命令 DROP TABLE [dbo].[MGoods_Test] --删除表中数据命令 DELETE FROM [ ...
- http协议基础(八)请求首部字段
请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...
- Linux系统——Keepalived高可用集群
#### keepalived服务的三个重要功能1. 管理LVS负载均衡软件Keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动,停止功能,这使得 ...
- cocos代码研究(6)有限时间动作类(FiniteTimeAction)学习笔记
理论部分 有限时间动作类继承自Action类,被 ActionInstant(即时动作) , 以及 ActionInterval(持续动作) 继承. 即时动作是会立即被执行的动作,被 CallFunc ...
- cocos代码研究(2)Label学习笔记
理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...
- php7安装memchced扩展
tar -zxvf memcached-3.0.3.tgz cd memcached-3.0.3 phpize yum install libmemcached libmemcached-dev ./ ...
- webapi swagger学习笔记
版权声明:部分摘抄其他博主朋友的博文内容,旨在分享学习,如给您带来不便,请原谅.原文地址 http://www.cnblogs.com/yanweidie/p/5709113.html#_label3 ...
- hdu4991 树状数组+dp
这题说的是给了一个序列长度为n 然后求这个序列的严格递增序列长度是m的方案有多少种,如果用dp做那么对于状态有dp[n][m]=dp[10000][100],时间复杂度为n*m*n接受不了那么想想是否 ...
- 20154312 曾林 EXP6 信息搜集与漏洞扫描
目录 1.实验后回答问题 2.实验总结与体会 3.实践过程记录 --3.1.信息收集 ----3.1.1.whois查询 ----3.1.2.nslookup,dig查询 ----3.1.3.trac ...