linux

位置:IT落伍者 >> linux >> 浏览文章

Linux下架设FTP


发布日期:2021年06月28日
 
Linux下架设FTP

Linux下一般最常用的工具wuftpd

wuftpd的安装非常容易大多数版本的Linux中都包含了wuftpd的rpm软件包你可以在安装Linux时指定装入如果你想自行编译源代码也可以到ftp://下载最新版本的源代码包

安装好以后可以用ckconfig命令来检查是否已经正确安装在/etc/passwd中可以指定ftp用户的登入目录

wuftpd主要有以下个配置文件

ftpaccess(主要配置文件控制存取权限)

ftpconvertions(配置文件压缩/解压缩转换)

ftpgroups(设定ftp自己定义的群组)

ftphosts(设定个别的用户权限)

ftpservers(设定不同IP/Domain Name以对应到不同的虚拟主机)

ftpusers(设定哪些帐号不能用ftp连线)

下面我们来一一介绍

⒈/etc/ftpaccess(wuftpd的主要配置文件)

class定义群组用法如下

class<种类><用户地址>[<用户地址>……]

由class定义的群组用户才可以连线进来可以使用多层式的class来规范哪些群组的用户能够从哪些地方上来这里有三个重要的种类realanonymous个guestreal如果没有列在定义中那么这台机器中任何真实的一般用户都无法用自己的帐号连上来anonymous如果没有在定义就表示不让没有帐号的的人连上来如果有定义guest那么guest群组的人就可以上来另外<用户地址>是指ftp上来的用户会用到的IP地址则可自行设定以下是一些例子

class all realguestanonymous *

定义了一个名为all的class包含三种人所有IP的连线用户(也就是所有人都包括了)

class local real localhost loopback

local这个class说只有real的用户可以从本机机器连上来

class remote guestanonymous *

remote这个class包含了从任何地方上来的guest和anonymous用户但是real用户不算

class rmtuser real !*

rmtuser这个class包含了从外面来的(除了)真实用户

autogroup自动对应群组用法如下

autogroup[……]

当你定义好的那些同属于一个class的用户一旦连线上来就会被对应到一个相应的群组下面这样你就可以用Unix的文件权限对某一群人做限制

deny拒绝某些地址连线用法如下

deny<拒绝连线的地址><信息文件>

禁止某些机器连线并显示<信息文件>例如

deny *: /etc/rejectmsg

guestgroup设定访客群

guestuser设定访客帐号

realgroup设定真实群组

realuser设定真实帐号

nice设定给某些class多少优先权用法如下

nice

在Linux中nice的值是(最优先)到(最后处理)这里你可以指定负的值来提高某class的优先顺序

defumask设定某class的umask用法如下

defumask[]

umask是建立文件时该文件的的权限掩码

tcpwindow设定tcpwindow的大小

keepalive设定是否使用TCP SO_KEEPALIVE来控制断线情形

timeout设定连线超时用法如下

timeout accept<秒>

接受连线超时预设

timeout connect<秒>

连线建立超时预设

timeout data<秒>

数据传送超时预设

timeout idle<秒>

用户发呆超时预设

filelimit限制某class只能传几个文件用法如下

filelimit[][]

对某个class限制存取文件的数目包含了in(上传)out(下载)total raw代表整个传输的结果不光是数据文件例如

filelimit out lvfour

限制lvfour这个class的用户最多只能下载个文件

bytelimit限制某class只能传几个字节用法跟filelimit相似

limittime限制一个连线只能持续多久用法如下

limittime{*|anonymous|guest}<分钟>

为了避免有人挂在站上不下来可以用这个方法限制用户的上线时间例如

limittime guest

让guest帐号的用户只能用分钟

limit限制某class能同时几人上线用法如下

limit<连线数目><时间区段><额满信息文件>

设定某个class在某一时间区段内最多能够几人同时上线后面是当超过连线数目时要显示的信息例如

limit all Any /home/ftp/etc/toomanyusermsg

限制所有连线在任何时间只能有个用户超过则拒绝连线并显示信息

limit levellone Any /home/ftp/etc/toomanyusermsg

限制levellone这个class的用户在::这段时间内只能有人连线

noretrieve设定哪些文件不可下载

noretrieve[absolute/relative][class=]…[][<文件名>…]

absolute或relative指文件是用绝对路径还是相对路径

allow=retrieve设定哪些文件可以下载

allow[absolute/relative][class=]…[][<文件名>…]

loginfails设置登入错误可尝试的次数

当用户连线时可能打错ID或密码这个设定可以让他打错几次以后就断线避免有人用穷举法猜测密码

private设定线上是否可以执行SITE GROUP/SITE GPASS

当开放SITE GROUP与SITE GPASS指令时可以用这两个指令切换到/etc/ftpgroup的群组一般而言我们不会用到这个功能以避免安全漏洞

greeting显示Server的版本信息用法如下

greeting

当用户登入画面显示的server信息full是预设值包含版本号以及hostnamebrief只有hostname而terse只有FTP server ready的信息

barnner设定未进入Login画面之前用户看到的信息用法如下

banner<文件路径>

这里叙述了在用户登入时在还没打ID/Password之前要出现的信息文件路径指的是相对于真实的路径而不是相对于ftp的根目录

host设定ftp主机名

email指定ftp管理者的email地址

message信息文件的设定用法如下

message<文件>{<何时>{……}}

这里的文件的路径是相对于ftp的根目录的何时是指当你做了什么动作之后的反应有几个选择

login(登入时)

cwd=<目录>(进入某目录时)

class 名称是前面已经定义过的允许你的信息只对哪些人发出

而信息文件的内容除了文字以外还可以使用以下一些事先定义好的代号

%T(本机时间)

%F(目前分区所剩余的空间)

%C(目前所在的目录)

%E(管理者的Email)

%R(客户端主机名称)

%L(本机主机名称)

%U(用户名称)

%M(与我相同class用户允许多少人连线)

%N(与我相同class用户目前有多少人连线)

%B(绝对磁盘限制大小目前分区(单位blocks))

%b(preferred磁盘限制大小目前分区(单位blocks))

%Q(目前已使用的blocks)

%I(最大可使用的inodes(+))

%i(Preferred inodes限制)

%q(目前使用的indoes)

%H(超量使用磁盘空间的时间限制)

%h(超量使用文件数目的时间限制)

readme通知用户哪些README文件已经更新

log commands记录用户所使用过的命令用法如下

log commands<用户种类>

log transfers记录用户所传输的文件用法如下

log transfers<用户种类><传输方向>

设定有哪些类型的用户传输文件需要记录包含了inbound(用户上传)和outbound(用户下载)例如

log transfers anonymousguest inboundoutbound

log security记录安全性用法如下

log security<用户种类>

特别用于记录某类用户关于noretrivenotar等有关安全性的记录

log syslog记录到系统的syslog文件

alias设定目录别名用法如下

alias<别名字符串><目录>

cdpath设定cd更换目录搜索顺序

compresstar设定是否自动压缩用法如下

compress[……]

tar[……]

定义哪些人可以执行压缩以及tar

shutdown通知用户要关站了

shutdown<信息文件>

如果信息文件存在的话当这个文件指定的某时间以后就会拒绝连线并切断已有的连线等时间一到就关机这个信息文件的格式如下

<年><月><日><时><分><拒绝倒数><断线倒数><文字>

daemon address指定只监听某个IP地址用法如下

daemon address

当你有许多IP的时候使用这个选项将会取消其它任何虚拟FTP主机的设定不设定的话监听所有IP

virtual设定虚拟FTP站台

wuftpd提供了虚拟主机的功能也就是说在同一台机器上提供了不同FTP站台以主机名称或IP来区分当然你要用名称的话还需要跟DNS配合才行virtual有很多个设定

virtual

<路径>

可以是主机名或IP地址

root指的是ftp的根目录banner是欢迎信息logfile指的是这个虚拟站台的log文件

以下是一些例子

virtual bj root /home/ftp

virtual bj banner /etc/vftpbanner

virtual bj logfile /etc/viftplog

virtual

<字母>

用户可以查到hostname跟管理者email以下是一些例子

virtual hostname bj

virtual bj email ftpbj

virtual

all               

上一篇:如何在硬碟建置Linux系统之setup 启动

下一篇:redhat linux 9.0 VSFTP配置大权