




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Top of Form用vsftpd+ssl+rsync+ssh实现一个安全的上传分发型的FTP 2009-10-29 13:25:32标签:vsftpd ssl rsync ssh 用ftp上传文件,一直被认为是一种不安全的做法。因为ftp的密码及内容都是明文传输的。现在则不同了,新出的vsftpd-2.0.1 released 已经支持SSL,你可以用openssl加密你的vsftp登录及传输过程。这样我们就可以用vsftpd + SSL实现一个安全的上传型分发用的FTP了。与sftp相比,它至少可以让这些上传用户看不到你整个文件系统。(当然,sftp加工一下,也是可以做到的)下面是我的实践过程:系统平台:RH7.3 (虽然老了点,但还是挻稳定的。)1、升级openssl库QUOTE:ssl_enable If enabled, and vsftpd was compiled against OpenSSL, vsftpd will support secure connections via SSL. This applies to the control connection (including login) and also data connections. Youll need a client with SSL support too. NOTE! Beware enabling this option. Only enable it if you need it. vsftpd can make no guarantees about the security of the OpenSSL libraries. By enabling this option, you are declaring that you trust the security of your installed OpenSSL library这是vsftpd.conf中的一段原话,其中NOTE!后的一段话建义你升级到最新的openssl库。所以升级openssl库还是很有必要的,如果你想把vsftpd+ssl服务器放在公网上的话。下面是我的升级过程:1)卸载掉老的opensll库QUOTE:rpm e -nodeps openssl2)下载、解压、编译、安装最新的openssl到 /source/ 下载最新的openssl(我昨天下还是openssl-0.9.7d.tar.gz 今天已经是openssl-0.9.7e.tar.gz了,升得好快 :)QUOTE:tar -zxvf openssl-0.9.7d.tar.gzcd openssl-0.9.7d./config -prefix=/usr/local -openssldir=/usr/local/openssl sharedmake make testmake install4)生成vsftpd用的证书QUOTE:cd /usr/share/ssl/certs/openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem3)编译安装新的vsftpd,使他使用最新的openssll库 (这个在下面介绍,不过得先做这步)QUOTE:4)rpm -ivh openssl-0.9.6b-18.i686.rpm 再把老的openssl库给安装上,不然你会发现连sshd也启不来。这样vsfptd用新的openssl库,sshd等的软件就用老的openssl库,互不干扰。我不知是不是兼容性的问题。但我试了n多次,就是不能使用新的openssl库,除非你把所有的依赖openssl的库的软件重新用最新的源码再编一下。那太多了 :( 2、安装支持opensll的vsftpd-2.0.11)到/ 下载最新的原码包2)安装支持openssl的vsftpdQUOTE:tar zxvf vsftpd-2.0.1.tar.gzcd vsftpd-2.0.1vi builddefs.h把 #undef VSF_BUILD_SSL改成 #define VSF_BUILD_SSL (#号要保留)。这样编译出来的vsftpd就支持openssl了。makemake installcp RedHat/vsftpd.pam /etc/pam.d/ftp (以使本地用户可以通过vsftpd的PAM认证功能来登录vsftpd)3) 编辑/etc/vsftpd.conf文件:QUOTE:listen=YES# Access rightsanonymous_enable=NOlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO# Securityport_enable=NOanon_world_readable_only=YESconnect_from_port_20=YEShide_ids=YEShide_file=.ssh,.kde,.bash*,.vi*,.gt*,.em*pasv_min_port=60000pasv_max_port=60000chroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_listlocal_umask=0000file_open_mode=0260chmod_enable=NOssl_enable=YESallow_anon_ssl=NOrsa_cert_file= /usr/share/ssl/certs/vsftpd.pem# Featuresxferlog_enable=YESxferlog_std_format=YESxferlog_file=/home/log/vsftpd.log#vsftpd_log_file=/home/log/vsftpd.logls_recurse_enable=NOascii_download_enable=NOasync_abor_enable=YES# Performance#one_process_model=YESidle_session_timeout=120data_connection_timeout=300accept_timeout=60connect_timeout=60#anon_max_rate=30000max_clients=3#max_per_ip=2这是我的vsftpd.conf文件,是只可本地用户用ssl上传(注意把可以上传的本地用户加到/etc/vsftpd.chroot_list文件中,这样这些用户登上来都是chroot的。),而且是只能用PASS模式。相关的俱体配置可以参考官方的 /vsftpd_conf.html 。 E文不好的朋友,可以看一下CU上的/jh/4/16163.html 这篇文章,也不错 。下面是相关一些ssl选项的解释:ssl_enable 是否启用vsftpd的ssl支持allow_anon_ssl 是否让匿名用户使用sslrsa_cert_file= /usr/share/ssl/certs/vsftpd.pem vsftpd用的rsa证书的位置force_local_data_ssl 是否强制使用openssl加密数据force_local_logins_ssl 是否强制使用openssl登录ssl_sslv2 是否允许客户端用SSL v2 protocol 连接 (vsftpd 不建议)ssl_sslv3 是否允许客户端用SSL v3protocol 连接 (vsftpd 不建议)ssl_tlsv1 是否允许客户端用TLS v1 connections 连接 (首选)ssl_ciphers 用哪种加密方法加密SSL连接 默认是DES-CBC3-SHA4)启动vsftpd Vsftpd &用cutfpt、flashfxp等支持ssl的ftp客户端软件连一下,选TLS v1连接方式,一切OK。3、OK,一个支持SSL的vsftp服务器就这样搞定了。如果你要把上传的内容分发到其它下载ftp服务器上,可以用rsync +ssh 来实现,前题是各服务器上都安装了ssh和rsync。下面是用rsync+ssh来同步上传内容的方法:1)做ssh的rsa无密码认证在主ftp服务器上以aaa用户用ssh-keygen t rsa命令生成rsa钥对(不加密码),把id_rsa.pub 文件考到其它的ftp服务器的/home/aaa/.ssh/authorized_keys,这样就可以实现不用密码的ssh-rsa认证登录,以便把rsync 加在主ftp的crontab中,让它定时自动调用ssh同步vsftp的内容。2)用ssh+rsync实现各vsftp内容之间的定时自动同步在主ftp的aaa目录下写一个rsync.sh脚本:QUOTE:#!/bin/bash#a ftp rsync scriptrsync -vrgp -size-only -delete -timeout=30 -bwlimit=1500 -e ssh /home/aaa/ftp aaaxxx.xxx.xxx.xxx:/home/aaa/ | perl mail.pl aaa其中:-v 参数为显示较多的同步信息-r 参数为同步子目录下的文件(递归)-gp 考贝时保护文件的组及权限属性-size-only 指只考贝那些同名文件中大小不一样的文件(默认为大小及文件生成时间),也就是同名的大小一样的文件和目录就不考贝了。这对减少不必要考贝很有用。-delete 在同步时删除主ftp上没有的但在从ftp上却有的文件或目录(这对删除一些没用的文件十分有用,只要删掉主ftp上的内容,同步一下,从ftp上的内容也会被删除掉。-timeout=30 在30秒内如果建立不起连接就停止。-bwlimit=1500 指最大同步带宽为1500KB(byte),这样可以不停主ftp,少影响主ftp用户的下载。-e ssh 指用ssh 进得加密同步。最后调用一个mail.pl脚本,在同步不成功时向srvadmin发邮件。把它加到aaa的crontab 中:1 3 * * * /bin/bash /home/aaa/rsync.sh每天晚上3点进行一次同步。5、最后一个就是我还没有能在vsftpd 上实现的,就是在上传用户较多的情况下,怎样实现对这些用户的建立、控制、管理、权限设制等。不知高手们有何经验,是否可以共享一下:)flashfxp客户使用TLSv1加密连接vsftpd时询问是否接受证书find.jpg (127.63 KB) 2004-10-27 19:32在我用commview抓取的ftp连接包中查找我输入的ftp密码,结果没有找到,密码是加密传输的0人了这篇文章类别:FTP技术圈( 0)阅读( 77)评论( 0) 推送到技术圈返回首页上一篇 用AWStats对VSFTP日志进行统计 下一篇 关于vsftpd同时使用系统用户和虚拟用户验证 相关文章 rsync + ssh 完成服务器之间的批量数据同步 Linux下使用SSH、Crontab、Rsync三工具实现. SSL工作原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色新质生产力发展
- 羽毛球线上培训知识大全课件
- 2026届广东省仲元中学、中山一中等七校化学高三上期末考试试题含解析
- 加强网络基础设施安全的技术与管理策略
- 群访知识培训课件
- 鲜美独特:采用特级食材和秘制配方打造无法复制的鲜美口感
- 成人腹腔穿刺留置管的监测与维护
- 2025年秋季高二开学摸底考试模拟卷英语(江苏专用译林版2020)(参考答案)
- 体检中心现场咨询医生工作制度与接诊流程
- 二年级语文家校合作提升措施
- 教师专业发展与名师成长(学校师范专业公共课)
- 现代化智能仓储物流中心建设的项目解决的方案课件
- 艾滋病检测筛查实验室申请表
- 媒介批评导论课件
- 畜牧兽医法规课件
- 文化政策与法规课件
- 木栈道专项施工方案
- 露天矿开采技术课件汇总全套ppt完整版课件最全教学教程整套课件全书电子教案
- 部编人教版九年级上册初中历史 第1课 古代埃及 教案(教学设计)
- 钢结构钢梁计算(PPT33张)
- 新中式餐厅设计答辩PPT
评论
0/150
提交评论