原来老的 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 |
【作者: demonstrate】【访问统计:】【2006年01月24日 星期二 21:39】【 加入博采】【打印】
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4296717