Centos 7系统安装proftpd-1.3.8过程

news/2024/12/22 19:50:42/

 

一、下载安装:
1、网站中能够下载到profptd源码:
http://www.proftpd.org/
这个是软件源码ftp地址:
ftp://ftp.proftpd.org/distrib/source/
2、进入目录/root/download解压:

tar -zxvf proftpd-1.3.8.tar.gz  #将源码压缩包解压到当前目录中
cd proftpd-1.3.8/               #进入到解压目录中
执行:
./configure --enable-nls --prefix=/usr/local/proftpd
#如果提示没有安装gcc,那么执行:
yum -y install gcc  
或者下载gcc 下载网址:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/
gcc-10.3.0.tar.gz

#安装完后:
make
make install

二、配置:
1、创建本地用户proftpd禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件:
[root@localvm ~]# useradd  proftpd -d /home/proftpd -s /bin/false -u 1001
2、将ftp根目录权限设置成系统用户proftpd上:
chown -R proftpd:proftpd /data/ftpdata
3、创建虚拟用户admin虚拟到proftpd上:
/usr/local/proftpd/bin/ftpasswd --passwd --uid=1001 --gid=1001 --home=/data/ftpdata --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftpd.passwd --name=admin
/usr/local/proftpd/bin/ftpasswd --passwd --uid=1001 --gid=1001 --home=/data/ftpdata --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftpd.passwd --name=shangchuan
/usr/local/proftpd/bin/ftpasswd --passwd --uid=1001 --gid=1001 --home=/data/ftpdata --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftpd.passwd --name=xiazai

#上面命令的说明:

#name是登陆ftp的用户名 file是密码文件位置  home是ftp用户的根目录
 /*执行后显示:
ftpasswd: using alternate file: /usr/local/proftpd/etc/ftpd.passwd
ftpasswd: creating passwd entry for user admin
ftpasswd: /sbin/nologin is not among the valid system shells.  Use of
ftpasswd: "RequireValidShell off" may be required, and the PAM
ftpasswd: module configuration may need to be adjusted.
输入密码:
*/
/usr/local/proftpd/bin/ftpasswd --group --file=/usr/local/proftpd/etc/ftp.group --gid=1001 --name=proftpd --member=admin
#创建用户组,生成配置文件 member将创建的用户添加到用户组中

2、ftp用户配置要求:admin 权限不限 shangchuan 只能上传文件夹上传  xiazai 只能下载文件下载:
#配置文件《开始》:
# 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            "ProFTPD Default by wo"
ServerIdent            off
ServerType            standalone
DefaultServer            on
 
# Port 21 is the standard FTP port.
Port                21
 
# 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            1000
 
# Set the user and group under which the server will run.
User                proftpd
Group                proftpd
 
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot /data/ftpdata
 
# Normally, we want files to be overwriteable.
AllowOverwrite        on
 
TimeoutLogin         60
TimeoutNoTransfer    1200
TimeoutStalled       2400
AllowStoreRestart       on     
#允许断点续上传 
AllowRetrieveRestart    on      
#允许断点续下载
PassivePorts   60000   60100        
#指定数据端口的范围 
UseReverseDNS        off   
#关闭DNS反向查询,节省连接时间
TransferLog          /var/spool/syslog/proftpd/xferlog.legacy  
#数据传输记录
# Bar use of SITE CHMOD by default
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /usr/local/proftpd/etc/ftpd.passwd
AuthGroupFile /usr/local/proftpd/etc/ftp.group
MaxClients 100
#IdentLookups off
UseReverseDNS off
DeleteAbortedStores on
DirFakeGroup on
DirFakeUser on
DirFakeMode 0600
RequireValidShell off
LangOptions PreferServerEncoding    #在编译时加入 --enable-nls才能用
UseEncoding utf8 gbk                #在编译时加入 --enable-nls才能用
<Limit Login>
    Order deny,allow
    AllowGroup proftpd
</Limit>
 
#显示~/welcome.msg中的欢迎信息,可以编辑welcome.msg自己制定欢迎信息 
#       %T 当前的时间 
#       %F 所在硬盘剩下的空间 
#       %C 当前所在的目录 
#       %R:客户的主机名 
#       %U:客户登陆的帐号 
#       %M:允许最大连接数 
#       %N:当前的连接人数 
#       %E:FTP服务器管理员的email 
#       %i:本次上传的文件数量 
#       %o:本次下载的文件数量 
 
AllowOverwrite  YES              
#允许文件可以重新写 
 
#IdentLookups    off      
#查找客户的远程用户名,关掉节省连接时间 
 
#ExtendedLog     /var/spool/syslog/proftpd/access.log WRITE,READ write 
#以write的日志格式记录READ,WRITE的日志 
 
#ExtendedLog     /var/spool/syslog/proftpd/auth.log AUTH auth 
#以auth的日志格式记录AUTH的日志 
<Directory /data/ftpdata>
    <Limit ALL>
        AllowUser admin shangchuan xiazai
    </Limit>
    <Limit  CWD RETR DIRS RMD>
        AllowUser shangchuan xiazai
    </Limit>
    <Limit WRITE STOR RMD READ>
        Order allow, deny
        DenyUser  shangchuan xiazai
    </Limit>
</Directory>
<Directory "/data/ftpdata/上传">
    <Limit ALL>
        DenyAll
    </Limit>
    <Limit WRITE READ CWD STOR MKD DIRS RMD>
        AllowUser admin
    </Limit>
    <Limit CWD STOR MKD DIRS>
        AllowUser shangchuan
    </Limit>
</Directory>
<Directory "/data/ftpdata/下载">
    <Limit ALL>
        DenyAll
    </Limit>
    <Limit WRITE READ CWD STOR MKD DIRS RMD>
        AllowUser admin
    </Limit>
    <Limit READ CWD RETR DIRS>
        AllowUser xiazai
    </Limit>
</Directory>

<Limit SITE_CHMOD>
  DenyAll
</Limit>

配置文件《结束》
========
Limit配置说明:
CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文件的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
WRITE:写文件或者目录的权限,包括MKD和RMD
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
ALL:所有权限
LOGIN:是否允许登陆的权限

========
三、防火墙开启配置:

systemctl start firewalld
systemctl enable firewalld


firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=60000-60100/tcp
#firewall-cmd --permanent --remove-port=8021/tcp

firewall-cmd --reload

四、启动服务:
1、启动
cd /usr/local/proftpd/sbin         #进入到服务运行文件目录
./proftpd                          #启动服务
2、停止
ps -ef | grep proftpd              #检查服务进程是否启动
pkill proftp


=============
参考文章
https://blog.csdn.net/xiazhipeng1000/article/details/85224076


http://www.ppmy.cn/news/1350303.html

相关文章

【小沐学GIS】基于WebGL绘制三维数字地球Earth(OpenGL)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第二期3【小沐学GIS】…

自动驾驶轨迹规划之kinodynamic planning

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 本文PPT来自深蓝学院《移动机器人的运动规划》 目录 1.kinodynamic的背景 2. old-school pipline 3.example 1.kinodynamic的背景 kinodynami…

状态模式:灵活管理对象状态的设计策略

状态模式&#xff1a;灵活管理对象状态的设计策略 在软件开发的过程中&#xff0c;我们经常会遇到对象根据其内部状态的改变而改变其行为的场景。传统的处理方式可能会使用大量的条件判断语句来处理不同的状态转换以及相应的行为&#xff0c;这不仅使得代码难以维护&#xff0…

常见的物联网操作系统介绍

物联网&#xff08;Internet of Things&#xff0c;IoT&#xff09;是指将各种物理设备、车辆、家用电器、工业设备等通过网络连接起来&#xff0c;实现数据交换和通信的技术。物联网操作系统是管理这些设备并使其能够相互通信的软件平台。以下是一些常见的物联网操作系统&…

刘知远LLM——神经网络基础

文章目录 神经网络基础基本构成如何训练&#xff1f; Word2Vec例子负采样&#xff1a; 循环神经网络 RNN门控计算单元 GRU长短时记忆网络 LSTM遗忘门输入门输出门双向RNN卷积神经网络 CNNpytorch实战 神经网络基础 基本构成 全称&#xff1a;人工神经网络。启发于生物神经细胞…

一周学会Django5 Python Web开发-Django5操作命令

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计11条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

力扣题目训练(8)

2024年2月1日力扣题目训练 2024年2月1日力扣题目训练404. 左叶子之和405. 数字转换为十六进制数409. 最长回文串116. 填充每个节点的下一个右侧节点指针120. 三角形最小路径和60. 排列序列 2024年2月1日力扣题目训练 2024年2月1日第八天编程训练&#xff0c;今天主要是进行一些…

2.10

头文件&#xff1a; #include <sqlite3.h> 编译时候要加上-lsqlite3 gcc a.c -lsqlite3 1&#xff09;sqlite3_open 打开一个数据库&#xff0c;如果数据库不存在&#xff0c;则创建一个数据库 2&#xff09;sqlite3_close 关闭数据库&#xff0c;断开句柄所拥有的资…