FTP:file transfer protocol 文件传输协议。使用端口为20(数据通道,传输文件或目录列表)和21(命令通道,传输用户命令),FTP服务器能够从网上提供文件的传输服务,远程客户端可以上传和下载文件。

linux中常见FTP服务器有:proftpd、vsftp、wu-ftpd。

FTP工作模式有两种:主动模式PROT和被动模式PASV。

主动模式:客户端随机开放1个大于1024的端口N向服务器21端口发起链接,然后开发N+1端口进行监听,并向服务器发出PORT N+1命令,通知服务器自己是主动模式。

服务器接收到命令后,会用本地FTP数据端口20向客户端指定的N+1端口传输数据。

被动模式:客户端随机开发1个大于1024的端口N向服务器21端口发起链接,然后开发N+1端口进行监听,并向服务器发出PASV N+1命令,通知服务器自己是被动模式。

服务器接收到命令后,会开发给1个大于1024的端口M进行监听,然后使用PROT M命令通知客户端,数据端口是M。客户端使用N+1口段和服务器M端口进行传输数据。

首先我们下载我们所需的proftpd源代码文件。[root@www ~]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz

[root@www  ~]# tar -zxvf proftpd-1.3.6.tar.gz  #报错。

proftpd-1.3.6/

proftpd-1.3.6/.autom4te.cfg

proftpd-1.3.6/.gitattributes

proftpd-1.3.6/.github/

proftpd-1.3.6/.github/CONTRIBUTING.md

proftpd-1.3.6/.github/ISSUE_TEMPLATE.md

proftpd-1.3.6/.gitignore

proftpd-1.3.6/.travis.yml

proftpd-1.3.6/COPYING

proftpd-1.3.6/CREDITS

proftpd-1.3.6/ChangeLog

gzip: stdin: unexpected end of file

tar: 归档文件中异常的 EOF

tar: 归档文件中异常的 EOF

tar: Error is not recoverable: exiting now

[root@www  ~]# ls -l proftpd-1.3.6.tar.gz

-rw-r--r--. 1 root root 242200 10月 17 17:04 proftpd-1.3.6.tar.gz   #压缩文件错误。

[root@www  ~]# ls -l /tmp/proftpd-1.3.6.tar.gz

-rw-r--r--. 1 root root 20251898 10月 17 18:37 /tmp/proftpd-1.3.6.tar.gz  #正确的。

[root@www  ~]#

[root@www ~]# tar -zxvf /tmp/proftpd-1.3.6.tar.gz -C /usr/local/src/

[root@www ~]# cd /usr/local/src/proftpd-1.3.6

开始编译安装前,首先生成Makefile文件。

参数介绍[root@www proftpd-1.3.6]#./configure --help 查看可用的参数,也可以在   阅读详细的参数。

[root@www proftpd-1.3.6]#./configure --prefix=/usr/local/proftpd --sysconfdir=/etc --localstatedir=/var/log/proftpd --enable-shadow --enable-autoshadow --with-modules=mod_ratio:mod_readme:mod_wrap

默认安装会安装mod_auth,模块包含的指令http://www.proftpd.org/docs/modules/mod_auth.html

需要安装mod_core,模块包含的指令http://www.proftpd.org/docs/modules/mod_core.html

我这里所用的参数有,比较简单哦~:

--prefix 安装目录放在/usr/local/proftpd下

--sysconfdir 配置文件放在/etc下

--localstatedir 日志文件放在/var/log/proftpd下

--enable-shadow

--enable-autoshadow 这两项是可以使用/etc/shadow获取密码

--with-modules=mod_ratio:mod_readme:mod_wrap需要使用的模块

另外:

install_user=用户名 install_group=组名 ./configure --prefix=/home/tj/proftpd/devel/build/ ... 使用用户和组名进行安装,不影响运行。

生成了makefile文件就可以make编译安装了。[root@www proftpd-1.3.6]# make

报错啦:mod_wrap.c:34:18: 错误:tcpd.h:没有那个文件或目录,需要安装tcp_wrappers和tcp_wrappers-devel。gcc -DHAVE_CONFIG_H  -DLINUX  -I.. -I../include  -O2 -Wall -c mod_wrap.c

mod_wrap.c:34:18: 错误:tcpd.h:没有那个文件或目录

...

...

make[1]: *** [mod_wrap.o] 错误 1

make[1]: Leaving directory `/usr/local/src/proftpd-1.3.3/modules'

make: *** [modules] 错误 2

[root@www proftpd-1.3.3]# make clean

cd src/     && make clean

make[1]: Entering directory `/usr/local/src/proftpd-1.3.3/src'

rm -f *.o

make[1]: Leaving directory `/usr/local/src/proftpd-1.3.3/src'

[root@www proftpd-1.3.6]# yum install tcp_wrappers-7.6-57.el6.x86_64.rpm tcp_wrappers-devel-7.6-57.el6.x86_64.rpm -y安装完成后所需依赖包后。

[root@www proftpd-1.3.6]# make clean

[root@www proftpd-1.3.6]# make

[root@www proftpd-1.3.6]# make install

#全局设置

设置项1 参数

设置项2 参数

#某个目录的设置

#关于匿名用户的设置

最简单的配置,也是默认的配置[root@www ~]# grep -Ev "^#|^$" /etc/proftpd.conf

ServerName                      "ProFTPD Default Installation"        #服务器的名称

ServerType                       standalone                   #服务类型存在两种 standalone 和 inetd/xinetd模式。对于不经常用的ftp服务器来说选择xinetd较好。

DefaultServer                       on                       #是否开启?

Port                          21                         #监听端口

UseIPv6                        off                       #是否开启ipv6

Umask                         022                        #上传文件的默认权限

MaxInstances                       30                        #最大实例即pid数量

TimeoutStalled                                         300                                            #客户端空闲时间

User                          nobody                       #启动服务的用户

Group                         nobody                       #启动服务的组

DefaultRoot ~

RootLogin off                                             #是否允许root登录ftp,为安全建议off

AllowOverwrite                       off

DisplayLogin                       welcome.msg                  #欢迎信息

DisplayChdir                                           .message

DenyAll

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

DenyAll

注:

1.ServerType服务类型存在两种 standalone 和 inetd/xinetd模式。inetd/xinetd会统一管理服务,由inetd/xinetd来监听21端口,若有客户进来则由inetd/xinetd来启动proftpd服务和管理连接,对于不经常用的ftp服务器/流量小的服务器来说选择xinetd较好。可以编辑xinetd.conf文件

service ftp

{

disable = no

flags= REUSE

socket_type             = stream

wait                    = no

user                    = root

server                  = /usr/sbin/proftpd

server_args             = -c /etc/proftpd.conf

}

2.DefaultRoot 限制用户访问目录,此指令会出现在配置文件上下文中(不能存在virtualhost global上下文中)、、中。

DefaultRoot ~ 所有用户的根目录都chroot到家目录,标准语法DefaultRoot 目录 组或所有

DefaultRoot ~ !user_ftp 不是user_ftp组的用户chroot到家目录

DefaultRoot /path/to/dir group1,group2  两个组下的用户chroot到/path/to/dir下。 这里若使用符号链接作为根目录,一定要注意尽量不要使用绝对路径作为根目录。当chroot后会失效的

3.匿名登录且安全上传

User                          ftp

Group                         ftp

AnonRequirePassword off

UserAlias                     anonymous ftp

MaxClients                    10

DisplayLogin                  welcome.msg

DisplayChdir                  .message

AllowALL

DenyAll

4.指令有三种参数:ftp命令、ftp命令组、关键字ALL(所有哦)

ftp命令组有:ALL 所有的FTP命令(除LOGIN)

DIRS 包括CDUP, CWD, LIST, MDTM, MLSD, MLST, NLST, PWD, RNFR, STAT, XCUP, XCWD, XPWD

LOGIN 包括client logins

READ 包括RETR SIZE

WRITE 包括APPE, DELE, MKD, RMD, RNTO, STOR, STOU, XMKD, XRMD

优先级是 单个命令 > 命令组 > ALL

a.限制单个命令(格式SITE_COMMOND):如CHMOD命令(SITE_CHMOD)

DenyAll

b.如何限制某个用户禁止访问或限制某个ip禁止登陆ftp服务器,使用

Deny from 192.16.8.146.***

可以查看mod_ifsession模块和mod_wrap2也可以实现。

c.的继承,当在中时目录的子目录也会继承的限制哦。除非被更近的所替代。#上传

#第一个limit  在这个目录下进制使用所有命令

DenyAll

#第二个limit  在这个目录下可以使用的命令

AllowAll

#可以使用的上传命令

AllowAll

d.基本常用的权限限制有以下: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:是否允许登陆的权限

e.可应用的范围有:AllowUser 针对某个用户允许的Limit

DenyUser 针对某个用户禁止的Limit

AllowGroup 针对某个用户组允许的Limit

DenyGroup 针对某个用户组禁止的Limit

AllowAll 针对所有用户组允许的Limit

DenyAll 针对所有用户禁止的Limit

5.虚拟FTP服务器设置

为什么要有虚拟服务器,在单一主机提供多个站点或地址。         #基于ip

ServerName“我的虚拟FTP服务器”

#基于名称

...

VirtualHost>

6.只允许匿名登录虚拟服务器

ServerName "My virtual FTP server"

DenyAll

User private

Group private

AllowAll

...

linux proftpd 用户,linux之proftpd搭建(随时盖楼)相关推荐

  1. linux中国用户,Linux中国 适合新用户的Linux

    这个争论无疑给许多Linux用户带来了麻烦.争论的焦点一般不是哪个发行版是真正最适合新用户的,而是哪个发行版受这些争论者的喜爱.如果我们撇开个人喜爱,我们会看到更清楚的一面.但即使这样,明确的结论也会 ...

  2. linux proftpd 用户,Linux下安装和配置proftpd教程

    1.下载 下载地址:ftp://ftp.proftpd.org/distrib/source/ 我下载的是 proftpd-1.3.0a.tar.gz 下载到目录/gmm/soft下面 2.安装 # ...

  3. linux nobody 用户,Linux CentOS7安装配置tomcat8(使用非root用户/nobody用户运行)

    Tomcat主要用于运行JavaWeb项目,打开:tomcat8官方下载,可以看到官方有Binary Distributions和Source Code Distributions两大类,前者是二进制 ...

  4. 电脑系统linux普通用户,Linux操作系统用户管理

    Linux操作系统中用户有着不同功能的身份. Linux系统中用户的分类 1)超级用户: root uid=0 2)系统用户:不需要登录系统,服务于应用程序,维护系统的运行,如 bin,nobody ...

  5. linux shell用户,Linux 系统 利用shell脚本获取所有用户

    # useradd –d /usr/sam -m sam 此命令创建了一个sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的主目录所在的父目录). # use ...

  6. redhat linux新建用户,linux redhat 添加用户

    id ###查看用户信息 id -u  ###查看用户uid -g   ###查看用户所在组id -a   ### 查看用户所有信息 -G###查看用户所在所有组id(包括所有历史组) -un ### ...

  7. linux proftpd 关闭匿名用户,Linux ProFTPd安装与卸载详细介绍_Linux_脚本之家

    Linux系统上ProFTPd安装与卸载的详细过程 yum install proftpd vi /etc/proftpd.conf ← 修改ProFTPD的配置文件 ServerType stand ...

  8. linux proftpd mysql_使用MySQL认证ProFTPD用户

    使用MySQL认证ProFTPD用户 作者:chinaitlab 佚名 2005-11-03 00:00 评论 分享 [IT168 服务器学院]1. apt-get update //更新数据库 2. ...

  9. linux proftpd 关闭匿名用户,linux服务器管理相关问题(四)--proftpd配置

    一.安装ProFTPD 1 .准备工作 一般系统自带的RPM 包的版本太老,有些Bug 并且有些功能不全,下载较新的ProFTPD 服务器进行安装.如果是自己练习或者内部使用,可以使用新版的,如果做服 ...

最新文章

  1. 去中心化已成大势所趋,手机的中枢地位岌岌可危?
  2. TalkingData:用好大数据,为企业转型赋能
  3. MyBatis-24MyBatis缓存配置【集成EhCache】
  4. 怎么向easyui grid里面插入空数据_浅谈数据结算(三)
  5. [architecture]-Armv8 Cryptographic Extension介绍
  6. 畅通工程,How Many Tables ACM第九天-图论
  7. python教程很详细_Python编程入门教程:从入门到高级,非常详细
  8. 高版本号chrome安装flashplayer debuger后无法使用的问题
  9. angularJs中的发送请求例子
  10. html5 数据初始化,使用HTML5中的element.dataset操作自定义data-*数据
  11. 五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看)
  12. 免费不加密:C++基础教程完整版视频(黑马程序员)
  13. 自动连上dns服务器啥意思,自动分配DNS服务器和手动设置有什么区别
  14. typescript基础
  15. 简单分析多个京东快递物流中含有多次派送的单号
  16. Codeforces Round #536 (Div. 2) E. Lunar New Year and Red Envelopes(DP+muitiset优化)
  17. 原创 | 假期必读:一文看尽2019-2020各大顶会GNN论文(附链接)
  18. 操作系统 --- 磁盘调度算法
  19. UVA 1600 Patrol Robot 巡逻机器人(BFS)
  20. vue created 无效

热门文章

  1. 如果不从事编程,我可以做什么?
  2. 前窗玻璃膜贴了一周还有气泡_新车前挡风玻璃贴膜后有气泡几天能下去
  3. 2019-CSP赛后总结
  4. Mifare UltraLight
  5. 磨金石教育插画干货分享|日本插画为什么独树一帜,那么受欢迎
  6. 【饭谈】:开发说他要是不写bug,测试就会失业了。
  7. 更换NVMe SSD不用重装系统,Windows系统迁移
  8. 迷宫问题的DFS和BFS解法
  9. 快速搭建一个小型博客网站
  10. “七段数码管绘制”实例详解