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

CentOS系统下如何安装配置ProFTPd服务器

1.软件下载安装[root@chenghy~]#cd/root[root@chenghy~]#wgetftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz[root@chenghy~]#tarzxvfproftpd-1.3.4c.tar.gz[root@c

 1.软件下载安装

[root@chenghy ~]# cd /root
[root@chenghy ~]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz
[root@chenghy ~]# tar zxvf proftpd-1.3.4c.tar.gz
[root@chenghy ~]# cd proftpd-1.3.4c
[root@chenghy ~]# ./configure --prefix=/usr/local/proftpd
[root@chenghy ~]# make
[root@chenghy ~]# make install

 2.修改配置文件

[root@chenghy ~]# vim /usr/local/proftpd/etc/proftpd.conf
ServerName "chenghy's FTP Server"
ServerType standalone # 以独立进程方式运行
DefaultServer on
Port 21 # FTP端口
Umask 002 # 权限,建议设置为002
UseReverseDNS off # 禁止DNS反查
IdentLookups off # 禁止DNS反查
ServerIdent off # 隐藏软件版本信息
AllowRetrieveRestart on # 下载断点续传
AllowStoreRestart on # 上传断点续传
## 虚拟用户认证信息
AuthOrder mod_auth_file.c # 只允许虚拟用户登陆
AuthUserFile /usr/local/proftpd/etc/ftp.users
AuthGroupFile /usr/local/proftpd/etc/ftp.group
DefaultRoot ~ # 将用户限定在根目录下
PassivePorts 20000 30000 # 被动模式端口段
SystemLog /var/log/proftpd/proftpd.log # 软件日志
TransferLog /var/log/proftpd/proftpd.xfer.log
LogFormat default "%h %u %t %D \"%r\" %s %b" # 日志格式
ExtendedLog /var/log/proftpd/access.log WRITE,READ default # 访问日志
MaxInstances 250 # 允许最大连接
MaxClients 20 # 最大用户数
MaxLoginAttempts 3 # 最大尝试连接次数
TimeoutLogin 30 # 身份验证超时
TimeoutIdle 120 # 发呆超时
TimeoutNoTransfer 300 # 无数据传输超时
User nobody # 定义ftp以哪个用户身份运行
Group nobody # 定义ftp以哪个用户组身份运行

AllowOverwrite on # 允许写入覆盖
  # 设置虚拟用户读权限
 AllowALL
 
  # 设置omd用户所有权限
 Order allow,deny
 AllowUser omd
 DenyALL
 


 3.添加虚拟用户和组

[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --passwd --name=bsmp --home=/home/omd/file/ --uid=2001 --gid=2000 --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftp.users
[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --passwd --name=omd --home=/home/omd/ --uid=2002 --gid=2000 --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftp.users
[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --group --name=myftp --gid=2000 --member=bsmp --member=omd --file=/usr/local/proftpd/etc/ftp.group

 4.将用户目录设置权限

[root@chenghy ~]# chown -R 2002:2000 /home/omd/

####下面两行用来删除用户和组###########

[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --passwd --name=bsmp  --delete-user --file=/usr/local/proftpd/etc/ftp.users
[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --group --name=myftp  --delete-group --file=/usr/local/proftpd/etc/ftp.group

 5.将proftpd添加到系统服务

  按照网上的资料修改/etc/rc.d/init.d/proftpd文件后发现配置不成功,后来自己修改了一下此文件完成了配置

[root@chenghy ~]# vim /etc/rc.d/init.d/proftpd
#!/bin/sh
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
start() {
 echo -n $"Starting proftpd : "
 daemon /usr/local/proftpd/sbin/proftpd -c /usr/local/proftpd/etc/proftpd.conf 2>/dev/null
# daemon命令是/etc/rc.d/init.d/functions中自带的
 RETVAL=$?
 echo
 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}
stop() {
 echo -n $"Shutting down proftpd : "
 killproc proftpd
# killproc命令是/etc/rc.d/init.d/functions中自带的
 RETVAL=$?
 echo
 [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}
# See how we were called.
case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart)
 stop
 start
 ;;
 *)
 echo "Usage: proftpd { start | stop | restart }"
esac
[root@chenghy ~]# chmod 755 /etc/rc.d/init.d/proftpd
[root@chenghy ~]# chkconfig add proftpd
[root@chenghy ~]# chkconfig --level 35 proftpd on
[root@chenghy ~]# service proftpd start

 6.防火墙设置

  只允许主动模式访问添加下面的第①、②条,只允许被动模式访问添加下面的②、③条,两种模式都允许添加下面①、②、③条。

[root@chenghy ~]# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20 -j ACCEPT
[root@chenghy ~]# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT
[root@chenghy ~]# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20000:30000 -j ACCEPT
推荐阅读
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 在Fedora 31上部署PostgreSQL 12
    本文详细介绍如何在Fedora 31操作系统上安装和配置PostgreSQL 12数据库。包括环境准备、安装步骤、配置优化以及安全设置,确保数据库能够稳定运行并提供高效的性能。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文介绍了在MacOS上通过Homebrew安装Anaconda3,并配置环境变量以实现不同Python版本之间的快速切换。同时,提供了详细的步骤来创建和管理多个Python环境。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 利用SSH隧道实现外网对局域网机器的安全访问
    本文探讨了一种常见的网络配置问题及其解决方案,即如何在外网环境下安全地访问位于局域网内的计算机。特别介绍了使用SSH反向隧道技术来实现这一目标的具体步骤和注意事项。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
author-avatar
烂哥居士
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有