热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS系统中使用ProFTPd配置ftp服务器

CentOS操作系统是商业版本RedHatEnterpriseLinux的免费版,是架构LAMP的理想操作系统。vsftpd提供的主要功能包括虚拟IP设置、虚拟用户、Standalone、inetd操作模式,具有强大的单用户设置能力及带宽限流等。那么如何在Centos下安装配置vsftpd呢?FTP服务被
CentOS操作系统是商业版本Red Hat Enterprise Linux的免费版,是架构LAMP的理想操作系统。vsftpd提供的主要功能包括虚拟IP设置、虚拟用户、Standalone、inetd操作模式,具有强大的单用户设置能力及带宽限流等。那么如何在Centos 下安装配置vsftpd呢?
FTP服务被广泛的应用着,常见的,一些大学、组织、机构等等,都有通过FTP服务器向外发布数据…但在这里,我们将要构建的FTP服务器将主要针对用于用户更新自己的网站。也就是说,让用户(root除外)只可以访问自己的Web目录(本站前面介绍的HTTP服务器构建中以public_html为例)。
另外,为了避免通过平文传输时,数据被截获,从而泄漏隐私与密码,我们采用TLS方式,加密FTP传输过程中的数据,以确保安全。
(构建FTP服务器,您将有多种选择,比如通过vsftpd等等FTP服务器软件。但ProFTPD在一些方面,更能够符合我们的实际条件,尤其对于ADSL方式接入网络的服务器,ProFTPD能够很好的应对不断变化的IP地址造成的问题。)

一、安装 ProFTPD
由于ProFTPD不存在于CentOS中yum的官方库中,所以用yum安装ProFTPD需要定义非官方的库。请先确认相应非官方库文件的存在。
/etc/yum.repos.d/dag.repo  ← 确认相应库文件的存在性
/etc/yum.repos.d/dag.repo  ← 确认其存在(否则不能通过yum安装ProFTPD)
如果以上,dag.repo文件不存在,则不能通过yum安装ProFTPD,需要定义非官方库。定义非官方库的方法请见 “CentOS的下载、安装及初始环境设置”一节中yum的相关设置。而且,在此前提下也要保证所定义的dag.repo文件的语法的正确性。
然后,通过yum来在线安装ProFTPD。
[root@sample ~]# yum -y install proftpd  ← 安装ProFTPD

二、配置 ProFTPD
然后,通过修改相应配置文件配置ProFTPD。
[root@sample ~]# vi /etc/proftpd.conf  ← 修改ProFTPD的配置文件
ServerType  standalone   ← 找到这一行,在行首添加“#”

#ServerType  standalone   ← 变为此状态,不使用常驻模式
#ServerType inetd   ← 找到这一行,去掉行首的“#”

ServerType inetd   ← 变为此状态,通过超级服务器来启动ProFTPD
DefaultRoot  ~ !adm   ← 找到这一行,将“ !adm”改为“/public_html !wheel”

DefaultRoot  ~/public_html !wheel   ← 变为此状态,使除wheel组用户的根目录为public_html
找到TLS设置的语句群,如下:
# TLS
# Explained at
----------------------------------------------------------------
#TLSEngine on
#TLSRequired  on
#TLSRSACertificateFile /usr/share/ssl/certs/proftpd.pem
#TLSRSACertificateKeyFile /usr/share/ssl/certs/proftpd.pem
#TLSCipherSuiteALL:!ADH:!DES
#TLSOptionsNoCertRequest
#TLSVerifyClient off
##TLSRenegotiate ctrl 3600 data 512000 required off timeout 300
#TLSLog /var/log/proftpd/tls.log
----------------------------------------------------------------
将以上水平线间部分的语句,每行行首的“#”都去掉,变为下面水平线间的状态:
----------------------------------------------------------------
TLSEngine  on
TLSRequired on  ← 只允许TLS方式的连接(如果将on改为off,普通方式也被允许)
TLSRSACertificateFile/usr/share/ssl/certs/proftpd.pem
TLSRSACertificateKeyFile/usr/share/ssl/certs/proftpd.pem
TLSCipherSuite ALL:!ADH:!DES
TLSOptions NoCertRequest
TLSVerifyClient off
#TLSRenegotiatectrl 3600 data 512000 required off timeout 300
TLSLog  /var/log/proftpd/tls.log
----------------------------------------------------------------
然后在配置文件的末尾填如下几行:
ExtendedLog  /var/log/proftpd/access.log WRITE,READ default  ← 记录连接日志到相应日志文件
ExtendedLog  /var/log/proftpd/auth.log AUTH auth  ← 记录认证日志到相应日志文件
MasqueradeAddress  digeast.no-ip.info  ← 定义服务器域名
PassivePorts  50000 50030  ← 为PASV模式连接时指定端口号(1024以后存在的任意端口号)
然后,为服务器建立证书。
[root@sample ~]# cd /usr/share/ssl/certs  ← 进入相应的目录
[root@sample certs]# make proftpd.pem  ← 建立服务器证书
Country Name (2 letter code) [GB]:CN  ← 输入国家简写
State or Province Name (full name) [Berkshire]:Hei Long Jiang  ← 输入省份
Locality Name (eg, city) [Newbury]:Harbin  ← 输入城市
Organization Name (eg, company) [My Company Ltd]:www.centospub.com  ← 输入组织名(任意)
Organizational Unit Name (eg, section) []:  ← 直接回车跳过
Common Name (eg, your name or your server's hostname) []:www.centospub.com   ← FTP服务器名反馈
Email Address []:yourname@yourserver.com  ← 输入E-mail地址

三、启动 ProFTPD
启动之前,先对超级服务器的ProFTPD的启动脚本做一些修改。
[root@sample certs]# vi /etc/xinetd.d/xproftpd  ← 编辑ProFTPD启动脚本
log_on_success += DURATION USERID  ← 找到此行,将“DURATION USERID”改为“HOST PID”

log_on_success += HOST PID   ← 变为此状态,防止登录时要等待30秒
log_on_failure += USERID  ← 找到此行,将“USERID”改为“HOST”

log_on_failure += HOST   ← 变为此状态,防止登录时要等待30秒
disable = yes  ← 找到此行,将yes改为no

disable = no   ← 变为此状态,让ProFTPD通过超级服务器启动
然后,通过重新启动超级服务器间接启动ProFTPD。
[root@sample certs]# chkconfig xproftpd on  ← 设置ProFTPD自启动
[root@sample certs]# chkconfig --list xproftpd  ← 查看ProFTPD自启动
xproftpd on  ← 确认为on的状态就OK
[root@sample certs]# /etc/rc.d/init.d/xinetd restart  ← 重新启动超级服务器
Stopping xinetd:[ OK ]
Starting xinetd: [ OK ]

四、连接到FTP服务器
当我们成功的启动了FTP服务之后,就可以通过客户端软件连接到服务器进行文件的上传和下载了。但由于,本站介绍的方法,把安全、传输的保密性放在了第一位,这也就使得好多不支持TSL的FTP软件无法连接到服务器。支持TSL的FTP客户端软件,比较有代表性的有Staff-FTP, SmartFTP。本站将以SmartFTP为例(下一节),介绍如何从客户端通过FTP连接到服务器的方法。

推荐阅读
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 访问一个网页的全过程
    准备:DHCPUDPIP和以太网启动主机,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此ISP(Intern ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • ArcXML:互联网空间数据交换的专用语言
    ArcXML是一种专为ArcIMS平台设计的数据交换协议,基于XML标准,用于在不同组件之间传输和描述地理空间数据。本文将详细介绍ArcXML的背景、用途及其与XML的关系。 ... [详细]
  • 精选多款高效实用软件及工具推荐
    本文介绍并推荐多款高效实用的软件和工具,涵盖系统优化、网络加速、多媒体处理等多个领域,并提供安全可靠的下载途径。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
author-avatar
mobiledu2502900167
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有