设为首页 收藏本站
查看: 1507|回复: 0

[经验分享] apache ftpServer源码解读与收获(二)

[复制链接]

尚未签到

发表于 2015-11-13 14:34:01 | 显示全部楼层 |阅读模式
二.相关配置
1.服务器配置
server元素
<server xmlns=&quot;http://mina.apache.org/ftpserver/spring/v1&quot;

    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;

    xsi:schemaLocation=&quot;http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd&quot;

    id=&quot;server&quot;     

    max-logins=&quot;500&quot;

    anon-enabled=&quot;false&quot;

    max-anon-logins=&quot;123&quot;

    max-login-failures=&quot;124&quot;

    login-failure-delay=&quot;125&quot;>

...

</server>

元素

描述

是否必需

默认&#20540;

id
XML配置文件中的唯一标识符
Y

max-logins
最大并发用户数
N

21

max-anon-logins
最大匿名用户数
N

10

anon-enabled
是否允许匿名用户登陆
N

true

max-login-failures
连接关闭前登陆失败后尝试次数
N

3

login-failure-delay
登陆失败后的时间延迟(ms),用于限制配置暴力破解密码
N

500


listener元素
Listener是FtpServer中负责监听网络socket接口,当客户端连接后创建用户session、执行命令等。一个FtpServer可以同时拥有多个listerner,以下是一些例子:
1)一个在21端口的默认监听;
2)一个在21端口的超速通道监听,一个隐式的在22端口上的SSL监听
3)一个在内部IP超速通道监听,一个外部IP的SSL监听

Listener以name标识,默认Listener的名称是“default”。
主要的网络配置表现在listener上,例如监听端口、SSL配置。
在XML配置&#26684;式内,所有的监听器以“listeners”元素进行配置


<listeners>

    <nio-listener name=&quot;default&quot; port=&quot;2222&quot; implicit-ssl=&quot;true&quot; idle-timeout=&quot;60&quot; local-address=&quot;1.2.3.4&quot;>

        <ssl>

            <keystore file=&quot;mykeystore.jks&quot; password=&quot;secret&quot; key-password=&quot;otherSecret&quot; />

            <truststore file=&quot;mytruststore.jks&quot; password=&quot;secret&quot;/>

        </ssl>

        <data-connection idle-timeout=&quot;60&quot;>

            <active enabled=&quot;true&quot; local-address=&quot;1.2.3.4&quot; local-port=&quot;2323&quot; ip-check=&quot;true&quot;>

            <passive ports=&quot;123-12&quot;&quot; address=&quot;1.2.3.4&quot; external-address=&quot;1.2.3.4&quot; />

        </data-connection>

        <blacklist>1.2.3.0/16, 1.2.4.0/16, 1.2.3.4</blacklist>

    </nio-listener>

</listeners>


nio元素
装配FtpServer的监听器叫做nio-listener,因为它是基于Java NIO的以提升性能和规模。

元素

描述

是否必需

默认&#20540;

name
监听名称,如果是“default”,它会覆盖默认的监听器
Y

port
监听器接受连接的端口
N

21

local-address
监听器绑定的服务器地址
N

All available

implicit-ssl
如果使用隐式的SSL,其&#20540;为true
N

false

idle-timeout
非活跃客户端断开时间。如果&#20540;设为0,则闲置时间不可用(一个客户端可以永远闲置,如果没有从服务器断开)如果一个较低的最大闲置时间配置给用户(比如使用PropertiesUserManager闲置时间配置),它会覆盖listener&#20540;.这样listener&#20540;强加以更高的阈&#20540;,但是低层&#20540;可以提供给每个用户。
N

300


ssl元素
对于需要FTPS 支持的Listener必须

元素

描述

是否必需

默认&#20540;

protocol

使用SSL协议,支持有 SSL 和TLS

N

TLS

client-authentication

是否客户端认证?支持的&#20540;有:“NEED”,“WANT”和 “NONE”


N

NONE

enabled-ciphersuites

对于本连接的一个可用的逗号分隔的密码组件列表。可用的加密组件依赖于所采用的Java版本

N

所有加密组件均可用


keystore元素
如果提供了ssl元素,它将是必须的。它为密钥存储提供配置,用于查找私钥和服务器证书。

元素

描述

是否必需

默认&#20540;

file

密钥存储路径

Y

password

密钥存储密码

Y

key-password

密钥存储中的密钥密码

N

密钥存储密码

key-alias

密钥存储中key的别名

N

Uses first key found

type

密钥存储类型

N

JKS

algorithm

密钥存储算法

N

SunX509


truststore
该元素用于配置信任存储,以定位信任的证书。

元素

描述

是否必需

默认&#20540;

file

密钥存储路径

Y

password

密钥存储密码

N

无密码可读取证书

type

密钥存储类型

N

JRE key store default type, normally JKS

algorithm

密钥存储算法

N

SunX509


data-connection元素
为数据连接提供配置

元素

描述

是否必需

默认&#20540;

idle-timeout

数据连接要关闭最大闲置时间

N

300


active元素
为积极数据连接提供配置

元素

描述

是否必需

默认&#20540;

enabled

如果积极数据连接不被允许,&#20540;为false

N

true

local-address

服务器创建连接时使用的本地地址

N

Any available

local-port

服务器创建连接时使用的本地端口

N

Any available

ip-check

服务器是否监察数据连接IP与控制socket的IP相同?

N

false


passive元素
为消极数据连接提供配置

元素

描述

是否必需

默认&#20540;

ports

服务器创建消极数据连接时使用的本地端口

N

Any available port

address

服务器监听消极数据连接的地址

N

与控制socket地址相同

external-address

服务器声明在PASV答复中监听的地址。该属性配置在当服务器在NAT防火墙后,客户端看到的IP不同于服务正使用的IP时很有用

N


blacklist元素

提供对一些IP地址的访问受限

2.用户权限配置
ftpServer对用户权限的管理,提供了数据库持久化存储管理跟文件持久化存储管理。

数据库持久化用户管理配置:

元素

描述

是否必需

默认&#20540;

encrypt-passwords(db-user-manager 元素的属性)

它表明了密码是如何存储的。可用&#20540;为:clear普通文本,MD5哈希算法或者salted哈希盐化密码。建议采用salted。

N

md5

data-source

普通Spring bean配置的数据源

Y

insert-user

SQL语句插入一个新的用户,所有的动态&#20540;在运行时会被取代。

N

update-user

SQL语句插入修改一个用户,所有的动态&#20540;在运行时会被取代。

Y

delete-user

SQL语句删除一个用户,所有的动态&#20540;在运行时会被取代。

Y

select-user

SQL语句查询一个用户,所有的动态&#20540;在运行时会被取代。

Y

select-all-users

SQL语句插入所有用户,所有的动态&#20540;在运行时会被取代

Y

is-admin

查询一个用户是否是管理员用户,所有的动态&#20540;在运行时会被取代。

Y

authenticate

SQL语句认证一个用户,所有的动态&#20540;在运行时会被取代。

Y

文件持久化存储管理配置:

元素

描述

是否必需

默认&#20540;

encrypt-passwords(db-user-manager 元素的属性)

它表明了密码是如何存储的。可用&#20540;为:clear普通文本,MD5哈希算法或者salted哈希盐化密码。建议采用salted。

N

md5

file

存储用户的properties文件路径


N

File跟url至少要有一个必须

url

存储用户的properties的URL

N

同上

以上配置信息,详见官方网站文档。

         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138862-1-1.html 上篇帖子: apache编译安装完成后的服务启动设置 下篇帖子: Caused by: org.apache.catalina.LifecycleException:eclipse中的tomcat启动不了解决之一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表