热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

ProFtpd快速指南

文章标题:ProFtpd快速指南。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  ProFTPD是一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码。 
  
  ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。 
  
  ProFTPD的主要包括如下特点: 
  
  * 单一主设置文件,包含许多指令以及其支配的组,? 耆?际侵惫鄣纳瓒āH绻魑欢?pache Web Serve的设置不陌生的话相信一定会觉得十分容易操作设定。 
  
  * 每个目录都可以定义一个".ftpaccess"设置文件,就如同Apache的".htaccess"文件一样可以设定该目录的存取权限。 
  
  * 可设定多个虚拟FTP server,而匿名FTP服务更是十分容易。 
  
  * 可根据系统的负载(load)选择以单独运作(stand-alone)方式或是由inetd启动。 
  
  * 匿名FTP的根目录不需要特定的目录结构、系统二进制执行文件或其它系统文件。 
  
  * ProFTPD不执行任何外部程序以免造成安全漏洞。 
  
  * 具有隐藏目录或隐藏文件,源自于Unix形式的档案权限,或是user/group类型的档案权限设定。 
  
  * 能够以一般使用者在单独运作(stand-alone)模式下执行,以减少某些藉由攻击方式取得root权的可能性。注:此功能与Unix的操作系统有关。 
  
  * 支持系统记录以及utmp/wtmp。 
  记录的方式与wu-ftpd的标准完全兼容,也支持记录内容的延伸格式。 
  
  * 支持Shadow&! nbsp;password,包括了帐号使用期限设定的功能。 
  
  编译和安装  
  Proftpd提供了多种安装格式,包括源代码方式、RPM方式、deb方式(debian软件包)等。本文主要讨论源代码方式的安装。 
  
  从ftp.proftpd.net下载最新版本的proftpd-1.2.0rc3到Linux服务器上。然后按照如下步骤进行处理: 
  
  [root@ftpd /]# cp proftpd-1.2.0rc3.tar.gz /usr/src/ 
  [root@ftpd /]# cd /usr/src 
  [root@ftpd src]# tar xvfz proftpd-1.2.0rc3.tar.gz 
  [root@ftpd src]# cd proftpd-1.2.0rc3 
  [root@pftd proftpd-1.2.0rc3]# ./configure 
  [root@pftd proftpd-1.2.0rc3]# make 
  [root@pftd proftpd-1.2.0rc3]# make install 
  
  到现在为止,你已经完成了proftpd的编译和安装。并且在/usr/local/etc/目录下有一个默认的proftpd配置文件proftpd.conf。 
  
  启动测试 
  
  对于笔者的试验系统RedHat6.2来说,需要将该配置文件中: 
  
  Group nogrou! p 
  
  修改为: 
  
  Group nobody 
  
  因为redhat系统中nobody用户属于nobody组,而不是nogroup组。 
  
  若需要将proftpd设置为系统启动时自动启动则通过如下命令拷贝启动文件: 
  
  [root@ftpd proftpd-1.2.0rc3]# cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd 
  
  然后修改该脚本的可执行属性: 
  
  [root@ftpd /]# chmod +x /etc/rc.d/init.d/proftpd 
  
  然后编辑/etc/rc.d/init.d/functions: 
  
  修改 
  
  export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" 为 export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin" 
  
  注:若将在运行./cofigure命令时通过--prefix选项指定将proftpd安装在/usr/sbin目! 录下则不需要修改fuctions文件。 
  
  然后运行命令: 
  
  [root@ftpd rc3.d]# chkconfig --level 35 proftpd on 
  
  则下次系统启动以后,proftpd将自动启动。 
  
  最后,需要确保系统当前没有ftp服务器在运行: 
  
  [root@ftpd /]# netstat -ln 
  
  若输出中不包含 
  
  tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 
  
  这样的内容则可以直接启动proftpd,否则需要关闭以前的ftpd服务器。对于一般的缺省Linux安装来说,则需要通过以下的途径来关闭ftp服务器:编辑/etc/inetd.conf文件,在ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a 一行前加上#: 
  
  #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a 然后:
  
  [root@ftpd ! /]# ps ax|grep inetd 
  
  350 ? S 0:00 inetd得到inetd的进程号 ,重新启动inetd进程: 
  
  [root@ftpd /]# kill -HUP 350
  
  然后通过如下命令启动proftpd: 
  
  [root@ftpd /]# /etc/rc.d/init.d/proftpd start 
  
  这时候可以通过如下命令来测试proftpd是否正常运行: 
  
  C:WINDOWS>ftp 192.168.2.33 
  Connected to 192.168.2.33. 
  220 ProFTPD 1.2.0rc3 Server (ProFTPD Default Installation)[ftpd.test.com.cn] 
  User (192.168.2.33:(none)): ideal 
  Password: 
  230 User ideal logged in. 
  ftp> 
  
  则现在你就拥有了一个安全可靠的ftp服务器。 
  
  FAQ 
  
  1、我安装proftpd以后,出现了问题,我如何调试? 
  
  通过通过命令! /usr/local/sbin/proftpd -d9 -n启动proftpd来进行调试,则proftp d就会将调试信息打印到consle上以供调试之用。 
  
  2、为什么我的proftpf启动以后,匿名用户不能登录? 
  
  查看proftp配置文件/usr/local/etc/proftpd.conf,修改(这里/home/ftp可以是任何希望匿名用户登录以后的当前根目录,但是确保要使该目录允许ftp用户访问),并且若部分的User指令指定的用户为ftp用户,则需要在配置文件中添加如下命令指示: 
  
  RequireValidShell off 
  
  3、我如何实现一个正常用户登录以后将其的访问限定在某个目录之下? 
  
  可以通过指令DefaultRoot来实现。例如若希望将ftpusers组的用户限定在自己的home目录下,则需要首先创建该组: 
  
  /usr/sbin/groupadd ftpusers 
  
  然后将用户ideal加入到该组中: 
  
  usrmod -G ftpusers ideal 
  
  最后在在proftpd.conf文件中添加如下内容: 
  
  DefaultRoot ~ ftpusers 
  
  也可以限制用户登录以后仅仅访问自己主目录下的一个子目录: 
  
  Default! Root ~/anoftp ftpusers 
  
  当然也可以将用户限制在其他目录之下,而不是自己的home目录下: 
  
  DefaultRoot /tmp ftpusers 
  
  也可以限定一个用户组的某些用户被限制,而其他不作限制: 
  
  DefaultRoot ~ ftpusers,!empolyee 
  
  这个指令指示仅仅限制ftpusers组中的不是empolyee组的用户进行限制。 
  
  4、我如何使用户登陆时不显示ftp服务器版本信息,以增强安全性? 
  
  在proftpd.conf中添加如下内容: 
  
  ServerIdent off 
  
  则再次登录时,显示如下内容: 
  
  C:WINDOWS>ftp 192.168.2.33 
  Connected to 192.168.2.33. 
  220 ftpd.test.com.cn FTP server ready. 
  User (192.168.2.33:(none)): 
  
  5、在proftpd环境下如何设定虚拟主机? 
  
  可以通过指令:VirtualHost来实现,一个最简单的例子: 
  
   
  ServerName "virtual FTP server" 
  
 
  若你仅仅希望通过匿名访问某个虚拟主机,则使用如下! 的指令: 
  
   
  
  Serv erName "virtual FTP server" 
  
   
  DenyAll 
  
 
  
   
  
  User private 
  Group private 
  
   
  AllowAll 
  
 
  
  
 
  
  
 
  
  这样192.168.2.35的这台主机则仅仅允许匿名登录。 
  
  笔者的proftpd.conf配置文件内容为: 
  
  # This is a basic ProFTPD configuration file (rename it to 
  # 'proftpd.conf' for actual use. It establishes a single server 
  # and a single anonymous login. It assumes that you have a user/group 
  # "nobody" and "ftp" for normal operation and anon. 
  
  ServerName &! quot;test.com.cn FTP Server" 
  ServerType sta
推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
author-avatar
C1_VISION
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有