ProFTPD服务

ProFTPD服务

简介

ProFTPD服务是一个安全、配置简单的ftp服务器软件;

采用的是Apache相似的配置格式,相对比较容易配置与管理;

安装ProFTPD

浏览官网:ftp://ftp.proftpd.org/distrib/source

找到.tar.gz的文件下载下来

准备好源码安装ProFTPD服务

下载源码包中含有安装说明,INSTALL和README这两个文件当中

#解压包
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ls
proftpd-1.3.6c.tar.gz
[root@localhost src]# tar -xf proftpd-1.3.6c.tar.gz 


#进入到目录中查看目录的内容
[root@localhost src]# cd proftpd-1.3.6c
[root@localhost proftpd-1.3.6c]# ls
acconfig.h    contrib     locale         README.capabilities  README.LDAP         sample-configurations
aclocal.m4    COPYING     ltmain.sh      README.classes       README.md           src
ChangeLog     CREDITS     m4             README.controls      README.modules      stamp-h.in
config.guess  doc         Makefile.in    README.cygwin        README.PAM          tests
config.h.in   include     Make.rules.in  README.DSO           README.ports        utils
config.sub    INSTALL     modules        README.facl          README.Solaris2.5x
configure     install-sh  NEWS           README.FreeBSD       README.Unixware
configure.in  lib         README.AIX     README.IPv6          RELEASE_NOTES


#安装必要的依赖包
[root@localhost proftpd-1.3.6c]# yum -y install gcc gcc-c++



#预编译
[root@localhost proftpd-1.3.5]# ./configure --prefix=/usr/local/proftpd


#编译安装
[root@localhost proftpd-1.3.5]# make && make install

#添加启动proftpd的用户
[root@localhost proftpd-1.3.5]# useradd -M -s /sbin/nologin proftp
[root@localhost proftpd-1.3.5]# 

./configure预编译

  • –prefix=:指定软件安装的路径
  • –sysconfdir=:指定配置文件的路径
  • –localstatedir:指定运行状态的文件存放的位置
  • –with-modules=:指定需要加载的功能模块
  • –enable-memcache:支持缓存功能
  • –enable-nls:支持多种语言环境
  • –enable-openssl:支持TLS的加密FTP服务
  • –enable-shadow:支持使用/etc/shadow用户认证

proftpd配置文件

配置文件存在:/usr/local/proftpd/etc/proftpd.conf

  • 全局设置
  • 目录设置
  • 匿名设置
#使用的规格
<Directory “路径”> 开头
</Directory>结尾;需要首尾一样

#以下是配置说明
ServerName                      "ProFTPD Default Installation"			#客户连接后看到的第一次信息
ServerType                      standalone					#服务器启动模式,独立后台进程
DefaultServer                   on							#作为默认的服务器
ort                            21							#默认监听21端口
UseIPv6                         off							#禁用ipv6
Umask                           022							#权限掩码值
MaxInstances                    30							#最大并发数量为30
User                            nobody						#服务启动的所有者
Group                           nogroup						#服务启动的所属组
AllowOverwrite          on									#是否允许可写权限
<Limit SITE_CHMOD>											#权限设置
  DenyAll
</Limit>					
<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>

proftpd的权限设置

CWD				进入目录
MKD				创建目录
RNFR			更名
dele			删除目录
read			只读权限
write			可写
stor			可上传
retr			可下载
dirs			列出目录
login			允许登陆
all				全部
AllowUser		设置允许的账户,多个账户使用逗号隔开
AllowGroup		设置允许的组,多个组使用逗号隔开
AllowAll		允许所有
DenyAll			拒绝所有
DenyUser		拒绝的用户
DenyGroup		拒绝的组

应用案例讲解

背景:

ABC公司有商务部、设计部、开发部、运维部,

各个部门都能访问FTP后看到所有的目录

但是只能访问本部门的目录,

并且需要开启FTP日志功能

FTP认证采用基于文件认证的方式,

共享的目录是/var/ftp

创建所需要的账户以及共享目录

[root@localhost proftpd]# useradd -M -s /sbin/nologin proftp
[root@localhost proftpd]# mkdir -p /var/proftp/{develop,ops,sales,design}
[root@localhost proftpd]# chmod 777 /var/proftp/{develop,ops,sales,design}

修改配置文件

[root@localhost proftpd]# pwd
/usr/local/proftpd
[root@localhost proftpd]# vim etc/proftpd.conf
ServerName                      "ProFTPD Default Installation"
ServerType                      standalone
DefaultServer                   on
UseEncodin      UTF-8 CP936			#这一行添加
AllowRetrieveRestart    on			#添加
AllowStoreRestart       on			#添加
UseIPv6                         off
Umask                           022
User                            proftp
Group                           proftp
RootLogin               OFF
MaxInstances            30
SystemLog               /var/log/proftpd.log
TransferLog             /var/log/proftpd.log
AllowOverwrite          on
DefaultRoot             /var/ftp

RequireValidShell               off
AuthUserFile    /usr/local/proftpd/ftpd.passwd
        # 通过文件认证用户登录,需要使用ftppasswd命令创建该文件
<Directory "/var/ftp/*">
<Limit CWD READ>                #允许所有人可以查看根目录
AllowAll
</Limit>
</Directory "/var/ftp/ops">
<Limit CWD MKD RNFR READ WRITE STOR RETR> #拒绝所有人在该目录下删除文件
DenyAll
</Limit>
<Limit DELE>    #禁止所有人在该目录下删除文件
DenyAll
</Limit>
<Limit CWD MKD RNFR READ WRITE STOR RETR>       #允许tomcat用户指令Limit后的所有指令
AllowUser       tomcat
</Limit>
</Directory>

</Directory "/var/ftp/devop">
<Limit CWD MKD RNFR READ WRITE STOR RETR> #拒绝所有人在该目录下删除文件
DenyAll
</Limit>
<Limit DELE>    #禁止所有人在该目录下删除文件
DenyAll
</Limit>
<Limit CWD MKD RNFR READ WRITE STOR RETR>       #允许tomcat用户指令Limit后的所有指令
AllowUser       jacob,jack
</Limit>
</Directory>


</Directory "/var/ftp/sales">
<Limit CWD MKD RNFR READ WRITE STOR RETR> #拒绝所有人在该目录下删除文件
DenyAll
</Limit>
<Limit DELE>    #禁止所有人在该目录下删除文件
DenyAll
</Limit>
<Limit CWD MKD RNFR READ WRITE STOR RETR>       #允许tomcat用户指令Limit后的所有指令
AllowUser       sales1
</Limit>
</Directory>


</Directory "/var/ftp/design">
<Limit CWD MKD RNFR READ WRITE STOR RETR> #拒绝所有人在该目录下删除文件
DenyAll
</Limit>
<Limit DELE>    #禁止所有人在该目录下删除文件
DenyAll
</Limit>
<Limit CWD MKD RNFR READ WRITE STOR RETR>       #允许tomcat用户指令Limit后的所有指令
AllowUser       design1
</Limit>
</Directory>

创建虚拟账户

[root@localhost proftpd]# bin/ftpasswd --passwd --name=tomcat --uid=1001 --gid=1001 --home=/home/nohome --shell=/bin/false

ftppasswd命令

作用:创建用户文件、族文件、默认创建的用户文件是ftpd.passwd

选项:

  • –passwd:指定密码文件,就是AuthUserFile指定的文件
  • –group:指定族文件
  • –name:指定创建的用户
  • –uid:指定虚拟用户的uid
  • –gid:指定虚拟用户的gid
  • –shell:指定用户的shell
  • –file:指定创建的文件名

你可能感兴趣的:(Linux-服务管理,apache,服务器,linux)