观察用户和FTP服务器系统有哪些连接时,交互了哪些信息?

  快速搭建FTP是一种常见的用于文件交换的服务,目前大小公司都有在用。  这次主要是基于vsftpd的搭建和配置。  一、vsftpd简介:  vsftpd是一个UNIX类操作系统上运行的FTP服务器,它可以运行在Linux、BSD、Solaris、HP-UNIX等多种操作系统上面,是一个完全免费的、开发源代码的ftp服务器软件。目前主流的Linux发行版中都可以找到vsftpd的身影。  它有如下特点:  程序小巧轻快,安装方便。 安全性和稳定性较早期FTP有很大进步。 配置简单。  二、学习安装和配置vsftpd:  实验环境:Centos 5.8 x86_64  测试环境关掉和selinux。  service iptables stop setenforce 0  1、安装vsftpd  yum -y install vsftpd  2、vsftpd相关的目录及配置文件  /usr/sbin/vsftpd vsftpd主程序。 /etc/init.d/vsftpd vsftpd服务控制脚本。 /etc/pam.d/vsftpd 这个是vsftpd使用PAM模块时的相关配置文件,主要用来验证登陆FTP用户账号的身份。 /etc/vsftpd/ 配置文件目录。 /etc/vsftpd/vsftpd.conf vsftpd服务主配置文件,使用方法:参数=设定值。 /etc/vsftpd/ftpusers 与PAM模块的配置文件配合使用,主要填写FTP用户账号,一行一个。 /etc/vsftpd/user_list vsftpd服务自己的用户账户控制文件,与vsftpd.conf配置文件中的userlist_enable、userlist_deny两个参数有关。 /var/ftp/ 默认匿名用户根目录。  3、主配置文件vsftpd.conf详解  与服务器环境较相关的设定值 connect_from_port_20=YES (NO) 主动式连接时使用FTP服务器的端口号,就是FTP-date的端口号。 listen_port=21 vsftpd控制端口。 dirmessage_enable=YES (NO) 当用户进入某个目录时,是否显示该目录需要注意的内容,显示信息的文件默认是 .message 。 message_file=.message 当 dirmessage_enable=YES 时,可以修改默认显示信息文件的文件名。 listen=YES (NO) 设置为YES表示以stand alone方式启动服务器,设置为NO则表示以super deamon的方式启动服务器。 pasv_enable=YES (NO) 启动被动模式(passive mode),一定要设置为YES。 use_localtime=YES (NO) 启用本地时间,一般需要设置为YES。因为vsFTPd默认使用GMT格林威治时间,这比东八区的时间早了8个小时,会使得服务器上的文件时间属性出现混乱。 write_enable=YES (NO) 是否允许用户上传数据。 connect_timeout=60 在数据连接主动模式下,发出的连接信号在60秒内没有得到客户端的响应,则强制断线。 accept_timeout=60 在用户以PASV被动模式进行数据传输时,如果主机启动passive port并等待客户端超过60秒无回应,就强制断线。 data_connection_timeout=300 在客户端和服务器的数据连接已经建立的情况下,如果在300秒内还是无法顺利完成数据传输,则客户端的连线会被vsFTPd强制断开。 idle_session_timeout=300 如果用户在300秒内没有命令操作,则断线。 max_clients=0 当vsFTPd以stand alone模式运行时,这个参数决定同一个IP、同一时间内被服务器允许的连接数。 max_per_ip=0 与上面 max_clients 类似,这里是同一个 IP 同一时间可允许多少联机? pasv_min_port=0, pasv_max_port=0 这两个参数指定pasv模式使用的端口号的范围,0表示不限制。 ftpd_banner=一些文字说明 用登入FTP时,显示的欢迎信息,可设定显示的信息内容较少。 banner_file=/path/file 这个参数可以弥补FTPd_banner参数的不足,特别是当需要在服务器端展示较多的文字信息时(如站点说明,欢迎文字等等)。 与实体用户较相关的设定值 guest_enable=YES (NO) 开启访客用户,如果开启则所有的非匿名用户的均会被假设成访客身份。访客默认情况下使用FTP这个账户相关的权限设置,但是可以通过参数guest_username来修改。 guest_username=ftp 在开启了guest_enable=YES之后才会生效,用来指定访客的身份。 local_enable=YES (NO) 是否允许/etc/passwd中存在的实体用户帐号登陆vsFTPd服务器。 local_max_rate=0 实体用户的传输速度限制,单位为bytes/second,0表示不限制。 chroot_local_user=YES (NO) 将实体用户限制在自己的家目录之内,默认值为NO。 chroot_list_enable=YES (NO)、chroot_list_file=/etc/vsftpd.chroot_list 这两个参数需要配合使用,用以将chroot_list文件中列出的用户限制在自己的默认目录中。 userlist_enable=YES (NO)、userlist_deny=YES (NO)、userlist_file=/etc/vsftpd/user_list 参数userlist_enable=YES表示借助vsFTPd的阻止机制来处理user_list文件中列出的某些不受欢迎的帐号;当userlist_deny=YES时user_list文件中的帐号将被拒绝,当userlist_deny=NO时则表示允许user_list中的帐号登陆服务器; 匿名者登入的设定值 anonymous_enable=YES (NO) 是否允许匿名账户anonymous登录,以下参数均在允许情况下生效。 anon_world_readable_only=YES (NO) 是否允许匿名用户具有只读权限。 anon_other_write_enable=YES (NO) 是否允许匿名账户具有可写权限。 anon_mkdir_write_enable=YES (NO) 是否允许匿名用户具有创建目录的权限。 anon_upload_enable=YES (NO) 是否允许匿名用户具有上传文件的权限。 deny_email_enable=YES (NO) 若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。 banned_email_file=/etc/vsftpd/banned_emails 如果 deny_email_enable=YES 时,可以利用这个设定项目来规定哪个 email address 不可登入我们的 vsftpd 喔!在上面设定的档案内,一行输入一个 email address 即可! no_anon_password=YES (NO) 此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。 anon_max_rate=0 设置匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。 anon_umask=077 设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权限为700。 关于系统安全方面的一些设定值 ascii_download_enable=YES (NO) 设置是否启用ASCII 模式下载数据。默认值为NO。 ascii_upload_enable=YES (NO) 设置是否启用ASCII 模式上传数据。默认值为NO one_process_model=YES (NO) 是否使用单进程模式 tcp_wrappers=YES (NO) 设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。 xferlog_enable=YES (NO) 是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。 xferlog_file=/var/log/xferlog 设置日志文件名和路径,默认值为/var/log/vsftpd.log。 xferlog_std_format=YES (NO) 如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。 dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log 如果启用该选项,将生成两个相似的日志文件,默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下。前者是 wu-ftpd 类型的传输日志,可以利用标准日志对其进行分析;后者是Vsftpd类型的日志。 nopriv_user=nobody 预设vsftpd服务的运行账户。 pam_service_name=vsftpd 设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。  4、配置实例  基于匿名用户的配置:  cd /etc/vsftpd/ vim vsftpd.conf  write_enable=YES anonymous_enable=YES no_anon_password=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_root=/data/vsftpd anon_world_readable_only=NO syslog_enable=YES connect_from_port_20=YES pam_service_name=vsftpd listen=YES  mkdir -p /data/vsftpd/upload chmod 777 /data/vsftpd/upload  基于本地用户的配置:  cd /etc/vsftpd/ vim vsftpd.conf  anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES pam_service_name=vsftpd userlist_enable=YES listen=YES tcp_wrappers=YES userlist_deny=NO  useradd test echo test | passwd --stdin test echo &test& && user_list  基于虚拟用户的配置:  yum -y install db4-utils cd /etc/vsftpd/ vim virtual_userlist.txt  test1 123456 test2 123456  db_load -T -t hash -f /etc/vsftpd/virtual_userlist.txt /etc/vsftpd/virtual_userlist.db chmod 600 /etc/vsftpd/virtual_userlist.db vim /etc/pam.d/vsftpd.vu  auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_userlist account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_userlist  useradd virtual_user -d /data/vsftpd chmod 700 /home/ftpsite chown virtual_user.virtual_user /data/vsftpd/ vim /etc/vsftpd/vsftpd.conf  anonymous_enable=NO local_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES listen_port=21 userlist_enable=YES guest_enable=YES guest_username=virtual_user pam_service_name=vsftpd.vu virtual_use_local_privs=YES ftpd_banner=Welcome to opendoc FTP service. write_enable=YES anonymous_enable=NO anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_umask=022 download_enable=Yes local_root=/data/vsftpd  关于服务器控制:  service vsftpd {start|stop|restart|condrestart|status}  客户端操作:
本信息由发布,点击了解更多相关信息
来源:责任编辑()
本文网址:
版权与免责声明:
① 凡本网注明"来源:中国教育装备采购网"、"来源:《中国现代教育装备》杂志社"的所有作品,版权均属于中国教育装备采购网(),未经本网授权不得转载、摘编或利用其它方式使用。已获本网授权的作品,应在授权范围内使用,并注明"来源:中国教育装备采购网"。违者本网将追究相关法律责任。
② 本网凡注明"来源:xxx(非本网)"的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,且不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。
③ 如涉及作品内容、版权等问题,请在作品发表之日起两周内与本网联系,否则视为放弃相关权利。
【背景】日下午,全国部分高职院校体育教研...
小哈津幼儿园创办20年来,已发展成为在辽宁省内拥有35...
&&&&日,南京市教育装...
最新加入企业
关注本网官方微信
北京市公安局海淀分局备案第号您所在的位置: &
暴力破解FTP服务器技术探讨与防范措施(3)
暴力破解FTP服务器技术探讨与防范措施(3)
随着Internet的发展出现了由于大量傻瓜化黑客工具,任何一种黑客攻击手段的门槛都降低了很多,但是暴力破解法的工具制作都已经非常容易,大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗?
三、&安全策略的突破
如果苛刻地说网络带宽和运算处理能力都是非技术因素,无法可控地进行优化的话,那么安全策略就是最直接也是最有效的防御措施了。对暴力破解来说,安全策略在很大程度上对暴力破解的成功率、时间甚至是否能发起攻击都存在着很大的影响。不过之所以说暴力破解是一种放之四海而皆准的攻击方式,就在于它可以经过攻击者简单的变化,而达到突破安全策略的目的。需要指出的是,本节的安全策略是单独的和暴力破解相关的安全策略,并没有涉及诸如密码期限、密码长度、通信加密等与暴力破解无关的安全策略。
1.& 连接频率限制及其突破
随着网络安全意识的逐渐提高,重视安全的管理员一般会限制FTP服务器的连接频率。所谓的连接频率是指管理员定义了在特定时间段内的同一用户的连接次数,在这个次数限制之内可以任意连接,如果超出这个次数限制则拒绝连接。
网络安全工程师或管理员通过对连接频率的限制,一方面可以合理地分配FTP服务器的处理运算能力,避免出现某一个用户因为使用了超快的连接而大量占用服务器资源的情况,另一方面可以对普通的基于账户密码的暴力破解攻击进生行之有效地限制。
大家注意实际网络中也存在其他时间和连连接频率限制的规则,不一定是5秒一次连接,也不一定是10秒后才允许下一次连接。如果是默认的高效率的FTP暴力破解,一般情况下都是一秒发起上百次连接尝试,大大地超出了服务器允许的范围,所以这样的暴力破解显然是不能成功的,会被服务器一直拒绝连接。针对这样的情况,有经验的攻击者在发现目标服务器存在这样的连接频率限制以后,会适当地修改暴力破解程序的连接频率,让攻击程序在满足安全策略的前提下进行暴力破解。
比如,攻击者完全可以定义攻击程序每5.1秒进行一次FTP暴力破解尝试,以达到躲开安全策略限制的目的。这样的频率限制策略看似在效率上大大地阻碍了暴力破解的进行, 但是如果只有这一种安全策略的话,是无法阻挡攻击者发起高效的暴力破解的,实际上攻击者可以通过其他攻击策略的改变来变相提高整个暴力破解的效率。
2. 尝试错误次数限制及其突破
同连接频率相比,错误次数限制更常见一些,网络上很多FTP服务器的管理员或者工程师都使用了这个安全策略。尝试错误次数限制是指某FTP用户的错误发生次数,当该用户的密码尝试次数超过规定的次数以后,则短期拒绝该用户的连接。举例来说,网络安全工程师可以设定这样的安全策略:从某用户尝试登录开始,连续5次输入密码错误,则返回错误信息,并在FTP系统中拒绝该用户的下一次密码验证,直到超过设定的限制时间结束。
这样做的好处可以在很大程度上限制普通暴力破解攻击的发起,因为很多暴力破解攻击都是在无数的错误中找寻一个正确的密码。如果遇到这样的策略,暴力破解就几乎没有成功率可言了。不过错误次数限制实际上也是可以突破的,而且突破的方法也并不难。
对有经验的攻击者来说,一旦发现目标系统存在错误次数限制,则会通过手工验证的方式,彻底摸清究竟允许几次密码错误,后续的拒绝连接时间究竟是多少?一旦弄明白这两点,攻击者会很容易地调整暴力破解策略,突破次数限制。举例来说,如果管理员限制了5次连续错误后30秒不允许连接,则攻击者可以定义暴力破解程序以5次为一个循环,每发起5次攻击就暂停30秒,然后再继续尝试。& 另外一种方式是每5次尝试一个新账户,在服务器开始拒绝当前账户连接的时候,使用新的账户进行暴力破解尝试,直到所有的用户名都尝试过一遍再重头开始。还有一个大多数攻击者采用的方式就是利用分布式的攻击来解决错误次数的限制,每个僵尸计算机都使用独立秒,然后再进行后续的尝试。
3. IP锁定及其突破
同上面的两种安全策略相比,IP锁定比较难解决一些,不过只要目标FTP考虑让正常用户使用,那暴力破解就肯定可以发起。IP锁定策略一般是和连接频率、错误次数策略配合使用,也就是说当某账户进行连接以后,如果连接频率过高,或者错误次数超过限制,则开始运用IP锁定策略。
在实际网络中,IP锁定策略有两个典型的应用方式,一种是当某账户出现异常以后,FTP服务器记录这个账户的IP地址,然后加入自己的黑名单,从此以后均拒绝此IP的连接,除非该用户联系管理员解除黑名单限制;另一种方式是IP限制是暂时的,过一段时间会自动解除。针对自动解除限制的情况,攻击者可以制一样的方法,调整暴力破解的循环时间,在限制时间过后,继续发起暴力破解攻击。针对永久封锁IP的情况,有四种方法可以突破:
(1).使用代理突破IP封锁
单纯地使用代理来进行FTP暴力破解是无法突破IP锁定的,只有暴力破解程序可以自动读取代理列表,然后在目标系统允许的情况下,发起几次暴力破解,然后再更换代理继续发起攻击。这个方法实现起来虽然简单,但是实际效果并不好,因为就算是网络攻击者也不能够保证构建一个拥有足够多代理,并且连接速度稳定、不产生意外数据接收错误的代理群,如何获得更多的代理呢?我们可以去网页上搜索,也可以自己用代理猎手来找代理,他最大的特点是搜索速度快,最快可以在十几分钟内搜完一个B类地址。如果单纯的代理无法满足需要的话我们还可以换用Muti Proxy实现IP动态自由切换功能,通过使用Sockscap+Sksockserver实现完美组合以达到组合代理的需求。如下图1、2所示。
2)&.使用ADSL类的动态IP机制突破IP封锁
很多人都知道ADSL每次重新拨号以后都会分配一个新的IP,而且网络中也已经存在很多不断自动拨号的程序,如果攻击者愿意,自己编写一个类似的程序和暴力破解程序相配合,完全可以做到无差别的暴力破解。当然,使用网络上己有的自动拨号程序也可以满足要求。
这个方法总的来说是比较好的,但是对攻击者的僵尸计算机有一定的要求。
3)&.使用SteganosIntemet Anonym Pro和Hide Ip Easy之类的程序突破IP封锁
Steganos Internet Anonym Pro是国外顶级黑客研究出的自动变化IP,的程序,是一套功能强大的网络身份隐藏工具软件,用户可以通过该软件很简单地隐藏自已的IP、更换自己的IP。一般情况下,Steganos Internet Anonym Pro的IP变化是1秒钟变一次,而IP地址的位置一会儿在英国,一会儿在加拿大,变换频率非常快。从原理上讲,Steganos Intemet Anonym Pro是通过代理方式实现IP地址不停变化目的的,因此在IP地址变换之前,需要先测试该程序内置代理服务器的工作是否正常,并根据测试结果筛选出工作性能最稳定的代理服务器,如图4所示。使用Steganos Intemet Anonym Pro发起暴力破解攻击的话,攻击者如果适当地调整了暴力破解程序和循环间隔,以适应SteganosIntemet Anonym Pro的IP变换间隔,完全可以做到无视IP限制策略。
4). 计算机标识限制及其突破
最烦琐的FTP安全策略就是使用用户计算机的标识来进行限制了。所谓用户计算机的标识是指在FTP服务器和用户计算机的交互中,服务器通过某种途径记录了用户计算机的某些标识,如MAC地址、Ccookies信息、硬件编号等。当管理员设置的连接频率、错误次数限制达到的时候,FTP服务器就会根据计算机标识来识别用户计算机,进而进行连接限制。
这样的限制方法在网络上出现的不多,不过国外的某些营利性组织经常使用这样的方法来进行安全保障,比如投资公司、股票顾问、非法博彩等站点。从技术上说,这样的策略是比较狠的,要对这样策略下的FTP服务器进行暴力破解攻击,比较难--但不是说毫无办法。举例来说,常见的这种限制是通过网卡的MAC地址识别来实现的,而MAC地址是可以更改的,攻击者完全可以自己编写程序,每次暴力破解发起的时候,都改变一次MAC地址。当然,网络中到处都是MAC地址的改变程序,甚至很多硬件信息也是可以随意生成的,如Mac MakeUp等,如图5
如果目标FTP服务器是通过cookies等信息来辅助验证的话,突破方法就更为简单了。攻击者可以自己编程实现每次暴力破解前都清空一次cookies,也可以使用SteganosIntemet Anonym Pro等工具实现cookies自动删除、浏览记录自动删除等。
内容导航&第 1 页: &第 2 页: &第 3 页: &第 4 页:
关于&&&&&&&&的更多文章
如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性
参与体验山石智能下一代防火墙,了解最新安全技术。
万兆网络并不仅仅意味着网络带宽的增加,与之相匹配
美国前CIA雇员斯诺登日前揭露美国政府的监视行为,也
本专题为中小企业推荐十款能够帮助企业缩减开支的免费
本书第1版曾被KDnuggets的读者评选为最受欢迎的数据挖掘专著,是一本可读性极佳的教材。它从数据库角度全面系统地介绍了数据挖掘
51CTO旗下网站 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
架设FTP服务器
下载积分:1000
内容提示:
文档格式:PPT|
浏览次数:0|
上传日期: 00:37:22|
文档星级:
该用户还上传了这些文档
架设FTP服务器.PPT
官方公共微信14953人阅读
&&&&&&&& 因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。
rcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输。要使用rcp,需要具备以下条件:
(1)如果系统中有/etc/hosts 文件,应确保该文件包含要与之进行通信的远程主机信息:internet_address&&official_name&& alias。例如:1.186.10.***& .cnblade
(2).rhosts 文件:.rhosts 文件位于远程系统的根目录下,其中包含本地系统的名称和本地登录名。例如,远程系统的 .rhosts 文件中的项可能是:blade1 root;其中,blade1 是本地系统的名称,root 是本地登录名。这样,blade1 上的 root 即可在包含 .rhosts 文件的远程系统中来回复制文件。
配置过程:
(1)&&&&&&&&&&&在双方root用户根目录下建立.rhosts文件,并将双方的hostname加进去.在此之前应在双方的 /etc/hosts文件中加入对方的IP和hostname
(2)&&&&&&&&&&&把rsh服务启动起来,redhat默认是不启动的。方法:用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行:service xinetd restart即可。如果没有rsh,请见下面rsh部分
(3)&&&&&&&&&&&到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty.so一行用“#”注释掉即可。(只有注释掉这一行,才能用root用户登录)
命令使用:
&&&&&&&& rcp [options] [[user@]host1:]file1 ...[[user@]host2:]file2
&&&&&&&& options: &&
-r 递归地把源目录中的所有内容拷贝到目的目录中。
-p 试图保留源文件的修改时间和模式,忽略umask。
rsh(remote shell,它不够安全):rsh使用条件同rcp,rsh配置过程(以root为例)
(1)&&&在服务器上运行/urs/bin/ntsysv选中rexec,rlogin,rsh三项服务。
(2)&&&运行#/sbin/service xinetd restart启动该三项服务。
(3)&&&运行echo&rexec&&&/etc/ echo&rlogin&&&/etc/& echo&rsh&&&/etc/securetty
(4)&&&在服务器上运行echo&你的ip地址root&&&/root/.rhosts或者echo&你的主机名root&&&/root/.rhosts且确保在服务器上的/etc/hosts中有主机名和ip地址的映射关系
(5)&&&到/etc/pam.d/目录下,把rexec, rlongin, rsh文件中的auth required /lib/security/pam_securetty.so 一行用“#”注释掉即可。(只有注释掉这一行,才能用root用户登录)
(6)&&&rsh命令用法:rshremote-sytem-neame Linux-command,例如:rsh blade1 ls /home/root
scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证。 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码或口令。
scp [options] [本地用户名@IP地址:]file1 [远程用户名 @IP 地址 :] file2
&&&&&&& options:&
&&& &&&&&&&& -v 用来显示进度,可以用来查看连接,认证,或是配置错误。
-C 使能压缩选项。
-c 选择使用那个加密算法(具体对应到ssh的-c cipher-spec,这个参数值会被传给ssh,可选择值3des,blowfish,des),使用blowfish会快很多,可以参看man ssh 中的-c cipher-spec
-P 选择端口
-r 递归拷贝整个目录
-l 限制使用带宽,Kbit/s
-o 指定传给ssh的一些参数值,比如Compression=yes
-p 保留文件的修改时间等信息。
rsync是rcp的替代品之一,rsync 是一款高效的远程数据备份和镜象工具,可快速地同步多台主机间的文件,其具有如下特性:
l& 支持链接、所有者、组信息以及权限信息的拷贝;
l& 通过远程 shell(ssh, rsh)进行传输;
l& 无须特殊权限即可安装使用;
l& 流水线式文件传输模式,文件传输效率高;
l& 支持匿名操作;
需要提及的是 rsync 以其优越的性能优势区别于其它几种 Linux 文件传输方法,其同步文件的速度相当快,这主要归功于 rsync 所使用的传输算法。简而言之 rsync 算法能在相当短的时间内计算出需要备份的数据,只对源文件与目标文件的不同之处进行传输,从而降低网络中传输的数据量,以此达到快速备份镜像的目的。下面通过一典型应用场景来描述 rsync 算法的基本原理:主机 A 与主机 B 均有对同一文件的拷贝,用户对主机 A 上的拷贝进行更新,主机 B 通过 rsync 算法对更新后的文件进行同步。以下是该算法的实现步骤:
(1)&&&&&&主机 B 将原始拷贝划分成大小为 N 的不重合的若干块(文件末尾部分分块大小可能不足 N),并对这些数据块进行两种不同方式的校验:32 位的滚动弱校验、128 位的 MD4 强校验。弱校验较之强校验计算速度快。
(2)&&&&&&主机 B 将每个数据块的弱校验、强校验结果发送给主机 A 。
(3)&&&&&&主机 A 对更新后的文件拷贝中的每个长度为 N 的数据块进行弱校验并与从 B 接收到的弱校验值进行匹配,若相同再进行强校验匹配。由于弱校验的滚动特性可以快速地筛选出需要进行同步的数据块。该算法的运算量主要集中在主机 A 上。
& 通过上述计算,主机 A 将文件的不同部分发送给 B,B 接收到两个拷贝之间的不同之处,从而同步得到更新后的文件。通过如上方式,rsync 避免了对相同数据的传输,减少了网络带宽的浪费。在时间上整个过程中需一个往返,从某种程度上也保证了 rsync 的优越性能。
Rsync可以通过两种方式来连接远程服务器,一种是通过类shell命令的方式,一种是通过rsync daemon的方式,rsync daemon需要进行安装和配置,具体如下:
可从官方网站http://rsync.samba.org/ 上下载安装 rsync 的最新版本。使用时需将 rsync 分别安装于服务端和客户端,服务端和客户端使用同一个 rsync 软件包来实现远程镜像和定期同步更新。需要说明的是一个 rsync 服务端可同时备份多个客户端的数据;多个服务端备份一个客户端的数据。 rsync 默认端口为 873,服务器在该端口接收客户的匿名或者认证方式的备份请求。
rsync 服务端在使用之前需要进行必要的配置,其配置文件为 /etc/rsyncd.conf,进行认证、访问、日志记录等控制。配置文件包括全局参数、模块参数的设置。 rsyncd.conf 文件中 [module] 之前的所有参数为全局参数,也可以在全局参数部分定义模块参数,在这种情况下该参数的值就是所有模块的默认值。全局参数设置程序使用的端口号,指定消息文件、日志文件 pid 文件以及发送日志消息的级别。模块参数主要定义服务端哪个目录需要被同步。用户可根据不同的需要指定多个模块,每个模块对应需要备份的一个目录树,即若有
N 个需要备份的目录树,则需要 N 个模块与之对应。模块中可以定义许多参数,常见参数如下。
l& Comment &&&&&& 模块信息描述,该描述连同模块名在客户连接得到模块列表时显示给客户。默认没有描述定义。
l& Path &&&&&&& 指定供备份的目录路径,必须指定该参数。
l& max connections && 指定最大并发连接数以保护服务器,超过限制的连接请求将被告知随后再试。默认值为 0,即没有限制。
l& log file &&& 指定日志文件
l& read only &&&&&&& 设定是否允许客户上载文件。若为 true 任何上载请求均会失败,若为 false 且客户端拥有服务器目录读写权限则可以上载。默认值为 true 。
l& write only &&&&&& 设定是否允许客户下载文件。若为 true 任何下载请求均会失败,默认值为 false 。
l& List &&&&&& 设定当客户请求可以使用的模块列表时,是否列出该模块。若为 false,则创建隐藏的模块。默认值为 true 。
l& fake super &&&&& 允许文件享有所有权限,而无需后台服务以 root 权限进行操作。
l& Filter &&&&&& 设置过滤列表以决定哪些文件可由客户端访问。
l& hosts allow &&& 指定允许客户连接的 IP 地址。可以为单个 IP 地址或整个网段。多个 IP或网段需要以空格隔开。默认是允许所有主机连接。
l& dont compress &&&&&& 指定不进行压缩处理即可传输的文件,默认值是 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
l& pre-xfer exec, post-xfer exec &&&&&&&& 设置可在文件传输前/后执行的命令。若在文件传输前执行的命令失败,则取消本次传输操作。
需要注意的是服务器端启动:/usr/bin/rsync--daemon --config=/etc/rsyncd/rsyncd.conf
连接远程服务器的两种方式的基本语法
(1)&&&&&&通过远程 shell 方式:
l& rsync [OPTION] [USER@]HOST:SRC DEST:用远程 shell(如 ssh, rsh)实现将远程机器的内容拷贝到本地机器。 SRC 地址路径中以单个冒号 &:& 进行分隔。
l& rsync [OPTION] SRC [USER@]HOST:DEST:使用远程 shell(如 rsh、ssh)实现本地机器的内容拷贝到远程机器。 DEST 地址路径中以单个冒号 &:& 进行分隔。
(2)&&&&&&&通过 rsync daemon 方式:
l& rsync [OPTION] [USER@]HOST::SRC DEST 或rsync [OPTION]rsync://[USER@]HOST[:PORT]/SRC [DEST]:从远程 rsync 服务器中拷贝文件到本地机。SRC 地址路径中以双冒号 &::& 进行分隔。
l& rsync [OPTION] SRC [USER@]HOST::DEST 或rsync [OPTION] SRCrsync://[USER@]HOST[:PORT]/DEST:从本地机器拷贝文件到远程 rsync 服务器中。 DEST 地址路径中以双冒号 &::& 进行分隔。
如果 rsync 命令中只指定 SRC 参数而不指定 DEST 参数,则意为显示源文件列表而非进行同步拷贝。
&&&&&&&& options:
&&&&&&&& -v,--verbose 详细模式输出
&&&&&&&& -q,--quiet 精简输出模式
&&&&&&&& -c,--checksum 打开校验开关,强制对文件传输进行校验
&&&&&&&& -a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
&&&&&&&& -r,--recursive 对子目录以递归模式处理
&&&&&&&& -R,--relative 使用相对路径信息
&&&&&&&& -b,--backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
&&&&&&&& --backup-dir将备份文件(如~filename)存放在在目录下。
&&&&&&&& -suffix=SUFFIX定义备份文件前缀
&&&&&&&& -u,--update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
&&&&&&&& -l,--links 保留软链结
&&&&&&&& -L,--copy-links 想对待常规文件一样处理软链结
&&&&&&&& --copy-unsafe-links仅仅拷贝指向SRC路径目录树以外的链结
&&&&&&&& --safe-links忽略指向SRC路径目录树以外的链结
&&&&&&&& -H,--hard-links 保留硬链结&&&&
&&& -p,--perms 保持文件权限
&&&&&&&& -o,--owner 保持文件属主信息
&& &-g, --group 保持文件属组信息
&&&&&&&& -D,--devices 保持设备文件信息
&&& -t,--times 保持文件时间信息
&&&&&&&& -S,--sparse 对稀疏文件进行特殊处理以节省DST的空间
&&&&&&&& -n,--dry-run现实哪些文件将被传输
&&&&&&&& -W,--whole-file 拷贝文件,不进行增量检测
&&&&&&&& -x,--one-file-system 不要跨越文件系统边界
&&&&&&&& -B,--block-size=SIZE 检验算法使用的块尺寸,默认是700字节
&&&&&&&& -e,--rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
&&&&&&&& --rsync-path=PATH指定远程服务器上的rsync命令所在路径信息
&&&&&&&& -C,--cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
&&&&&&&& --existing仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
&&&&&&&& --delete删除那些DST中SRC没有的文件
&&&&&&&& --delete-excluded同样删除接收端那些被该选项指定排除的文件
&&&&&&&& --delete-after传输结束以后再删除
&&&&&&&& --ignore-errors及时出现IO错误也进行删除
&&&&&&&& --max-delete=NUM最多删除NUM个文件
&&&&&&&& --partial保留那些因故没有完全传输的文件,以是加快随后的再次传输
&&&&&&&& --force强制删除目录,即使不为空
&&&&&&&& --numeric-ids不将数字的用户和组ID匹配为用户名和组名
&&&&&&&& --timeout=TIMEIP超时时间,单位为秒
&&&&&&&& -I,--ignore-times 不跳过那些有同样的时间和长度的文件
&&&&&&&& --size-only当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
&&&&&&&& --modify-window=NUM决定文件是否时间相同时使用的时间戳窗口,默认为0
&&&&&&&& -T--temp-dir=DIR 在DIR中创建临时文件
&&&&&&&& --compare-dest=DIR同样比较DIR中的文件来决定是否需要备份
&&&&&&&& -P等同于 --partial
&&&&&&&& --progress显示备份过程
&&&&&&&& -z,--compress 对备份的文件在传输时进行压缩处理
&&&&&&&& --exclude=PATTERN指定排除不需要传输的文件模式
&&&&&&&& --include=PATTERN指定不排除而需要传输的文件模式
&&&&&&&& --exclude-from=FILE排除FILE中指定模式的文件
&&&&&&&& --include-from=FILE不排除FILE指定模式匹配的文件
&&&&&&&& --version打印版本信息
&&&&&&&& --address绑定到特定的地址
&&&&&&&& --config=FILE指定其他的配置文件,不使用默认的rsyncd.conf文件
&&&&&&&& --port=PORT指定其他的rsync服务端口
&&&&&&&& --blocking-io对远程shell使用阻塞IO
&&&&&&&& -stats给出某些文件的传输状态
&&&&&&&& --progress在传输时现实传输过程
&&&&&&&& --log-format=formAT指定日志文件格式
&&&&&&&& --password-file=FILE从FILE中得到密码
&&&&&&&& --bwlimit=KBPS限制I/O带宽,KBytes per second&&&&&
&&& -h,--help 显示帮助信息
(1)&&&&&&查看服务端文件及列表:
l& rsync 9.186.110.53::查看服务端可用的模块列表以及注释信息;rsync ibmuser@9.186.110.53::www/查看服务端 www 模块中的目录及文件列表(使用 rsyncd 用户认证方式)
l& rsync ibmuser@9.186.110.53:/var/www/html/查看服务端/var/www/html 目录中的内容(使用服务端的系统用户进行验证,如 ibmuser)
(2)&&&&&&保持客户端与服务端的数据同步:
l& rsync -avz ibmuser@9.186.110.53::www/ /backup1/使用后台服务方式将服务端www 模块下的内容备份到本地 /backup1 目录中,备份时保留原有权限、属性、属主及符号连接等,并使用压缩方式加快数据传输。
l& &rsync – avzibmuser@9.186.110.53:/var/www/html /backup2/使用 ssh 方式将远程的/var/www/html 目录备份到本地 /backup2/ 目录下
l& &rsync -avz --deleteibmuser@9.186.110.53::www/ /backup3/将远程 www 模块备份到本地/backup3/ 目录中,同时进行同步目录,删除本地目录中多余的文件。
(3)&&&&&&当服务端的数据出现问题时,需要通过客户端的数据对服务端进行恢复,只要客户端有服务端的写入权限,即可通过调换 rsync 命令的 SRC、DEST 参数进行恢复。
&&&&&&&& ftp命令使用文件传输协议(FileTransfer Protocol ,FTP)在本地主机和远程主机之间或者两个远程主机之间进行文件传输。FTP 协议允许数据在不同文件系统的主机之间传输。尽管这个协议在传输数据上提供了高适应性,但是它并没有尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。而且 FTP 协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。在使用 ftp 命令时,需要注意 FTP 协议的这些特性。当需要保留文件属性或者需要递归的拷贝子目录时,可以使用
rcp/scp 等命令。
&&&&&&&& 如果需要将文件以ftp传输到目的服务器上,必须在目的服务器上安装ftp server,基本的安装和启动过程如下:
根据服务对象的不同,FTP服务可以分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,它允许任何人登录到FTP服务器,和服务器连接后,在登录提示中输入Anonymous,即可访问服务器。
Yum list *ftp*& (找到可用的Ftp包)
sudo yum install ftp包
手工启动和关闭:启动:/usr/sbin/ftprestart& 关闭:/usr/sbin/ftpshut
FTP服务器的配置:为了确保FTP服务器安全,必须设置一些重要的配置文件,以更好地控制用户的访问权限。这些配置文件是:/etc/ftpusers;/etc/ftpconversions;/etc/ftp-groups;/etc/ftpphosts;/etc/ftpaccess。利用这些文件,能够非常精确地控制哪些人、在什么时间、从什么地点可以连接服务器,并且可以对他们连接后所做的工作进行检查跟踪。
(1)&&&&&&&/etc/ftpusers:该文件夹中包含的用户不能通过FTP登录服务器,有时将需要禁止的用户账号写入文件/etc/ftpuser中,这样就可以禁止一些用户使用FTP服务。
(2)&&&&&&/etc/ftpconversions:用来配置压缩/解压缩程序。
(3)&&&&&&/etc/ftpgroups:创建用户组,这个组中的成员预先定义可以访问FTP服务器。
(4)&&&&&&/etc/ftpphosts:用来根据禁止或允许远程主机对特定账户的访问,例如:allow czc 192.168.0.0/24&&&deny cdd 10.0.0.0/8(表示允许czc用户从192.168.0这个网段连线访问,拒绝cdd从10.这个网段连线访问)。
(5)&&&&&&/etc/ftpaccess:是非常重要的一个配置文件,用来控制存取权限,文件中的每一行定义一个属性,并对属性的值进行设置。下面对它的一些常用配置做一点介绍:
l& 定义用户类别:格式:class[类名] [real/guest/anonymous][IP地址]& 功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,允许特定或者全部的IP地址访问FTP服务器。
l& 登录重试次数:在命令行中输入:loginfails 10,这表明如果10次还没有登录成功就切断连线。
l& 密码检查:格式:passwd-check〈strictness〉 warn。是对匿名用户的密码使用方式的检查,其中〈strictness〉是三个可能的字符串之一:None、Trivial、RFC822。若选None,表示将不对口令做任何检查;若选Trivial,表示对口令有一定的要求,它需要在口令中至少要有一个@符号;若选RFC822,则表示最严格,要求E-mail地址必须遵守RFC822报文标题标准(如: )。例如:passwd-check rfc822 warn,表明密码的要求很严格,当密码不符合规定时出现警告信息。
l& 登录人数的限制:格式:limit[类别] [人数] [时间] [文件名]。设置指定类别在约定时间内可以登录FTP的人数。例如:limit remote Any/etc/many.msg,说明类别Remote类别在任何时间内登录人数不超过20个人,否则会显示Many.msg警告信息。
安装、配置好FTP服务器后,只需要在命令提示符后输入:FTP Servername,用主机名或希望连接的FTP服务器的IP地址代替Servername,按照提示输入用户名和口令,然后用标准的Linux上移或下移FTP服务器目录结构。另外,也可以采用图形化FTP程序,包括窗口式gFTP,可以借助Web浏览器去访问FTP服务器。
&&&&&&&& 在登录上ftp后,可以使用如下ftp命令进行操作:
l& FTP& ! 从 ftp 子系统退出到外壳
l& FTP& ? 显示 ftp 命令说明,和 help 相同,格式:? [command]说明:[command]指定需要帮助的命令名称。假如没有指定 command,linux ftp命令参数将显示全部命令的列表。
l& FTP& append 使用当前文档类型配置将本地文档附加到远程电脑上的文档。格式:append local-file [remote-file],说明:local-file 指定要添加的本地文档,remote-file指定要添加 local-file 的远程电脑上的文档。假如省略了 remote-file,本地文档名将被用作远程文档名。
l& FTP& ascii 将文档传送类型配置为默认的 ASCII。说明:linux ftp命令参数支持两种文档传送类型,ASCII 码和二进制图像,在传送文本文档时应该使用ASCII。
l& FTP& bell 转换响铃以在每个文档传送命令完成后响铃??默认情况下,铃声是关闭的。
l& FTP& binary(或bi) 将文档传送类型配置为二进制
l& FTP& bye(或by) 结束和远程电脑的linux ftp命令参数会话并退出linux ftp命令参数。
l& FTP& cd 更改远程电脑上的工作目录。格式:cd remote-directory,说明:remote-directory 指定要更改的远程电脑上的目录。
l& FTP& close 结束和远程服务器的linux ftp命令参数会话并返回命令解释程式。
l& FTP& debug 转换调试。当调试打开时,发送到远程电脑的每个命令都打印,前面是字符串&&&。默认情况下,调试是关闭的。
l& FTP& delete 删除远程电脑上的文档。格式:delete remote-file,说明:remote-file 指定要删除的文档。
l& FTP& dir 显示远程目录文档和子目录列表。格式:dir [remote-directory] [local-file],说明:remote-directory 指定要查看其列表的目录。假如没有指定目录,将使用远程电脑中的当前工作目录。Local-file 指定要存储列表的本地文档。假如没有指定,输出将显示在屏幕上。
l& FTP& disconnect 从远程电脑断开,保留linux ftp命令参数提示。
l& FTP& get 使用当前文档转换类型将远程文档复制到本地,格式:get remote-file [local-file],说明:remote-file 指定要复制的远程文档,Local-file指定要在本地电脑上使用的名称,假如没有指定,文档将命名为 remote-file。
l& FTP&glob 转换文档名组合,组合允许在内部文档或路径名中使用通配符(*和?),默认情况下,组合是打开的。
l& FTP&hash 转换已传输的每个数据块的数字签名 (#) 打印,数据块的大小是2048 字节,默认情况下,散列符号打印是关闭的。
l& FTP&help 显示linux ftp命令参数命令说明。格式:help [command],  说明:command 指定需要有关说明的命令的名称,假如没有指定 command,linux ftp命令参数将显示全部命令的列表。
l& FTP&lcd 更改本地电脑上的工作目录,默认情况下,工作目录是启动linux ftp命令参数的目录。格式:lcd [directory],说明:directory 指定要更改的本地电脑上的目录,假如没有指定directory,将显示本地电脑中当前的工作目录。
l& FTP&literal 将参数逐字发送到远程linux ftp命令参数服务器,将返回单个的linux ftp命令参数回复代码,格式:literal argument [ ...],说明:argument 指定要发送到linuxftp命令参数服务器的参数。
l& FTP&ls 显示远程目录文档和子目录的缩写列表,格式:ls [remote-directory] [local-file],说明:remote-directory 指定要查看其列表的目录,假如没有指定目录,将使用远程电脑中的当前工作目录,local-file 指定要存储列表的本地文档??假如没有指定,输出将显示在屏幕上。
l& FTP&mdelete 删除远程电脑上的文档,格式:mdelete remote-files [ ...],说明:remote-files 指定要删除的远程文档。
l& FTP&mdir 显示远程目录文档和子目录列表,能够使用 mdir 指定多个文档,格式:mdir remote-files [ ...] local-file,说明:remote-files 指定要查看列表的目录,必须指定 remote-files,请键入 - 使用远程电脑上的当前工作目录。local-file 指定要还原列表的本地文档,请键入- 在屏幕上显示列表。
l& FTP&mget 使用当前文档传送类型将远程文档复制到本地电脑,格式:mget remote-files [ ...],说明:remote-files 指定要复制到本地电脑的远程文档。
l& FTP&mkdir 创建远程目录,格式:mkdir directory,说明:directory 指定新的远程目录的名称。
l& FTP&mls 显示远程目录文档和子目录的缩写列表,格式:mls remote-files [ ...] local-file,说明:remote-files 指定要查看列表的文档??必须指定remote-,请键入- 使用远程电脑上的当前工作目录。local-file 指定要存储列表的本地文档,请键入 - 以在屏幕上显示列表。
l& FTP&mput 使用当前文档传送类型将本地文档复制到远程电脑上。格式:mput local-files [ ...],说明:local-files 指定要复制到远程电脑的本地文档。
l& FTP&open 和指定的linux ftp命令参数服务器连接,格式:open computer [port],说明:computer 指定要连接的远程电脑??能够通过 IP 地址或电脑名称指定电脑(DNS 或主机文档必须可用),假如自动登录打开(默认),ftp 还将尝试自动将用户登录到linux ftp命令参数服务器port 指定用来联系linux ftp命令参数服务器的端口号。
l& FTP&prompt 转换提示,假如关闭提示时 mget 及 mput 传送任何文档,linux ftp命令参数在多文档传送过程中将提示允许您有选择地检索或存储文档,默认情况下,提示是打开的。
l& FTP&put 使用当前文档传送类型将本地文档复制到远程电脑上,格式:put local-file [remote-file],说明:local-file 指定要复制的本地文档,remote-file指定要在远程电脑上使用的名称??假如没有指定,文档将命名为 local-file。  
l& FTP&pwd 显示远程电脑上的当前目录。
l& FTP&quit 结束和远程电脑的linux ftp命令参数会话并退出linux ftp命令参数。
l& FTP&quote 将参数逐字发送到远程linux ftp命令参数服务器,将返回单个的linux ftp命令参数回复代码。
l& FTP&recv 使用当前文档传送类型将远程文档复制到本地电脑,Recv 和 get相同。格式:recv remote-file [local-file],说明:remote-file 指定要复制的远程文档,local-file指定要在本地电脑上使用的名称,假如没有指定,文档将命名为 remote-file。
l& FTP&remotehelp 显示远程命令帮助,格式:remotehelp [command],说明:command 指定需要帮助的命令的名称,假如没有指定 command,linux ftp命令参数将显示全部远程命令的列表。
l& FTP&rename 重命名远程文档,格式:rename filename newfilename,说明:filename 指定要重命名的文档,newfilename指定新的文档名。
l& FTP&rmdir 删除远程目录,格式:rmdir directory,说明:directory 指定要删除的远程目录的名称。
l& FTP&send 使用当前文档传送类型将本地文档复制到远程电脑上,Send 和put 相同,格式:send local-file [remote-file],说明:local-file 指定要复制的本地文档,remote-file指定要在远程电脑上使用的名称,假如没有指定,文档将命名为 local-file。
l& FTP&status 显示linux ftp命令参数连接和转换的当前状态。
l& FTP&trace 转换数据包跟踪,Trace 在运行linux ftp命令参数命令时显示每个数据包的路由。
l& FTP&type 配置或显示文档传送类型,格式:type [type-name],说明:type-name 指定文档传送类型,默认配置为 ascii,假如没有指定type-name,将显示当前的类型。
l& FTP&user 指定远程电脑的用户,格式:user username [password] [account],说明:user-name 指定登录到远程电脑所使用的用户名,password 指定 user-name 的密码,假如没有指定,但必须指定,linux ftp命令参数会提示输入密码。account 指定登录到远程电脑所使用的帐户,假如没有指定account,但是需要指定,linux ftp命令参数会提示您输入帐户。
l& FTP&verbose 转换 verbose 模式,假如打开,将显示任何 linux ftp命令参数响应,在文档传送完成后,将同时显示和传送效率有关的统计信息,默认情况下,verbose 是打开的。
&&&&&&&& sftp(安全文件传输协议)与ftp 有着几乎一样的语法和功能。FTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。它并不使用ftp守护进程(ftpd或wu-ftpd)来进行连接,而是有意义地增强系统的安全性。实际上,通过监视一些系统中的log文件,可以注意到很多攻击是针对于ftpd守护进程的。sftp避免了这些攻击从而可以停止在wu-ftpd上潜在的危险。SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作。使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
用法举例:
(1)&&&&&&sftproot@10.48.30.192:/root/test.sh(直接将192上的文件复制到本地)
(2)&&&&&&sftproot@10.48.30.192:/root& (直接连接到192的root目录下,这样就可以使用getput等命令了)
&&&&&&&& sftp使用在数据连接上使用ssh2,所以文件的传输是尽可能地安全。使用sftp代替ftp两个主要的的原因是:
(1)&&&&&&password从不用明文传输,防止sniffer(嗅探器)的攻击。
(2)&&&&&&数据在传输时被加密,使用刺探和修改连接非常困难。
&&&&&&&& 使用sftp2是非常简单的。让我们假设你使用了你的帐户:myname通过sftp连按上了主机host1。可以使用命令:sftp myname@host1。当sftp2准备好了来接受连接时,它将显示一个状态提示符 sftp&。在sftp手册中有完整的用户可以使用的命令列表;其中有:
l& quit:从这个应用程序中退出。
l& cd directory:改变当前的远程工作目录。
l& lcd directory:改变当前的本地工作目录。
l& ls [ -r ] [ -l ] [ file ... ]:列出在远地服务器上的文件名。如果是目录,则列出目录的内容。当命令行中指定了-r,则递归地显示目录树。(默认情况下,子目录并不被访问)。当命令行中指定了-l,文件与目录的权限,属主,大小和修改时间被列出。当没有参数被指定,则.(当前目录)的内容被列出。普通情况下选项-r和-l是互相不兼容的。
l& lls [ -r ] [ -l ] [ file ... ]:与ls一样,但是是对于本地文件操作。
l& get [file ...]:从远程端传送指定的文件到本地端。目录内容被递归地复制。
l& put [ file ... ]:从本地端传送指定的文件到远地端。目录内容被递归地复制。
l& mkdir dir (rmdir dir):尝试建立或删除参数中指定的目录。
l& 通配符对于ls,lls,get和put是支持的。格式在sshregex手册中有描述。
从sftp使用加密技术以来,一直有一个障碍:连接速度慢(有2-3倍),但是这一点对于非常好的安全性来讲只能放在一边了。在一个测试中,局域网上的sniffer可以在一个小时中捉住ftp连接上的4个password.。sftp的使用可以从网络上传送文件并且除去这些安全问题。
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp非常像一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
命令行语法
(1)&&&&lftp [-d] [-e cmd] [-p port][-u user[,pass]] [site]
-e在选择后执行命令
-u [,] 使用指定的用户名/口令进行验证
-p 连接指定的端口
Site:主机名,URL 或书签的名字
(2)&&&&lftp -f script_file
执行文件中的命令后退出
(3)&&&&lftp -c commands
执行命令后退出
(4)&&&&lftp –version
显示 lftp 版本后退出
(5)&&&&lftp --help
显示帮助信息后退出&&&&&
&&&&&&&& 例子:
(1)&&&&&&如果在命令行中输入的站点名称,lftp将直接登录站点,比如
lftp ftp://.............
(2)&&&&&&如果在命令行不输入站点名称,则必须在进入到lftp界面后用open命令打开
lftp :~& open ftp://...................
l& 下载单个文件和一组文件,断点续传用-c参数
lftp ................:/& get -c ls-lR.txt
lftp ...............:/& mget *.txt
l& 镜像(反镜像即上传)一个目录,可以用多个线程并行镜像一个目录(--parallel=N)
lftp ................:/& mirror incoming local_name
lftp ................:/& mirror -R local_name
lftp ................:/& mirror --parallel=3 incominglocal_name
l& 多线程下载,类似网络蚂蚁的功能;缺省是5个线程
lftp ................:/& pget -n 4 ls-lR.txt
l& 后台任务管理
缺省情况下,按 Ctrl+z,正在执行的任务将转为后台执行,也可以在命令行末尾加&符号使任务在后台执行。用jobs命令可以查看所有的后台进程。用queue命令可以排队新的任务。如果退出lftp是还有任务在后台执行,lftp将转为后台执行。
l& 其它用法
lftp支持类似bash的管道操作,例如用下面的命令可以将ftp服务器上的特定目录下(也可以是整个站点)所有文件的大小存到本地的文件ls.txt中
lftp ................:/& du incoming & ls.txt
(1)&&&&&&/etc/lftp.conf
全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc
(2)&&&&&&~/.lftp/rc, ~/.lftprc
用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。
(3)&&&&&&lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行,debug 3,就可以看到出错信息了。更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。
(4)&&&&&&~/.lftp/log
当lftp转为后台非挂起模式执行时,输出将重定向到这里
(5)&&&&&&~/.lftp/bookmarks
这是lftp存储书签的地方,可以lftp查看bookmark命令
(6)&&&&&&~/.lftp/cwd_history
这个文件用来存储访问过的站点的工作目录
(7)&&&&&&~/.lftprc
在用lftp访问国内一些ftp服务器时,往往看到的中文是乱码。不用慌,这是由于服务器和本地编码不一致造成的。我们只要在主目录下新建一个文件~/.lftprc或者~/.lftp/rc。并在其中加入以下内容:debug 3set ftp:charset GBKset file:charset UTF-8#setftp:passtive-mode no#alias utf8 & set ftp:charset UTF-8&#alias gbk& set ftp:charset GBK&
登录ftp服务器:
&&&&&&&& lftpftp://user:password@site:port
&&&&&&&& lftpuser:password@site:port
&&&&&&&& lftpsite -p port -u user,password
&&&&&&&& lftpsite:port -u user,password
上面的几种方式都能正常工作,不过密码都是明文,这样好像不太安全哦。没关系,使用lftp user@site:port,系统会提示输入password,密码就回显为******了,不过每次都输入这么多,好麻烦哦。如果有类似leapftp的站点管理器就好了,其实lftp早就给我们想好了:这就是bookmark。后面我们将会看到。
&&&&&&&& 在终端运行如manlftp或登录ftp后输入help就可以看到命令列表,下面我们看一下lftp常用的命令:
(1)&&&&&&ls:显示远端文件列表(!ls显示本地文件列表)。
(2)&&&&&&cd:切换远端目录(lcd 切换本地目录)。
(3)&&&&&&get:下载远端文件。
(4)&&&&&&mget:下载远端文件(可以用通配符也就是 *)。
(5)&&&&&&pget:使用多个线程来下载远端文件, 预设为五个。
(6)&&&&&&mirror:下载/上传(mirror-R)/同步整个目录。
(7)&&&&&&put:上传文件。
(8)&&&&&&mput:上传多个文件(支持通配符)。
(9)&&&&&&mv:移动远端文件(远端文件改名)。
(10)&&rm:删除远端文件。
(11)&&mrm:删除多个远端文件(支持通配符)。
(12)&&mkdir:建立远端目录。
(13)&&rmdir:删除远端目录。
(14)&&pwd:显示目前远端所在目录(lpwd显示本地目录)。
(15)&&du:计算远端目录的大小
(16)&&!:执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
(17)&&Lcd:切换本地目录
(18)&&Lpwd:显示本地目录
(19)&&Alias:定义别名
(20)&&Bookmark:设定书签。
(21)&&Exit:退出ftp
(22)&&快捷书签:ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;我们可以直接修改此文件,快速登陆ftp服务器。
wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,即可跟踪 HTML 页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级链接转换成指向本地文件,方便离线浏览。由于非交互特性,wget 支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。
基本语法: wget [options][URL-list]
&&&&&&&& Options:
&&&&&&&&&&&&&&&&&&
&&&&&&&& -r&&& 递归下载服务器上所有的目录和文件。由 -l选项来指定递归深度。
&&&&&&&& -b&& 后台下载
&&&&&&&& -m& 制作站点镜像
&&&&&&&& -c&&& 指定断点续传功能。该功能要求服务器支持断点续传。
&&&&&&&& -I&&& 指定下载目录列表,可实现批量下载
&&&&&&&& -A/-R&&&&&& 指定接受/拒绝下载列表,实现选择性地下载
&&&&&&&& --proxy=on/off&&&&&&& 指定是否利用代理服务器进行下载
&&&&&&&& -t,--tries=NUMBER &&&&&&& 最大尝试链接次数 (0 表示无限制,默认为 20 次 )
&&&&&&&& -nc,--no-clobber &&& 不覆盖已存在的文件
&&&&&&&& -N,--timestamping &&&&&&&& 只下载比本地新的文件
&&&&&&&& -nd--no-directories &&&&&&& 不进行目录结构创建
&&&&&&&& -x,--force-directories &&&& 强制创建目录结构
&&&&&&&& -nH,--no-host-directories &&&&& 不继承主机目录结构
&&&&&&&& -P,--directory-prefix=PREFIX 设置目录前缀
例子:递归下载 .cn 站点的信息。下载所有显示完整网页所以需要的文件,如图片等。在下载不进行上层目录搜索并将绝对链接转换为相对链接。
&&&wget -r -p -np -k .cn
&&& 将在本地硬盘建立.cn 的镜像,镜像文件存入当前目录下一个名为 .cn 的子目录中(也可以使用 -nH 参数指定不建立该子目录,而直接在当前目录下建立镜像的目录结构),递归深度为 4,重试次数为无穷(若连接出现问题,wget 将永远重试下去,直至任务完成)
&&&wget -m -l4 -t0 .c
&&& 使用代理进行下载,并实现断点续传。代理可以在环境变量 PROXY 或 wgetrc 文件中设定。 -c 选项要求服务支持断点续传。
&&&wget -Y on -c .cn
curl是对 libcurl 库的一个命令行工具包装。libcurl 库中提供了相应功能的 API,可以在程序中调用。 curl 使用 URL 的语法来传输文件,它支持 FTP, FTPS, HTTP, HTTPS, TFTP, SFTP, TELNET 等多种协议。 curl 功能强大,它提供了包括代理支持,用户认证,FTP 上载,HTTP post,SSL 连接,文件续传等许多特性。
基本语法:curl [options …] &url&
&&& 其中下载参数大约有 80 多个,curl 的各个功能完全依靠这些参数来完成。下面举例说明 curl 的一些基本用法。
使用实例:
(1)&&&&&&获取 GNU 的主页curl& http://www.gnu.org&
(2)&&&&&&获取 GNU 的 FTP 服务器上根目录下的 README 文件curl ftp://ftp.gnu.org/README
(3)&&&&&&从一个字典中获取 curl 的定义curl dict://dict.org/m:curl
(4)&&&&&&如果需要指定用户名和密码的话,可以在 url 中指定,或者使用 -u 参数curl ftp://name:passwd@machine.domain:port/full/path/to/file或者curl -uname:passwd ftp://machine.domain:port/full/path/to/file
(5)&&&&&&curl 会将从指定 url 处获取的内容打印到标准输出上。如果需要保存在本地文件中,可以使用 -o,或使用 -O 参数指定使用远程主机上的文件名(如果 url 中没有给出文件名的部分,则此操作将会失败)curl -o gnu.html http://www.gnu.org 或者curl -O http:///www.gnu.org/index.htm
(6)&&&&&&使用 -x 选项来使用代理进行连接curl -x my-proxy:port /READMEN
(7)&&&&&&&通过使用 curl 的 -T 选项来进行上载curl -T - /upfile,此命令从标准输入读取数据,并上载至远程 FTP 服务器上的 upfile 文件中。也可以指定上载一个本地文件curl -T localfile -a /upfile其中 -a 参数表示以添加方式将localfile 中的内容附加到 upfile 的末尾。
总的来说,curl 适合用来进行自动的文件传输或操作序列,它是一个很好的模拟用户在网页浏览器上的行为的工具。尤其当需要在程序中调用时,libcurl 是个很好的选择。
&&&&&&&& 因为经常在服务器见进行文件传输,就对传输速度和带宽有要求,这里总结一下可以影响以上rcp,scp,rsync,ftp,sftp,lftp,wget,curl这6个命令的传输速度和带宽的参数:
(1)&&&&rcp:没有参数可以调整带宽和传输速度
(2)&&&&scp:如果传输的文件没有压缩,可以使用-C参数(-C 使能压缩选项)。-c 选择使用那个加密算法,具体对应到ssh的-c cipher-spec,这个参数值会被传给ssh,可选择值3des,blowfish,des),使用blowfish会快很多,可以参看man ssh 中的-c cipher-spec。可以使用-l 限制使用带宽,Kbit/s。避免因为传输文件而影响其他程序使用带宽。-o ssh_option使用ssh选项
(3)&&&&rsync:-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节;-z, --compress 对备份的文件在传输时进行压缩处理;--bwlimit=KBPS 限制I/O带宽,KBytes per second ;-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
(4)&&&&ftp:FTP&ascii 将文档传送类型配置为默认的 ASCII。说明:linux ftp命令参数支持两种文档传送类型,ASCII 码和二进制图像,在传送文本文档时应该使用ASCII。Binary二进制传输。
(5)&&&&sftp: -B buffer_size, -C使用压缩,-ossh_option使用ssh选项
(6)&&&&lftp:可以调整进程数等
(7)&&&&wget: --limit-rate=amount限制带宽。
(8)&&&&curl:-B/--use-ascii和--ciphers&list of ciphers&,--compressed等。
(1)&&&&&&传输性能:wget 通过支持后台执行及断点续传提高文件传输效率; rsync 则以其高效的传输及压缩算法达到快传输的目的。
(2)&&&&&&&配置难度:rcp 只需进行简单的配置,创建.rhost文件以及设置/etc/hosts文件中主机名与IP地址列表; wget设置方便简单,只需在客户端指定参数执行命令即可; rsync 在使用前需要对服务端/etc/rsyncd.conf 进行参数设定,配置内容相对复杂。
(3)&&&&&&安全性能:ftp、rcp不保证传输的安全性,scp、rsync则均可基于ssh 认证进行传输,提供了较强的安全保障。wget 也可通过指定安全协议做到安全传输。
通过上述的对比不难发现,每种文件传输方法基于其自身的特点与优势均有其典型的适用场景:
(1)&&&&&&ftp 作为最常用的入门式的文件传输方法,使用简单,易于理解,并且可以实现脚本自动化;但是需要安装ftp server才可以访问远程ftp server
(2)&&&&&&rcp 相对于ftp可以保留文件属性并可递归的拷贝子目录;
(3)&&&&&&scp 利用ssh传输数据,并使用与ssh相同的认证模式,相对于rcp提供更强的安全保障;
(4)&&&&&&wget实现递归下载,可跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构,适合实现远程网站的镜像;
(5)&&&&&&curl 则适合用来进行自动的文件传输或操作序列,是一个很好的模拟用户在网页浏览器上的行为的工具;
(6)&&&&&&rsync 更适用于大数据量的每日同步,拷贝的速度很快,相对wget来说速度快且安全高效。
(7)&&&&&&sftp使用在数据连接上使用ssh2,所以文件的传输是尽可能地安全。但传输速度慢。是ftp的替代品,比ftp安全,不能访问http资源。
(8)&&&&&&lftp可以访问ftp资源,也可以访问http资源。支持断点续传,多进程下载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:245573次
积分:2849
积分:2849
排名:第5119名
原创:80篇
转载:41篇
评论:32条
(10)(1)(1)(1)(1)(9)(2)(2)(2)(1)(2)(2)(1)(2)(12)(2)(4)(8)(8)(1)(4)(6)(1)(1)(31)(1)(1)(2)(2)}

我要回帖

更多关于 服务器系统有哪些 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信