




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教程如何借助vsftpd在Linux上构建安全的FTP服务FTP(文件传输协议)是互联网上广泛使用的服务之一,主要用于将文件从一个主机传输到另一个主机。FTP本身当初不是作为一种安全协议而设计的;正因为如此,典型的FTP服务很容易遭受诸如中间人攻击和蛮力攻击之类的常见攻击。许多具有安全功能的应用程序可用来构建安全的FTP服务。比如说,FTPS(安全Secure)使用SSL/TLS证书,对端到端数据进行加密。基于客户端的需求,FTPS可加以配置,以支持经过加密及/或未经过加密的连接。SFTP(SSH文件传输协议)是另一种为传输中数据确保安全的方法。SFTP是作为SSH的一种扩展技术而开发的,同样
2、可以结合其他安全协议使用。本教程将着重介绍借助SSL/TLS已被启用的vsftpd,构建和保护FTP服务。先稍微介绍一下背景:典型的FTP服务器侦听TCP端口20以监视数据、侦听TCP端口以监视命令(又叫控制端口)。连接的建立和命令参数的交互都通过端口21来完成。FTP连接支持两种方法:主动模式和被动模式。在主动模式下的连接建立过程中,服务器建立一条从其端口20(数据)到客户机的连接。在被动模式下,服务器为每一个客户机会话专门指定了随机性数据端口,并将该端口通知客户机。随后,客户机建立一条通向服务器随机性端口的连接。据RFC1635显示,FTP支持通过特殊用户anonymous进行的公众访问,
3、不需要任何密码,或者通过用户ftp、使用密码ftp来进行访问。除了这类公众用户外,vsftpd还支持本地Linux用户进行的登录。Linux用户可以通过使用FTP连接到服务器,并提供登录信息,访问其主目录,即/home/user。把vsftpd安装到Linux上如果想把vsftpd安装到Ubuntu、Debian或Linux Mint上,可以使用apt-get命令。系统一启动,vsftpd服务就会自动启动。$ sudo apt-get install vsftpd如果想把vsftpd安装到CentOS、Fedora或RHEL上,我们可以使用yum来轻松完成安装。服务启动后,还被添加到系统启动项
4、。# yum install vsftpd# service vsftpd start# chkconfig vsftpd on使用vsftpd的一种最基本的FTP服务现已准备好使用。我们只要将浏览器指向URLftp:/ServerName/IP,或者使用FileZilla等FTP客户软件、使用用户名anonymous,无需密码来连接,或使用用户名ftp、密码ftp来连接,就可以访问FTP服务。vsftpd安装完毕后,系统用户ftp连同主目录/var/ftp已被添加到系统中。只要建立了匿名FTP连接,会话总是默认使用/var/ftp目录。所以,我们可以将该目录用作FTP公众用户的主目录。放在/
5、var/ftp下面的任何文件/目录都可以通过ftp:/ServerName/IP加以访问。vsftpd配置文件的位置出现在下面两个地方:Ubuntu、Debian或Linux Mint:/etc/vsftpd.confCentOS、Fedora或RHEL:/etc/vsftpd/vsftpd.conf在本教程的其余部分,使用你Linux系统上的对应位置的vsftpd.conf文件。调整FTP用户如果想禁用公众访问,我们就要在vsftpd.conf中明确禁止用户anonymous。注释掉这一行不管用,因为vsftpd使用默认值运行。你还需要重启vsftpd。anonymous_enable=NO
6、# service vsfptd restart因而就要启用强制性验证;只有现有的Linux用户才能够使用其登录信息来进行连接。若想启用/禁用本地用户,我们可以修改vsftpd.conf文件。如果我们禁用本地用户,就得确保用户anonymous已被授予访问权限。local_enable=YES/NO# service vsfptd restart如果想使用特定用户连接到系统,我们只要将URL改成ftp:/usernameServerName/IP。相应用户的主目录可使用这种方法,通过FTP来加以访问。将用户限制在各自的主目录用户使用FTP访问远程服务器时,用户可以浏览整个系统,只要文件/目录是
7、可读取的。根本不建议这么做,因为任何用户都能通过FTP会话,读取和下载/etc、/var、/usr 及其他位置下面的系统文件。想限制本地用户在FTP会话期间只能访问各自的主目录,我们可以修改下面这个参数。chroot_local_user=YES# service vsftpd restart现在,本地用户只能够访问其主目录了,无法访问系统中的其他任何文件或目录。启用SSL/TLS加密FTP原本是一种明文协议,这意味着谁都可以轻松窥视在客户机与远程FTP服务器之间所传输的文件。想对FTP通信内容进行加密,可以启用vsftpd中的SSL/TLS。第一步是创建SSL/TLS证书和私钥,如下所示。它
8、会将所创建的证书/私钥存放在目标.pem文件中。在Debian/Ubuntu上:$ sudo openssl req -x509 -days 365 -newkey rsa:2048 nodes -keyout /etc/vsftpd.pem -out /etc/vsftpd.pem在CentOS/Fedora/RHEL上:$ sudo openssl req -x509 -days 365 -newkey rsa:2048 nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem然后,将下面这些参数添加到vsftpd.c
9、onf配置文件中。# 启用TLS/SSLssl_enable=YES# 强迫客户机在登录时使用TLSallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrequire_ssl_reuse=NOssl_ciphers=HIGH# 指定SSL证书/私钥(Debian/Ubuntu)# 如果是CentOS/Fedora/RHEL,将其换成/etc/vsftpd/vsftpd.pemrsa_cert_file=/etc/vsftpd.pemrsa_
10、private_key_file=/etc/vsftpd.pem# 为被动模式下的连接定义端口范围pasv_max_port=65535pasv_min_port=64000最后重启vsftpd。# service vsftpd restart控制连接和带宽vsftpd提供了几种方法来控制连接和用户带宽。我们将使用几种方法来调整我们的FTP服务器。# 为每个匿名会话分配的带宽设置为大约30 KB/s #anon_max_rate=30000# 每个本地用户被授予大约30 KB/s的带宽#local_max_rate=30000# 客户机会话闲置300秒后被终止#idle_session_tim
11、eout=300# 每个源IP地址的最大连接数量,这有助于防范拒绝服务(DoS)和分布式拒绝服务攻击(DDoS)#max_per_ip=50调整防火墙最后,如果你在系统(比如CentOS)上运行iptables防火墙,就要确保调整防火墙规则,允许FTP流量通过。下面这些规则应当有助于你开始上手。# iptables -I INPUT -p tcp -dport 20 -j ACCEPT# iptables -I INPUT -p tcp -dport 21 -j ACCEPT# iptables -I INPUT -p tcp -dport 64000:65535 -j ACCEPT头两条规则
12、允许流量通过FTP数据/控制端口。最后一条规则允许被动模式下的连接,其端口范围已经在vsftpd.conf中予以定义。启用日志功能万一你在本教程的FTP服务构建过程中遇到任何问题,可以启用日志功能,为此只需修改vsftpd.conf中的下面这个参数:xferlog_enable=YESxferlog_std_format=NOxferlog_file=/var/log/vsftpd.loglog_ftp_protocol=YESdebug_ssl=YES# service vsftpd restart借助FileZilla连接到FTP服务器现在有几款FTP客户软件支持SSL/TLS,尤其是Fi
13、leZilla。想通过FileZilla连接到支持SSL/TLS的网站,就要为FTP主机使用下列设置。你头一次连接到支持SSL/TLS的FTP服务器后,会看到该网站的证书。只管信任证书、登录上去。为sftpd排查故障1. 如果你在连接到FTP服务器的过程中遇到了下面这个错误,这可能是由于你的防火墙阻止FTP流量。为此,确保你在防火墙上打开了必要的FTP端口,如上所述。ftp: connect: No route to host2. 如果你连接到在CentOS/RHEL上运行的使用chroot改变根目录的FTP服务器时遇到了下面这个错误,禁用SELinux是一个办法。500 OOPS: cann
14、ot change directory:/home/devLogin failed.虽然关闭SELinux是一个快速的解决办法,但在生产环境下这么做可能不安全。所以,改而打开SELinux中的下列布尔表达式可以解决这个问题。$ sudo setsebool -P ftp_home_dir on3. 如果你通过FileZilla访问支持SSL/TLS的FTP服务器时遇到了下列错误,就要确保在vsftpd.conf中添加“ssl_ciphers=HIGH”。FileZilla并不支持默认密码(DES-CBC3-SHA)。Trace: GnuTLS alert 40: Handshake failedError: GnuTLS error -12: A TLS fatal alert has been received.SSL_accept failed: error:1408A0C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理单元整合方案设计
- 教师职业道德考核记录表范文
- 农房不动产项目监理
- 2025年高等教育文学类自考-03299广告运作策略历年参考题库含答案解析(5套典型题)
- as时间状语从句讲解
- 疫情下口罩经济学原理
- 防溺水安全教育告知书范文及宣传手册
- 人工种植菌类技术
- 2025年高等教育农学类自考-06634园林植物遗传与育种历年参考题库含答案解析(5套典型题)
- 重点人员审核汇报
- 苯职业病防护课件
- 2025年铸牢中华民族共同体意识基本知识测试题及答案
- 催收新人培训管理制度
- DZ/T 0089-1993地质钻探用钻塔技术条件
- 2025-2030中国铁路道岔行业市场现状供需分析及投资评估规划分析研究报告
- 特种设备安全法培训课件
- 2025-2030年中国快速消费品行业市场深度调研及竞争格局与投资研究报告
- 邯郸介绍课件
- 2025至2030中国硼酸行业发展方向及供需趋势研究报告
- DB11T 634-2025 建筑物在用电子系统雷电防护装置检查规范
- 2025年届高考生物复习知识点总结模版
评论
0/150
提交评论