Centos 7系统安装proftpd-1.3.8过程

一、下载安装:

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

相关推荐
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq4 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge7 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱7 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
小林熬夜学编程8 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
力姆泰克8 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节