`
jimmy.shine
  • 浏览: 396302 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Proftpd 配置

 
阅读更多

1、下载proftpd. 地址为: http://proftpd.org

2、编译安装

 

./configure --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/local/mysql/include/mysql --with-libraries=/usr/local/mysql/lib/mysql --enable-ctrls --enable-nls --enable-shadow --enable-dso --enable-autoshadow --enable-auth-pam

make 

make install

proftpd默认安装在/usr/local/sbin中,若需要换目录,则在编译时候指定 --prefix=/usr/local/proftpd

3、配置mysql

(1)修改配置,centos中默认mysql的配置地点在/etc/my.cnf,可以加上指定编码为UTF-8

 

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=UTF8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=UTF8

(2)启动数据库

(3)修改数据库ROOT密码

 

mysqladmin -uroot password 'password'  --'password'为你想指定的密码

(4)创建数据库及增加用户

mysql -uroot -ppassword

 

create database proftpd default charset UTF8;
grant all privileges on proftpd.* to proftpd@localhost identified by 'proftpd'

(5)增加数据库表

 

CREATE TABLE `ftpuser` (
  `userid` text NOT NULL,
  `passwd` text NOT NULL,
  `uid` int(11) NOT NULL,
  `gid` int(11) NOT NULL,
  `homedir` text,
  `shell` text,
  `count` int(11) NOT NULL DEFAULT '0',
  `accessed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
) 

CREATE TABLE `ftpgroup` (
  `groupname` text NOT NULL,
  `gid` smallint(6) NOT NULL,
  `members` text NOT NULL
)

CREATE TABLE `quotalimits` (
  `quota_name` varchar(30) DEFAULT NULL,
  `quota_type` enum('user','group','class','all') NOT NULL,
  `per_session` enum('false','true') NOT NULL,
  `limit_type` enum('soft','hard') NOT NULL,
  `bytes_in_avail` float NOT NULL,
  `bytes_out_avail` float NOT NULL,
  `bytes_xfer_avail` float NOT NULL,
  `files_in_avail` int(10) unsigned NOT NULL,
  `files_out_avail` int(10) unsigned NOT NULL,
  `files_xfer_avail` int(10) unsigned NOT NULL
) 

CREATE TABLE `quotatallies` (
  `quota_name` varchar(30) NOT NULL,
  `quota_type` enum('user','group','class','all') NOT NULL,
  `bytes_in_used` float NOT NULL,
  `bytes_out_used` float NOT NULL,
  `bytes_xfer_used` float NOT NULL,
  `files_in_used` int(10) unsigned NOT NULL,
  `files_out_used` int(10) unsigned NOT NULL,
  `files_xfer_used` int(10) unsigned NOT NULL
) 

4、配置/usr/local/etc/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			"FTP Server in HK"
ServerType			standalone
DefaultServer			on

# Port 21 is the standard FTP port.
Port				21

#UseEncoding UTF-8 GBK
# Don't use IPv6 support by default.
UseIPv6				off

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask				022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances			30

# Set the user and group under which the server will run.
User				ftpUser
Group				ftpGroup

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite		on

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>

# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
#<Anonymous ~ftp>
#  User				ftp
#  Group				ftp

  # We want clients to be able to login with "anonymous" as well as "ftp"
#  UserAlias			anonymous ftp

  # Limit the maximum number of anonymous logins
#  MaxClients			10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
#  DisplayLogin			welcome.msg
#  DisplayChdir			.message

  # Limit WRITE everywhere in the anonymous chroot
#  <Limit WRITE>
#    DenyAll
#  </Limit>
#</Anonymous>

QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits "Kb"
QuotaLog "/usr/local/proftpd/var/quota"
QuotaShowQuotas on
SQLNamedQuery get-quota-limit SELECT "quota_name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes
_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE quota_name = '%{0}' AND quota_type = '%
{1}'"  
SQLNamedQuery get-quota-tally SELECT "quota_name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, 
files_out_used, files_xfer_used FROM quotatallies  WHERE quota_name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_
xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_
used = files_xfer_used + %{5} WHERE quota_name = '%{6}' AND quota_type = '%{7}'" quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

SQLConnectInfo proftpd@localhost:3366 proftpd proftpd
SQLAuthTypes Backend Plaintext
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
RequireValidShell off
SQLAuthenticate users groups usersetfast groupsetfast
CreateHome on
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
DeferWelcome on
RootLogin off

6、创建FTP用的用户和群组,在配置文件中使用的。

 

groupadd –g 2012 ftpGroup
useradd –u 2012 –g ftpGroup –d /data ftpUser

7、插入用户至数据库表中(这是实际使用当中的FTP账号)

 

INSERT INTO `proftpd`.`ftpuser`
(`userid`,
`passwd`,
`uid`,
`gid`,
`homedir`,
`shell`,
`count`,
`accessed`,
`modified`)
VALUES
(
'proftpd',
password('proftpd'),
2012,
2012,
'/data/ftp/proftpd',
'/bin/nologin',
0,
'0000-00-00 00:00:00',
'0000-00-00 00:00:00'
);

INSERT INTO `proftpd`.`ftpgroup`
(`groupname`,
`gid`,
`members`)
VALUES
(
'ftpGroup',
2012,
'ftpUsers'
);

8、启动mysql,proftpd

 

/etc/init.d/mysqld start
/usr/local/sbin/proftpd

 

9、其它

(1)如何将proftpd加入到服务当中

a. 复制源文件中 contrib/dist/rpm/proftpd.init.d 至 /etc/init.d中

b. 编辑 /etc/init.d/functions中,在path后面加上 /usr/local/sbin

c. 编辑 /etc/init.d/proftpd, 改其中 为 [ -x /usr/local/sbin/proftpd ] || exit 5

d. 将proftpd改为可执行

 

chmod +x /etc/init.d/proftpd

e. 添加服务

chkconfig --level 35 proftpd on
chkconfig --add proftpd

(2)从外面访问不到,要注意防火墙的问题,编辑 /etc/sysconfig/iptables, 是里面加入

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

重新启动

/etc/init.d/iptables restart

(3)如果通过ssh访问的时候,有乱码,可以编辑 /etc/sysconfig/i18n

 

LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN:zh_CN.UTF-8:zh_CN.GBK:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

(4)对于用户上传下载数量的限制,通过quota来实现,在quota*表中插入数据,具体可以GOOGLE

 

备注:

1、在/etc/hosts是一定要对于主机名绑定IP,否则无法启动。

如: 127.0.0.1   ftpServer

2、mysql devel必须要安装上,否则无法编译proftpd

3、FTP下的目录的用户与群组必须与创建的对应上。

   # chown -R ftpUser:ftpGroup /data/

分享到:
评论

相关推荐

    proftpd虚拟用户挂载多个目录

    在 Proftpd 配置文件 proftpd.conf 中,需要添加相应的配置项,以便实现虚拟用户挂载多个目录的功能。例如: ``` ServerName "My FTP Server" ~/public&gt; AllowUser virtualuser ~/private&gt; AllowUser ...

    ProFtpd 配置

    ### ProFTPD配置详解 #### 一、简介 ProFTPD是一款非常强大的FTP服务器软件,主要应用于类Unix系统,如Linux、FreeBSD等。作为一款遵循GPL协议的开源软件,ProFTPD允许用户自由地使用、修改其源代码。本文旨在帮助...

    proftpd配置[收集].pdf

    **ProFTPD 配置详解** ProFTPD是一款流行的开源FTP服务器软件,广泛应用于Linux和Unix系统中。本文将深入探讨ProFTPD的安装过程、主要文件位置、启动方式以及配置文件的详细设置。 1. **安装ProFTPD** 安装...

    Linux系统proftpd配置

    提供Linux系统下proftp安装,配置。

    proftpd + mysql + quota配置完全指南

    根据提供的文件信息,本文将详细解释如何配置 proftpd、MySQL 和 quota 来实现一个功能齐全且具有存储配额管理的 FTP 服务器。这将包括软件版本的选择、安装过程、配置文件详解以及常见问题解答等内容。 ### 1. ...

    proftpd 简介

    相较于 wu-ftpd,proftpd 在功能、安全性和可配置性上都有显著提升,特别是在配置文件的编写上借鉴了 Apache 的风格,使得配置变得更加简单直观。本文将详细介绍 proftpd 在 Red Hat Linux AS4 上的基本安装和配置...

    AIX_5L下proftpd安装配置

    ### AIX_5L下proftpd安装配置详解 #### 测试环境与软件版本 在IBM7043-150(俗称43P150)服务器上进行proftpd的安装与配置,该服务器配置为PowerPC_604e375MHz处理器,配备1GB内存,运行AIX5.3操作系统。proftpd...

    proftpd-cookbook:厨师食谱来安装和配置ProFTPD

    系统用户拥有ProFTPD配置文件。 node['proftpd']['conf_files_group'] 'root' 拥有ProFTPD配置文件的系统组。 node['proftpd']['conf_files_mode'] '00640' ProFTPD配置文件系统文件模式位。 node['proftpd'...

    proftpd安装和配置,2分钟搞定

    在`/etc/proftpd/proftpd.conf`中进行配置。这里的目标是限制用户只能访问特定目录,并禁用匿名登录。打开配置文件进行编辑: ```bash sudo vi /etc/proftpd/proftpd.conf ``` 1. **禁用匿名访问** 找到`...

    Atang群集软件+tomcat linux配置实例

    #### ProFTPD配置实例 ProFTPD作为一款强大的FTP服务器软件,在Linux环境中广泛使用。与Tomcat类似,ProFTPD也可以通过Atang群集软件实现集群化部署,增强数据传输的安全性和稳定性。 1. **下载与安装ProFTPD** ...

    linux proftp配置

    ### Linux下ProFTPd配置详解 #### 一、引言 在Linux环境下配置ProFTPd是一种常见的需求,尤其是在需要管理服务器上多个用户及其独立FTP站点的情况下。本文将详细介绍如何安装和配置ProFTPd,以便更好地服务于不同...

    proftpd安装.rar

    标题中的“proftpd安装.rar”表明这是一个关于在CentOS 7.9系统上安装ProFTPD服务器的压缩包文件,包含了安装过程、配置文件、虚拟用户设置以及用户目录权限的配置等内容。ProFTPD是一个流行的开源FTP服务器,用于...

    Linux下配置FTP服务(Proftpd)

    本篇主要介绍如何在Linux下配置FTP服务,特别是使用Proftpd服务器,以满足特定的需求,包括限制用户上传速率、限制每个IP的并发连接数、设定最大用户连接数以及设置不同用户的权限。 首先,我们从安装Proftpd开始。...

    linux下简易Ftp服务器搭建:proftpd的安装与最简配置

    本篇文章将详细介绍如何在Linux系统上安装和配置开源FTP服务器软件ProFTPD,以实现一个简易的FTP服务。 ProFTPD是一款强大的、可高度自定义的FTP服务器,支持多种操作系统,包括Unix/Linux、FreeBSD、OpenVMS等。它...

    proftpd 1.3.2 for linux

    4. **高度可配置**:通过修改主配置文件(proftpd.conf),可以定制各种服务器行为,包括用户权限、日志记录、数据传输模式等。 5. **多种协议支持**:除了标准FTP,ProFTPD还支持SFTP(Secure File Transfer ...

    centos7下proftpd+mysql安装配置.zip

    proftpd全称:Professional FTP daemon,是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone、xinetd模式运行等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,...

    proftpd-1.3.3.tar.gz

    4. **配置ProFTPD**:编辑配置文件`/etc/proftpd/proftpd.conf`,根据需要设置监听端口、用户权限、虚拟主机等选项。例如,启用TLS加密传输: ``` TLSRequired on TLSProtocol SSLv23 SSLv3 TLSv1 TLSv1.1 TLSv...

    proftpd LINUX-FTP服务包

    本压缩包"proftpd LINUX-FTP服务包"包含了安装和配置ProFTPD所需的所有文件,尤其是其中的"proftpd-1.3.1"版本,是ProFTPD的一个稳定版本。 **ProFTPD介绍** ProFTPD是一个开源的FTP服务器,支持多种操作系统,包括...

    Linux下proftpd的安装配置与管理方法

    Linux 下 ProFTPD 的安装配置与管理方法 ProFTPD 是一款开放源码的 FTP 服务器软件,它是原来世界范围使用最广泛的 wu-ftpd 的改进版,修正了 wu-ftpd 的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化...

Global site tag (gtag.js) - Google Analytics