设为首页 收藏本站
查看: 1250|回复: 0

[经验分享] redhat linux 5 ftp

[复制链接]

尚未签到

发表于 2018-5-12 14:18:11 | 显示全部楼层 |阅读模式
  FTP
早起三大网络应用 ftp http mail
FTP的全称file transfer protocol 文件传输协议
40年之前出现的
缺点:明文传输  比较麻烦
FTP 采用双TCP连接方式  C/S模型
控制连接使用TCP端口号21
数据连接使用TCP端口号20
  控制连接: 用于在FTP客户端和FTP服务器之间传输FTP控制命令及命令执行信息。控制连接在整个FTP会话期间一直保持打开
  数据连接
用于传输数据,包括数据上传、下载、文件列表发送等。数据传输结束后数据连接将终止 粒度
  FTP采用两种数据传输方式:
主动方式:PORT
被动方式:PASV
站在服务器角度看,由客户端选择的
  FTP有两种文件传输模式:
ASCII模式:默认的文件传输模式,特点:本地文件转换成标准的ASCII码在传输。适用于传输文本文件
二进制模式: 图像文件传输模式,特点是文件按照比特流的方式进行传输,适用于传送程序文件。一般默认是二进制模式
文本模式和二进制模式的区别
文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式。
  二进制模式用来传送可执行文件,压缩文件,和图片文件。如果你用ASCII模式传,会显示一堆乱码,你必须重新用BINARY模式传。用HTML和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。?
启用ASCII 传输方式
默认情况下,vsftpd 为了提高传输效率,禁止了ASCII 传输方式。虽然在ftp 客户软件中可以使用asc命令,但是传输文件时仍然使用二进制传输方式。
可以分别启用上传和下载的ASCII 传输方式,方法是编辑/etc/vsftpd 配置文件,将如下两行前的#去掉即可启用。
#ascii_upload_enable =YES
#ascii_download_enable=YES
常见的FTP服务器程序
IIS  Serv-U Filezilla 用于windows
wu-ftpd     Proftpd比较常用
vsftpd (Very Secure  FTP Daemon)linux中默认的FtP
常见的FtP客户端程序:
ftp命令 ie  chrome
CuteFTP   FlashFXP用的比较多,通信加密   LeapFTP Filezilla
gftp  kuftp
  vsftpd 特性:高速,稳定,与生俱来的安全性能高
大小:140kB
速度方面:它是wu-FTPd的两倍
稳定性方面:在单机支持4000个以上的并发用户同时连接
  功能:支持基于IP的虚拟FTP服务器
      支持虚拟用户
      支持PAM或xinetd/tcp_wrappers的认证方式
      支持两种运行方式:独立和Xinetd
      支持每个虚拟用户具有独立的配置
      支持带宽限制等
  FTP用户类型:匿名用户:anonymous或ftp
本地用户:账号名称,密码等信息保存在passwd shadow文件中
虚拟用户:使用独立的账号/密码数据文件
user_list zhangsan 123456 /var/pub
  vsftpd 软件包
官方网站:http://vsftpd.beasts.org/
主程序:/usr/sbin/vsftpd
服务名:vsftpd
用户控制列表文件:/etc/vsftpd/ftpusers禁止登录用户列表
                  /etc/vsftpd/usr_list仅提供一个用户列表,是否禁用在配置文件中设置
配置文件:/etc/vsftpd/vsftpd.conf
  配置基本的性能和安全选项
1. 设置空闲的用户会话的中断时间
例如下面的配置:
idle_session_timeout=600
将在用户会话空闲10 分钟后被中断。
2. 设置空闲的数据连接的的中断时间
例如下面的配置:
data_connection_timeout=120
将在数据连接空闲2 分钟后被中断。
3. 设置客户端空闲时的自动中断和激活连接的时间
例如下面的配置:
accept_timeout=60
connect_timeout=60
将使客户端空闲1 分钟后自动中断连接,并在中断1 分钟后自动激活连接。
  设置连接服务器后的欢迎信息
为了使用户连接服务器后显示信息,vsftpd 提供了两个选项,分别是:
ftpd_banner
banner_file
例如:可以设置如下的ftpd_banner 选项的值:
banner_enable=Welcome to wnt FTP service.
即:用户连接服务器后显示信息“Welcome to wnt FTP service.”。
也可以设置如下的banner_file 选项的值:
banner_file=/var/vsftpd_banner_file
即:用户连接服务器后显示文件/var/vsftpd_banner_file 中的信息。
  
设置最大传输速率限制
例如下面的配置:
local_max_rate=50000
anon_max_rate=30000
将使本地用户的最大传输速率为50kbytes/sec,匿名用户的传输速率为30kbytes/sec。
5. 设置客户端连接时的端口范围
例如下面的配置:
pasv_min_port=50000
pasv_max_port=60000
将使客户端连接时的端口范围在50000 和60000 之间。这提高了系统的安全性。
  配置基于本地用户的访问控制
要配置基于本地用户的访问控制,可以通过修改vsftpd 的主配置文件/etc/vsftpd.conf 来进行,有如下两种限制方法:
1. 限制指定的本地用户不能访问,而其他本地用户可访问
例如下面的设置:
userlist_enable=YES
userlist_deny=YES
userlist_file= /etc/vsftpd.user_list
使文件/etc/vsftpd.user_list 中指定的本地用户不能访问FTP 服务器,而其他本地用户可访问FTP服务器。
  2. 限制指定的本地用户可以访问,而其他本地用户不可访问
例如下面的设置:
userlist_enable= YES
userlist_deny=NO
userlist_file= /etc/vsftpd.user_list
使文件/etc/vsftpd.user_list 中指定的本地用户可以访问FTP 服务器,而其他本地用户不可以访问FTP服务器。
  在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP 服务器来说是不安全的。
如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot 选项,涉及如:
chroot_local_user
chroot_list_enable
chroot_list_file
有两种设置chroot 的方法:
(1)设置所有的本地用户执行chroot
只要将chroot_local_user 的值设为YES 即可,即:
chroot_local_user=YES
(2)设置指定的用户执行chroot
需要如下的设置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file= /etc/vsftpd.chroot_list  
这样,/etc/vsftpd.chroot_list 文件中指定的用户不能执行chroot。
构建基于虚拟用户的vsftpd服务器
1.建立虚拟FTP用户的帐号数据库文件
建立虚拟用户的账户名、密码列表
奇数行为帐号名
偶数行为上一行中帐号的密码
转化为Berkeley DB格式的数据文件
db_load 转换工具
需安装 db4-utils-4.3.29-9.fc6.i386.rpm 软件包
[root@filesvr ~]# vi /etc/vsftpd/vusers.list
mike
123
john
456
[root@filesvr ~]# cd /etc/vsftpd/
[root@filesvr vsftpd]# db_load -T -t hash -f vusers.list   vusers.db
[root@filesvr vsftpd]# file vusers.db
vusers.db: Berkeley DB (Hash, version 8, native byte-order)
[root@filesvr vsftpd]# chown 600 /etc/vsftpd/vusers.*
  2.创建FTP根目录及虚拟用户映射的系统用户
[root@filesvr ~]# mkdir /var/ftproot
[root@filesvr ~]# useradd -d / var/ftproot -s / sbin/nologin virtual
[root@filesvr ~]# chmod 755 /var/ftproot/
  3.建立支持虚拟用户的PAM认证文件
[root@filesvr ~]# vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vusers
account    required     pam_userdb.so db=/etc/vsftpd/vusers
  4.在vsftpd.conf文件中添加支持配置
[root@filesvr ~]# vi  /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
  5.为个别虚拟用户建立独立的配置文件
在vsftpd.conf文件中添加用户配置目录支持
user_config_dir=/etc/vsftpd/vusers_dir
为用户mike、john建立独立的配置目录及文件
配置文件名与用户名同名
[root@filesvr ~]# mkdir /etc/vsftpd/vusers_dir/
[root@filesvr ~]# cd /etc/vsftpd/vusers_dir/
[root@filesvr vusers_dir]# touch mike
[root@filesvr vusers_dir]# vi john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
6.重新加载vsftpd配置
service vsftpd reload
  7.使用虚拟FTP账户访问测试
分别用mike、john用户登录FTP服务器进行下载、上传测试
mike用户可以登录,并可以浏览、下载文件,但无法上传
john用户可以登录,并可以浏览、下载文件,也可以上传
匿名用户或其他系统用户将不能登录

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-459194-1-1.html 上篇帖子: redhat下完全卸载Oracle10g 下篇帖子: redhat linux 5 nfs
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表