[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 应用专题 > FTP > 正文
 

在Linux 下架设FTP 服务器

作者:demonstrate 来源:heli.bokee.com (2007-02-08 18:02:35)

原来老的 ftp 服务程序有 proftpd、wu-ftpd,FreeBSD 好像也有一个,不过 ms 最近都转向 vsftpd 了 -,- 一开始我以为是 Very Simple FTP Daemon 呢,结果去了 http://vsftpd.beasts.org ,发觉是 Very Secure FTP Daemon,狂晕!

这里简单的介绍一下 vsftpd 的特点,以及配置。具体请参考 vsftpd 的 man page 和 vsftpd.conf 的 man page,其实vsftpd.conf 本身也很有参考价值...

和其他很多的服务器程序一样,vsftpd 可以为 inetd 或者 xinetd 这两个超级服务器(个么就是服务器的服务器嘛!)启用(这种方式启动较慢,但是对于不频繁使用并且机器的内存紧张的情况还是有用的),也可以作为 standalone 的启用。这个 standalone 模式需要在配置文件中使用 listen=YES 。主配置文件只有一个 vsftpd.conf 。启用的命令行很简单
vsftpd [configuration-file]

配置文件的风格很简单,基本都是 option=value 的模式。那么,我们看看有哪些值得我们试用的 options 。这些是 bool 值(YES 或者 NO):
options
解释
默认值
allow_anon_ssl 当 ssl_enable 时,允不允许匿名用户使用 ssl 连接。
NO
anon_mkdir_write_enable
当 anonymous 可写目录时是否允许创建子目录
NO
anon_other_write_enable
是否允许 anonymous 进行除了 upload 和 mkdir 之外的 deletion 和 renaming 操作。
NO
anon_upload_enable
当允许 write_enable 时,是否允许 upload 。
NO
anon_world_readable_only
anonymous 是否可以下载全部可读文件。
YES
anonymous_enable
使用允许是用 anonymous 和 ftp 用户匿名登录。
YES
ascii_download_enable
允许使用 ASCII 方式下载
NO
ascii_upload_enable 允许使用 ASCII 方式上载 NO
async_abor_enable
某些 ftp client 使用的特性
NO
background
在 Listen 态,该选项决定是否在后台执行监听
NO
check_shell
在 vsftpd 是编译时支持 PAM 则该选项决定是否根据 /etc/shell 判断用户是否具有合法的 shell
YES
chmod_enable
给 local users 以 SITE CHMOD 权限,anonymous 不会收到影响(没有这个权限)
YES
chown_uploads
anonymous 上传文件是否 chown 为 chown_username 所设置用户
NO
chroot_list_enable
是否启用将 chroot_list_file 中用户限制仅在用户目录中
NO
chroot_local_user
是否将 local user 限制在用户目录中
NO
connect_from_port_20
是否用 20 端口传输数据
NO
deny_email_enable
使得使用 banned_email_file 中作为 anonymous 的用户无法登录
NO
dirlist_enable
是否取消 list 命令
NO
dirmessage_enable
是否列出目录消息,每个目录的 .message 可以被此处的 message_file 所设定的覆盖
NO
download_enable
是否允许下载
YES
dual_log_enable
是否在 /var/log/xferlog 和 /var/log/vsftpd.log 两处记录日志
NO
force_dot_files
是否使用 .. 和 . 文件
NO
force_anon_data_ssl
anonymous 是否数据通过 ssl 传送
NO
force_anon_logins_ssl
强制 anonymous 使用 ssl 登录
NO
force_local_data_ssl
local users 强制使用 ssl 传输数据
NO
force_local_logins_ssl
local users 强制使用 ssl 登录
NO
guest_enable
非匿名登录被映射成为 guest_username 对应用户
NO
hide_ids
将所有目录文件的属主都显示为 ftp 以掩盖 id
NO
listen
使用 standalone 模式
NO
listen_ipv6
使用 ipv6 的 standalone 模式
NO
local_enable
允许本地用户登录
NO
log_ftp_protocol
是否记录所有的 ftp 交互过程
NO
ls_recurse_enable
是否允许使用 ls -R
NO
no_anon_password
anonymous 用户是否不需要密码
NO
no_log_lock
log 文件是否加锁(排除其他进程的文件写)
NO
one_process_model
每次连接仅允许一个进程
NO
passwd_chroot_enable
将 chroot_local_user 中用户依照 /etc/passwd 中使用 ./ 技术指明的目录禁闭
NO
pasv_enable
开启 PASV 模式
YES
pasv_promiscuous
是否进行 PASV 安全检查,这主要和 FXP 使用的模式相关,我不懂
NO
port_enable
允许使用 PORT 命令获得传输端口
YES
port_promiscuous
是否进行 PORT 安全检查
NO
run_as_launching_user
以启用 vsftpd 的用户身份执行,这会使得需要 root 权限的某些功能不能完成
NO
secure_mail_list_enable
使得 anonymous 账户只能用 email_password_file 中密码登陆
NO
session_support
在会话期间只需要一次输入密码,仅在支持 PAM 的情况下有用
NO
setproctitle_enable
显示系统状态
NO
ssl_enable
支持使用 ssl 的连接,但是 vsftpd 必须连接到 Open SSL 库。
NO
ssl_sslv2
支持 SSL v2 协议
NO
ssl_sslv3
支持 SSL v3 协议
NO
ssl_tslv1
支持 TLS v1 协议
YES
syslog_enable
原先记录到 /var/log/vsftpd.log 转为系统日志。
NO
tcp_wrappers
如果编译时支持 tcp_wrappers ,则可利用基于 IP 地址的控制来处理连接
NO
text_userdb_names
使用用户名组名而不是 UID 和 GID
NO
tilde_user_enable
支持 ~name 方式访问用户主目录
NO
use_localtime
使用本地时间(默认为 GTM)
NO
use_sendfile
使用系统 sendfile() 调用
YES
userlist_deny
当 user_list_enable 时,仅仅允许在 userlist_file 文件中指明用户方可登陆
YES
userlist_enable
如果启用将使 userlist_file 内用户不能登陆
NO
virtual_use_local_privs
虚拟用户是否享用 local user 相同的权利(默认是 anonymous 的权利)
NO
write_enable
影响 STOR、DELE、RNFR、RNTO、MKD、RMD、APPE、SITE
NO
xferlog_enable
是否记录日志到 vsftpd_log_file 指定的文件中(默认为 /var/log/vsftpd.log)
NO
xferlog_std_format
使用标准的 xferlog 格式记录
NO

下表是一些数值形式的变量:
options
说明
默认值
accept_timeout
建立 session 超时,单位 s
60
anon_max_rate
匿名用户下载限制,单位 bytes/s
0
anon_umask
匿名用户上传的 umask
077
connect_timeout
连接超时,单位 s
60
data_connection_timeout
传输数据超时,单位 s
300
file_open_mode
上文件的 umask
0666
ftp_data_port
当 connect_from_port_20 激活时使用的端口号
20
idle_session_timeout
idle 超时,单位 s
300
litsten_port
监听端口
21
local_max_rate
本地用户最大传输限额,单位 bytes/s
0
local_umask
本地用户上传 umask
077
max_clients
最大连接用户数
0
max_per_ip
每个 ip 连接的最大数目
0
pasv_max_port
使用 PASV 时使用的 port 号的最大值
0
pasv_min_port
使用 PASV 时使用的 port 号的最小值
0
trans_trunk_size
每段数据块大小(最好根据网络特性来设置)
0

字符串类型的选项
options
说明
默认值
anon_root
anonymous 的用户目录位置
(none)
banned_email_file

/etc/vsftpd.banned_emails
banner_file
连接时显示出的文字,如果设置将会覆盖 ftpd_banner 设置的字符串
(none)
chown_username

root
chroot_list_file

/etc/vsftpd.chroot_list
cmds_allowed
值为允许使用的 ftp 命令,用逗号分割。一般可用的有 USER,PASS,QUIT,其余的可以用该命令添加
(none)
deny_file
该命令将会过滤掉匹配上的所有文件名,可使用正则表达式
(none)
dsa_cert_file
使用 SSL 连接时的证书
(none-use rsa)
dsa_private_key_file
SSL 连接时 DSA 的 private key
(none)
email_password_file

/etc/vsftpd.email_passwords
ftp_username

ftp
ftpd_banner

(none)
guest_username

ftp
hide_file
匹配上的文件将被隐藏
(none)
listen_address
Listen 模式下监听的地址,应写一个合法的 IP 地址
(none)
listen_address6
同上但是为 IP v6
(none)
local_root
本地用户登陆后自动转到该目录下
(none)
message_file

.message
non-priv_user
不需特权时执行任务的用户名
nobody
pam_service_name
如其意
vsftpd
pasv_address
使用 PASV 模式下传输使用的 IP 地址
(none)
rsa_cert_file
使用 SSL 的 RSA 的证书
/usr/share/ssl/certs/vsftpd.pem
rsa_private_key_file
使用 SSL 的 RSA 的 private key 位置
(none)
secure_chroot_dir
多为一个空目录,用户没有写权限
/var/run/vsftpd
ssl_ciphers
SSL 使用的加密算法
DES-CBC3-SHA
user_config_dir
允许对每个用户使用独立的配置文件,配置文件所放的目录为此变量声明,该目录中任意文件名和对应的用户名相同
(none)
user_sub_token
虚拟用户名,没看明白怎么用 -,-
(none)
userlist_file

/etc/vsftpd.user_list
vsftpd_log_file

/var/log/vsftpd.log
xferlog_file

/var/log/xferlog

(http://www.fanqiang.com)

原文链接:http://heli.bokee.com/4296717.html

 
 相关文章
用Linux架设FTP服务器(下) 2007-02-06 19:00:50
用Linux架设FTP服务器(上) 2007-02-06 18:58:34
FTP中的两种工作方式 2007-02-06 18:55:18
使用OpenBSD自带的ftpd程序搭建ftp服务器 2007-02-05 18:01:24
用Solaris架设FTP虚拟服务器 2007-02-02 14:05:37
如何建立安全的ProFTPD应用经验谈(1) 2007-02-02 10:44:01
 

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com