ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:586.86KB ,
资源ID:29418782      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29418782.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Windows下用sftp打造安全传输.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Windows下用sftp打造安全传输.docx

1、Windows下用sftp打造安全传输Windows下用sftp打造安全传输众所周知在Windows系统和Linux类系统的最大区别就在于他的非开源性,因此在Windows下我们传输文件,共享资源主要通过FTP协议来实现,和以前的TFTP协议相比FTP提供了必要的安全保证措施,然而对于一些要求网络安全级别比较高,需要严格防范传输数据被监听工具窃取的情况来说,FTP协议就无法胜任了,这时我们应该寻找更加安全的传输协议来保证服务器的安全。今天笔者就为各位IT168的读者介绍在Windows下如何通过sftp打造安全传输。一、什么是sftp? 一般来说两台机器间的文件传输,除了常用的ftp以外,还可

2、以通过scp/sftp协议(就是本文介绍的sftp)进行。下面我们就来看看sftp协议与ftp协议之间的差别。 (1)和ftp不同的是sftp/scp传输协议默认是采用加密方式来传输数据的,scp/sftp确保传输的一切数据都是加密的。而ftp一般来说允许明文传输,当然现在也有带SSL的加密ftp,有些服务器软件也可以设置成“只允许加密连接”,但是毕竟不是默认设置需要我们手工调整,而且很多用户都会忽略这个设置。 (2)普通ftp仅使用端口21作为命令传输。由服务器和客户端协商另外一个随机端口来进行数据传送。在pasv模式下,服务器端需要侦听另一个口。假如服务器在路由器或者防火墙后面,端口映射会

3、比较麻烦,因为无法提前知道数据端口编号,无法映射。(现在的ftp服务器大都支持限制数据端口随机取值范围,一定程度上解决这个问题,但仍然要映射21号以及一个数据端口范围,还有些服务器通过UPnP协议与路由器协商动态映射,但比较少见) (3)当你的网络中还有一些unix系统的机器时,在它们上面自带了scp等客户端,不用再安装其它软件来实现传输目的。 (4)scp/sftp属于开源协议,我们可以免费使用不像FTP那样使用上存在安全或版权问题。所有scp/sftp传输软件(服务器端和客户端)均免费并开源,方便我们开发各种扩展插件和应用组件。 小提示:当然在提供安全传输的前提下sftp还是存在一些不足的

4、,例如他的帐号访问权限是严格遵照系统用户实现的,只有将该帐户添加为操作系统某用户才能够保证其可以正常登录sftp服务器。二、下载所需程序: 本文介绍的所有工具都不是诞生于windows系统的,他们是从unix移植过来的,配置方式仍然使用了conf文件的方式,几乎没有图形界面。而且这些配置文件一般用unix换行符,所以建议各位IT168读者使用ultraedit等工具而不是notepad来编辑,一是确保能正常显示,二是确保保存时不会破坏它的格式导致服务程序无法读取。 服务器端我们使用openssh,它自带了cygwin环境以及scp/sftp的服务器(sftp是ssh的一个“子服务”,在ssh通

5、道中使用某个命令在需要时激活)。 打开浏览器访问 3.8p1-1 20040709 Build这个程序即可。(如图1) 而客户端我们则采用的是winscp软件,他是一款图形化界面的软件,界面操作类似于ftp软件,很好上手。我们到 3.8.2。(如图2)三、配置sftp服务端: sftp服务端的安装与配置还是比较简单的,通过几条命令就可以开启sftp服务。 第一步:将之前下载的sftp服务端解压缩,然后直接运行主程序。点“NEXT”按钮进行下面的操作。(如图3) 第二步:在许可协议窗口处填写“同意”并点“下一步”按钮继续。(如图4) 第三步:在接下来的配置窗口中选择要安装的组件,从界面中我们可以

6、看到包括client(客户端)与server(服务器端),实际上我们只需要服务器端,而客户端我们使用之前下载的WinSCP 3.8.2即可。选择相应的服务器端组件后点“下一步”按钮继续。(如图5) 第四步:选择程序安装的路径,默认是c:program filesopenssh,建议大家不修改这个缺省地址。(如图6) 第五步:默认情况下openssh将添加一个应用程序到开始程序中,名字叫做openssh for windows。(如图7) 第六步:安装的最后openssh会自动建立ssh安全加密key,保证SSH传输过程中的安全可靠。(如图8) 第七步:完成所有安装工作,点“完成”按钮回到桌面。

7、(如图9) 第八步:接下来就要启动该服务了,我们通过“开始-运行-输入CMD后回车”进入到命令提示窗口,然后通过cd命令定位到c:programfilesopensshbin目录。(如图10) 第九步:依次执行mkgroup -l .etcgroup mkpasswd -l .etcpasswd命令,这样你目前windows本地帐户中的用户就都可以登录该sftp服务器了,他们自对文件目录的访问权限和NTFS权限一致。此步骤相当于FTP中的建立访问帐号。(如图11) 第十步:添加完各个访问帐户后我们可以到c:program filesopensshetc目录中来查看group和passwd两个文

8、件的内容,当然这些内容是经过了加密的。(如图12) 这两个文件存储的都是帐户相关信息,正如前面所说他们是从unix移植过来的,配置方式仍然使用了conf文件的方式,几乎没有图形界面。而且这些配置文件一般用unix换行符,建议各位IT168读者使用ultraedit等工具而不是notepad来编辑,一是确保能正常显示,二是确保保存时不会破坏它的格式导致服务程序无法读取。(如图13) 第十一步:最后在刚才进入的c:program filesopensshbin目录下执行net start opensshd命令,这将启动opensshd服务,我们就可以开始访问了。(如图14) 小提示:一般sftp用

9、默认的22端口发布服务就行。如果你有特殊的原因要把这个端口改掉,请编辑C:ProgramFilesOpenSSHetcsshd_config文件,把这一行改成你要的端口,比如8029,设置完毕后需要重启openssh服务(任何配置改动都需要重启服务)。 至此服务器端的配置完成,下面我们来介绍如何在客户端上访问建立的sftp服务。 小提示:如果以后要继续添加访问帐户的话,首先在windows中加上这个用户,例如我们以名为softer的帐户为例,设置密码,确保不要选中“下次登录必须改密码”。这个用户的权限和用户组由你来决定。然后进入c:program filesopensshbin目录,执行mkp

10、assword -l -u softer .etcpasswd命令即可将刚才添加的softer帐户添加到访问权限中。说白了指令加-u是加单独一个帐户,没有-u参数的话将把当前系统中所有帐户添加到容许访问sftp服务器的帐户列表中。四、配置sftp客户端: 配置sftp客户端就更加简单了,由于之前我们已经下载了WinSCP 3.8.2,所以直接运行该程序即可出现登录配置界面。(如图15) 我们根据实际填写sftp服务器的地址和访问帐户信息,协议方面保持默认的sftp (allow scp fallback)即可,完成设置后点login登录按钮后会出现“使用提示”信息,不用理会继续即可。(如图16

11、) 登录进入服务器后我们会看到界面显示和我们之前熟悉的ftp登录工具一样,特别是和flashfxp登录FTP服务器类似。右边是我们看到的sftp服务器发布的目录。(如图17) 当然这个默认发布目录可能不是我们希望看到的,如果想要访问你的C盘,我们可以先把焦点放在服务器那半边窗口,然后按ctrl+o,输入/cygdrive/c并回车,这样就可以把这个目录加到winscp的书签或者作为登录时的默认目录。(如图18) 五、总结: 当我们要关闭sftp服务时只需要在服务器端对应目录执行net stop opensshd指令即可,这样对应服务将自动关闭。(如图19)另外如果在客户端上无法访问sftp服务

12、器的话,很可能是因为XP系统自带防火墙捣乱,我们关闭防火墙或者手动在windows防火墙配置中允许c:Program FilesOpenSSHusrsbinsshd.exe程序的执行和对网络的访问即可。文摘:SFTP限制用户的行为!allen | 29 八月, 2005 11:20 本文是用SFTP取代FTP的一个很好的解决方案!软件的获得和安装 软件的获得可从http:/www.openssh.org下载OpenSSH,当前最新版本为3.6.1,或者从 下载针对Linux的非商业版本,当前最新版本为3.2,具体地址为: SSH服务器地址 . non-commercial.html SSH客户

13、端地址 . non-commercial.html(这是一个For Windows的版本)。 不管是OpenSSh还是SSH Communications Security公司的SSH版本,在使用功能上基本一样,只是前者完全免费,而后者使用时要注意许可协议。从使用角度上可考虑,笔者认为后者更好用一些。本文着重介绍后者的安装和使用。 从SSH Communications Security公司下载的SSH服务器是源代码方式,文件名为ssh-3.2.3.tar.gz,必须对其进行编译和安装之后才能够使用。 我们假设软件的下载目录为root用户的宿主目录,即“/root”目录。解压缩完成后会生成一个

14、“ssh-3.2.3”的源代码目录,然后切换到源代码代码目录,进行软件安装前的配置,编译和安装。 安装成功后,在“/etc/”目录下会增加一个“ssh2”目录,这个目录是用来存放SSH服务器的所有配置文件;在“/usr/local/”目录下会生成“ssh3.2.3”子目录,它是SSH程序文件和其它文件的存放位置。 基本配置和应用 默认安装,每次重新启动系统后都要重复上述操作才能启动SSH服务器。为了保证SSH服务器每次开机时自动启动,还要在“/etc/rc.d/rc.local”文件(此文件类似于DOS下的autoexec.bat文件令)的最后加入以下内容: #start ssh3.2 /us

15、r/local/ssh2/sbin/sshd & 其中第一行为注释内容,第二行为启动SSH服务器并作为后台守护进程运行。 接下来要做的是配置SSH服务器,所有的配置都是通过修改“/etc/ssh2/sshd2_config”文件实现的。文件的默认配置已经能满足一般的要求。下面介绍几种比较常见的应用: 使超级用户root能够直接登录服务器 使用Telnet时root用户默认情况下不能直接从远程登录系统,一般要先以普通用户登录,然后,使用su切换到root身份,这也是出于安全性的考虑。由于SSH使用了加密方式传输数据,所以可以放心地直接使用root登录服务器,那么我们需要将sshd2_config

16、文件中的 #PermitRootLogin yes 取消注释,然后,重新启动SSH服务器,即可通过SSH以root身份登录Linux服务器。当然,如果您要禁止超级用户登录的话,可将“yes”改为“no”即可。 允许或禁止某些用户或组用户使用SSH登录 要实现禁止用户或组使用SSH登录服务器,只需要修改sshd2_config文件中的以下几行内容: #AllowUsers sj.*,s:digit:*,s(jl|amza) #DenyUsers skuuppa,warezdude,31373 #DenyUsers donuntrusted.org #AllowGroups staff,users

17、 #DenyGroups guest,anonymou 可以根据自己的实际需要,取消注释符“#”,加入实际的用户名或者组名,然后重新启动SSH服务器即可禁止(或允许)某些用户或者组使用SSH,具体操作这里不再详述。 使用SFTP代替FTP传输文件 FTP(文件传输协议)是一种使用非常广泛的在网络中传输文件的方式,但是,它也同样存在被网络窃听的危险,因为它也是以明文传送用户认证信息。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure FTP)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,

18、SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。若要开启 SFTP功能可以修改sshd2_config文件的下列内容: # subsystem-sftp sftp-server 去掉行首的“#”,然后重新启动SSH服务器,这样在进行SSH连接时就可以同时使用SFTP传输文件。 关于客户端设置 以上是对服务器的设置,其实在SSH服务器中已经包含了一些客户端工具(如SSH,SF

19、TP工具)。但是,更多的客户端用户使用Windows系统,下面就对Windows上的客户端系统设置加以说明。 首先从上文给出的网址下载“SSHSecureShellClient-3.2.3.exe”文件并安装。安装完成后,在桌面上会产成两个快捷方式,一个是“SSH Secure Shell Client”,用于远程管理,另一个是“SSH Secure File Transfer Client”,用于和服务器进行文件传输。在工具栏中点击“quick connnect”,输入正确的主机名和用户名,然后在弹出的对话框中输入密码完成登录,即可开始执行命令或者传输文件。在使用SFTP时,默认只能显示用户

20、的宿主目录的内容和非隐藏文件。但是,有时候您可能还要查看其它目录或者隐藏文件,这时只需要在菜单“eidt-setting- file transfer”的选项中选中“show root directory”和“show hidden file”两个选项即可。 使普通用户仅使用SFTP而没有使用Shell的权限 默认情况下管理员给系统添加的账号将同时具有SFTP和SSH的权限。让普通用户使用shell执行命令也是有很大的安全隐患的,如果能够禁止用户使用shell执行命令而仅使用SFTP传输文件,就能消除这种安全隐患,完全实现FTP的功能, 正如上文所述,SFTP没有单独的守护进程,只能借助于ss

21、hd守护进程,所以我们仍然需要使用SSH服务器,要保证sshd守护进程处于运行状态。具体实现方法如下: 首先,在编译安装时,编译中一定要有“-enable-static” 选项。安装成功后,在安装目录下的bin目录中执行下面的命令: rootlocalhost bin# ls -l ssh-dummy-shell* sftp-server2* 将看到下列输出内容: -rwxr-xr-x 1 root root 1350417 Apr 28 16:30 sftp-server2 -rwxr-xr-x 1 root root 3566890 Apr 28 16:30 sftp-server2.st

22、atic -rwxr-xr-x 1 root root 72388 Apr 28 16:30 ssh-dummy-shell -rwxr-xr-x 1 root root 1813412 Apr 28 16:30 ssh-dummy-shell.static 其中带“static”后缀名,且比较大的两个文件就是加上“-enable-static”选项后生成的,后面我们将用到这里两个文件。 下面以添加普通账号test为例讲述具体操作步骤。 1在“/home”目录(或者将要存放普通用户宿主目录的目录)下创建“bin”子目录,并将两个static文件复制到此目录下(复制后改名去掉static后缀),

23、执行如下命令: rootlocalhost bin# cd /usr/local/ssh3.2/bin rootlocalhost bin#cp ssh-dummy-shell.static /home/bin/ssh-dummy-shell rootlocalhost bin# cp sftp-server2.static /home/bin/sftp-server rootlocalhost bin#chown -R root.root /home/bin rootlocalhost bin#chmod -R 755 /home/bin 2添加一个组,使以后所有禁止使用shell的用户都属

24、于这个组,这样便于管理更多的用户: rootlocalhost bin#groupadd template 3在添加系统账号时使用如下命令: rootlocalhost root#useradd -s /bin/ssh-dummy-shell -g template test rootlocalhost root#passwd test rootlocalhost root#mkdir /home/test/bin rootlocalhost root#cd /home/test/bin rootlocalhost bin#ln /home/bin/ssh-dummy-shell ssh-du

25、mmy-shell rootlocalhost bin#ln /home/bin/sftp-server sftp-server rootlocalhost bin#chown -R root.root /home/test/bin rootlocalhost bin#chmod -R 755 /home/test/bin 3用户添加成功后,还需要修改/etc/ssh2/sshd2_config文件,将下列内容: #ChRootGroups sftp,guest 改为: ChRootGroups sftp,guest,template 修改上面这行内容,主要是为了禁止普通用户查看系统的其它目录

26、,把其权限限制在自己的主目录下。重新启动SSH服务器程序,在客户端使用SSH Secure File Transfer Client登录,即使选择显示根目录,普通用户也看不到其它的任何目录,而是把自己的主目录当作根目录。注意,这里使用的是按用户所属组限制,这样可以使包含在template组内的所有用户都可以实现此功能。若您只要限制个别用户的话,可以修改下面的内容: #ChRootUsers anonymous,ftp,guest 事实证明SSH是一种非常好的网络安全解决方案,但是,目前仍有很多管理员使用Telnet或FTP这种非常不安全的工具,希望尽快转移到SSH上来,以减少网络安全隐患。 工具专栏 : 评论 (2) : 静态链接网址 : 引用 (0) RedHat官方OpenSSH版本不支持Chroot! 回复 Chroot补丁没有打,至少在RHEL3上不支持ChRootUsers和ChRootGroups选项!allen | 09/09/2005, 14:42 Chroot SSH的一些连接! 回复

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1