linux proftpd 用户,linux之proftpd搭建(随时盖楼)

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

...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值