vsftpd 的配置文件 :::::::::::: 21 号端口用于与客户机建立命令链路 在主动模式下服务器使用 20 号端口向客户机建立数据链路 主动模式:由服务器主动连接客户机建立数据链路。
FTP 客户机由大于 1024 的的 N 端口向 FTP 服务器的 21 号端口发出一个连接请求, 请
建立命令链路后, FTP 服务器的 20 号端口会向客户端的 N+1 号端口发送一个连接请 被动模式: FTP 服务器等待客户机建立数据链路。
FTP 客户机由大于 1024 的 N 号端口向 FTP 服务器的 21 号端口发出一个连接请求, 请 /etc/vsftpd/vsftpd.conf 主配置文件 /usr/sbin/vsftpd Vsftpd 的主程序 /etc/rc.d/init.d/vsftpd 启动脚本 /etc/pam.d/vsftpd
PAM 认证文件(此文件中 file=/etc/vsftpd/ftpusers 字段, 指明阻 /etc/vsftpd/ftpusers
禁止使用 vsftpd 的用户列表文件。记录不允许访问 FTP 服务器 /etc/vsftpd/user_list 禁止或允许使用 vsftpd 的用户列表文件。 这个文件中指定的用户
Generated by Foxit PDF Creator © Foxit Software
缺省情况(即在 /etc/vsftpd/vsftpd.conf 中设置 userlist_deny=YES ) 下也 /var/ftp
匿名用户主目录; 本地用户主目录为: /home/ 用户主目录, 即登 /var/ftp/pub
匿名用户的下载目录, 此目录需赋权根 chmod 1777 pub ( 1 为特 /etc/logrotate.d/vsftpd.log Vsftpd 的日志文件 vsftpd 的主配置文件 /etc/vsftpd/vsftpd.conf 说明 ( 修改前先备份 ) 和 Linux 系统中的大多数配置文件一样, vsftpd 的配置文件中以 # 开始注释。 # 是否允许匿名登录 FTP 服务器,默认设置为 YES 允许 # 用户可使用用户名 ftp 或 anonymous 进行 ftp 登录, 口令为用户的 E-mail 地址。 # 如不允许匿名访问则设置为 NO anonymous_enable=YES # 是否允许本地用户 ( 即 linux 系统中的用户帐号 ) 登录 FTP 服务器, 默认设置为 YES 允许 # 本地用户登录后会进入用户主目录,而匿名用户登录后进入匿名用户的下载目录 /var/ftp/pub # 若只允许匿名用户访问, 前面加上 # 注释掉即可阻止本地用户访问 FTP 服务器 local_enable=YES # 是否允许本地用户对 FTP 服务器文件具有写权限,默认设置为 YES 允许 write_enable=YES # 掩码, 本地用户默认掩码为 077 # 你可以设置本地用户的文件掩码为缺省 022 ,也可根据个人喜好将其设置为其他值 #local_umask=022
Generated by Foxit PDF Creator © Foxit Software # 是否允许匿名用户上传文件, 须将全局的 write_enable=YES 。 默认为 YES #anon_upload_enable=YES # 是否允许匿名用户创建新文件夹 #anon_mkdir_write_enable=YES # 是否激活目录欢迎信息功能 # 当用户用 CMD 模式首次访问服务器上某个目录时, FTP 服务器将显示欢迎信息 # 默认情况下,欢迎信息是通过该目录下的 .message 文件获得的 # 此文件保存自定义的欢迎信息,由用户自己建立 #dirmessage_enable=YES # 是否让系统自动维护上传和下载的日志文件 # 默认情况该日志文件为 /var/log/vsftpd.log, 也可以通过下面的 xferlog_file 选项对其进行设 定 # 默认值为 NO xferlog_enable=YES # Make sure PORT transfer connections originate from port 20 (ftp-data). # 是否设定 FTP 服务器将启用 FTP 数据端口的连接请求 # ftp-data 数据传输, 21 为连接控制端口 connect_from_port_20=YES # 设定是否允许改变上传文件的属主,与下面一个设定项配合使用 # 注意, 不推荐使用 root 用户上传文件 #chown_uploads=YES # 设置想要改变的上传文件的属主, 如果需要,则输入一个系统用户名
Generated by Foxit PDF Creator © Foxit Software # 可以把上传的文件都改成 root 属主。 whoever : 任何人 #chown_username=whoever # 设定系统维护记录 FTP 服务器上传和下载情况的日志文件 # /var/log/vsftpd.log 是默认的,也可以另设其它 #xferlog_file=/var/log/vsftpd.log # 是否以标准 xferlog 的格式书写传输日志文件 # 默认为 /var/log/xferlog ,也可以通过 xferlog_file 选项对其进行设定 # 默认值为 NO #xferlog_std_format=YES # 以下是附加配置,添加相应的选项将启用相应的设置 # 是否生成两个相似的日志文件 # 默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下 # 前者是 wu_ftpd 类型的传输日志, 可以利用标准日志工具对其进行分析;后者是 vsftpd 类型的日志 #dual_log_enable # 是否将原本输出到 /var/log/vsftpd.log 中的日志, 输出到系统日志 #syslog_enable # 设置数据传输中断间隔时间, 此语句表示空闲的用户会话中断时间为 600 秒 # 即当数据传输结束后,用户连接 FTP 服务器的时间不应超过 600 秒。 可以根据实际情况对该值进行修 改 #idle_session_timeout=600 # 设置数据连接超时时间, 该语句表示数据连接超时时间为 120 秒,可根据实际情况对其个修改 #data_connection_timeout=120
Generated by Foxit PDF Creator © Foxit Software # 运行 vsftpd 需要的非特权系统用户,缺省是 nobody #nopriv_user=ftpsecure # 是否识别异步 ABOR 请求。 # 如果 FTP client 会下达 “async ABOR” 这个指令时,这个设定才需要启用 # 而一般此设定并不安全, 所以通常将其取消 #async_abor_enable=YES # 是否以 ASCII 方式传输数据。默认情况下,服务器会忽略 ASCII 方式的请求。 # 启用此选项将允许服务器以 ASCII 方式传输数据 # 不过, 这样可能会导致由 "SIZE /big/file" 方式引起的 DoS 攻击 #ascii_upload_enable=YES #ascii_download_enable=YES # 登录 FTP 服务器时显示的欢迎信息 # 如有需要, 可在更改目录欢迎信息的目录下创建名为 .message 的文件, 并写入欢迎信息保存后 #ftpd_banner=Welcome to blah FTP service. # 黑名单设置。如果很讨厌某些 email address ,就可以使用此设定来取消他的登录权限 # 可以将某些特殊的 email address 抵挡住。 #deny_email_enable=YES # 当上面的 deny_email_enable=YES 时,可以利用这个设定项来规定哪些邮件地址不可登录 vsftpd 服务器 # 此文件需用户自己创建, 一行一个 email address 即可 #banned_email_file=/etc/vsftpd/banned_emails # 用户登录 FTP 服务器后是否具有访问自己目录以外的其他文件的权限 # 设置为 YES 时, 用户被锁定在自己的 home 目录中, vsftpd 将在下面 chroot_list_file 选项值的 位置寻找 chroot_list 文件 # 必须与下面的设置项配合 #chroot_list_enable=YES # 被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录 # 从而有利于 FTP 服务器的安全管理和隐私保护。 此文件需自己建立 #chroot_list_file=/etc/vsftpd/chroot_list # 是否允许递归查询。 默认为关闭, 以防止远程用户造成过量的 I/O #ls_recurse_enable=YES
Generated by Foxit PDF Creator © Foxit Software # 是否允许监听。 # 如果设置为 YES ,则 vsftpd 将以独立模式运行,由 vsftpd 自己监听和处理 IPv4 端口的连接请求 listen=YES # 设定是否支持 IPV6 。如要同时监听 IPv4 和 IPv6 端口, # 则必须运行两套 vsftpd , 采用两套配置文件 # 同时确保其中有一个监听选项是被注释掉的 #listen_ipv6=YES # 设置 PAM 外挂模块提供的认证服务所使用的配置文件名, 即 /etc/pam.d/vsftpd 文件 # 此文件中 file=/etc/vsftpd/ftpusers 字段, 说明了 PAM 模块能抵挡的帐号内容来自文件 /etc/vsftpd/ftpusers 中 #pam_service_name=vsftpd # 是否允许 ftpusers 文件中的用户登录 FTP 服务器,默认为 NO # 若此项设为 YES ,则 user_list 文件中的用户允许登录 FTP 服务器 # 而如果同时设置了 userlist_deny=YES , 则 user_list 文件中的用户将不允许登录 FTP 服务器, 甚至连输入密码提示信息都没有 #userlist_enable=YES/NO # 设置是否阻扯 user_list 文件中的用户登录 FTP 服务器,默认为 YES #userlist_deny=YES/NO # 是否使用 tcp_wrappers 作为主机访问控制方式。 # tcp_wrappers 可以实现 linux 系统中网络服务的基于主机地址的访问控制 # 在 /etc 目录中的 hosts.allow 和 hosts.deny 两个文件用于设置 tcp_wrappers 的访问控制 # 前者设置允许访问记录, 后者设置拒绝访问记录。 # 如想限制某些主机对 FTP 服务器 192.168.57.2 的匿名访问, 编缉 /etc/hosts.allow 文件, 如在 下面增加两行命令: # vsftpd:192.168.57.1:DENY 和 vsftpd:192.168.57.9:DENY # 表明限制 IP 为 192.168.57.1/192.168.57.9 主机访问 IP 为 192.168.57.2 的 FTP 服务器 # 此时 FTP 服务器虽可以 PING 通,但无法连接 tcp_wrappers=YES 下面的内容将对一些限制和权限控制的选项进行更进一步的说明。
除了上述那些基本设定, 我们还可以在 vsftpd.conf 文件中添加更多的安全选项。 其中几 限制最大连接数和传输速率
Generated by Foxit PDF Creator © Foxit Software
在 FTP 服务器的管理中,无论对本地用户还是匿名用户,对于 FTP 服务器资源的使用 1. max_client 设置项 用于设置 FTP 服务器所允许的最大客户端连接数, 值为 0 时表示
不限制。例如 max_client=100 表示 FTP 服务器的所有客户端最大连接数不超过 100 个。
表示不限制。例如 max_per_ip=5 表示同一 IP 地址的 FTP 客户机与 FTP 服务器建立的最大
示不限制。 例如 local_max_rate=500000 表示 FTP 服务器的本地用户最大传输速率设置为
不限制。例如 ano_max_rate=200000 ,表示 FTP 服务器的匿名用户最大传输速率设置为 指定用户的权限设置
vsftpd.user_list 文件需要与 vsftpd.conf 文件中的配置项结合来实现对于 vsftpd.user_list ( 1 )设置禁止登录的用户账号
当 vsftpd.conf 配置文件中包括以下设置时, vsftpd.user_list 文件中的用户账号被禁止进 userlist_enable=YES userlist_deny=YES
userlist_enable 设置项设置使用 vsftpd.user_list 文件, userlist_deny 设置为 YES 表示 ( 2 )设置只允许登录的用户账号
当 vsftpd.conf 配置文件中包括以下设置时, 只有 vsftpd.user_list 文件中的用户账号能够 userlist_enable=YES userlist_deny=NO
Generated by Foxit PDF Creator © Foxit Software
userlist_enable 设置项设置使用 vsftpd.user_list 文件, userlist _deny 设置为 NO 表示
userlist_deny 和 userlist_enable 选项限制用户登录 FTP 服务器(使用 userlist_deny 选项 Userlist_enable=YES
Ftpusers 中用户允许访问 Userlist_enable=NO
Ftpusers 中用户禁止访问 Userlist_deny=YES
Ftpusers 中用户禁止访问(登录时可以看到密码输入提示, 但仍 Userlist_deny=NO
ftpusers 中用户禁止访问
Userlist_enable=YES 并
Ftpusers 中用户禁止访问
Userlist_enable=YES 并
Ftpusers 中用户禁止访问 修改默认端口
默认 FTP 服务器端口号是 21 ,出于安全目的, 有时需修改默认端口号, 修改 listen_port=4449 语句指定了修改后 FTP 服务器的端口号,应尽量大于 4000 。修改后访问 #ftp 192.168.57.2 4449 注意这里需加上正确的端口号了,否则不能正常连接。 设置用户组
Generated by Foxit PDF Creator © Foxit Software
有关 FTP 用户和用户组的重要性,我们在之前介绍 vsftpd 的时候便已经提到过。这里 #mkdir -p /home/try 递归创建新目录 #groupadd try 新建组 #useradd -g try -d /home/try try1 新建用户 try1 并指定家目录和属组 #useradd -g try -d /home/try try2 新建用户 try2 并指定家目录和属组 #useradd -g try -d /home/try try3 新建用户 try3 并指定家目录和属组 #passwd try1 为新用户设密码 #passwd try2 为新用户设密码 #passwd try3 为新用户设密码 #chown try1 /home/try 设置目录属主为用户 try1 #chown .try /home/try 设置目录属组为组 try #chmod 750 /home/try 设置目录访问权限 try1 为读, 写, 执行; try2 , try3 为读, 执行
由于本地用户登录 FTP 服务器后进入自己主目录, 而 try1,try2 try3 对主目录 /home/try 连接超时
配置空闲的用户会话的中断时间: 如下配置将在用户会话空闲 5 分钟后被中断, 以释放 Idle_session_timeout=300
配置空闲的数据连接的中断时间: 如下配置将在数据空闲连接 1 分钟后被中断, 同样也 Data_connection_timeout=60
Generated by Foxit PDF Creator © Foxit Software
配置客户端空闲时的自动中断和激活连接的时间: 如下配置将使客户端空闲 1 分钟后自 Accept_timeout=60 Connect_timeout=30 接下来,我们将对 vsftpd 的日志进行介绍。 常见的 vsftpd 日志解决方案 在 vsftpd.conf 中有如下内容定义了日志的记录方式: # 表明 FTP 服务器记录上传下载的情况 xferlog_enable=YES # 表明将记录的上传下载情况写在 xferlog_file 所指定的文件中, 即 xferlog_file 选项指定的文件 中 xferlog_std_format=YES xferlog_file=/var/log/xferlog # 启用双份日志。 在用 xferlog 文件记录服务器上传下载情况的同时, # vsftpd_log_file 所指定的文件,即 /var/log/vsftpd.log 也将用来记录服务器的传输情况 dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log vsftpd 的两个日志文件分析如下: /var/log/xferlog 记录内容举例 Thu Sep 6 09:07:48 2007 7 192.168.57.1 4323279 /home/student/phpMyadmin-2.11.0-all-languages.tar.gz b -i r student ftp 0 * c /var/log/vsftpd.log
Generated by Foxit PDF Creator © Foxit Software 记录内容举例 Tue Sep 11 14:59:03 2007 [pid 3460] CONNECT: Client "127.0.0.1" Tue Sep 11 14:59:24 2007 [pid 3459] [ftp] OK LOGIN;Client "127.0.0.1" ,anon password ”?"
/var/log/xferlog 日志文件中数据的分析和参数说明 参数名称 参数说明 Thu Sep 6 09:07:48 2007 当前时间
当前服务器本地时间, 格式为: 7 传输时间 传送文件所用时间,单位为秒 192.168.57.1 远程主机名称 /IP 远程主机名称 /IP 4323279 文件大小 传送文件的大小, 单位为 byte
/home/student/phpMyadmin- 文件名 传输文件名, 包括路径 b 传输类型
传输方式的类型, 包括两种: – 特殊处理标志
特殊处理的标志位,可能的值包括: i 传输方向
文件传输方向,包括两种: r 访问模式
用户访问模式,包括: student 用户名 用户名称
Generated by Foxit PDF Creator © Foxit Software ftp 服务名 所使用的服务名称,一般为 FTP 0 认证方式
认证方式,包括: * 认证用户 id 认证用户的 id , 如果使用 * , 则表示无法获得该 id c 完成状态
传输的状态: 最后,介绍常见的 FTP 命令,以及 FTP 数字代码的意义。
常见 FTP 命令及其功能 功能 FTP 命令 功能 ls 显示服务器上的目录 ls [remote-dir][local-file]
显示远程目录 remote-dir ,
get remote-file
从服务器下载指定文 mget remote-files
下载多个远程文件 (mget 命
put local-file
从客户端上传指定文 mput local-file
将多个文件上传至远程主 open 连接 FTP 服务器 mdelete [remote-file] 删除远程主机文件 close
中断与远程服务器的 mkdir dir-name 在远程主机中创建目录 open host[port]
建立指定的 ftp 服务 newer file-name
如果远程主机中 file-name
Generated by Foxit PDF Creator © Foxit Software cd directory
改变服务器的工作目 rename [from][to] 更改远程主机的文件名 lcd directory
在客户端上 ( 本地 ) 改 pwd
显示远程主机的当前工作 bye 退出 FTP 命令状态 quit 同 bye, 退出 ftp 会话 ascii
设置文件传输方式为
reget remote-file
类似于 get, 但若 local-file 存 binary
设置文件传输方式为 rhelp [cmd-name] 请求获得远程主机的帮助 ![cmd [args]]
在本地主机中交互 rstatus [file-name]
若未指定文件名, 则显示远 accout [password]
提供登录远程系统成 hash
每传输 1024 字节, 显示一
append local-file
将本地文件追加到远 restart marker
从指定的标志 marker 处, bye 退出 ftp 会话过程 rmdir dir-name 删除远程主机目录 case
在使用 mget 命令时, size file-name
显示远程主机文件大小, cd remote-dir 进入远程主机目录 status 显示当前 ftp 状态 cdup
进入远程主机目录的 system 显示远程主机的操作系统 delete remote-file 删除远程主机文件
user user-name
向远程主机表明自己的身
Generated by Foxit PDF Creator © Foxit Software my@email
dir
显示远程主机目录, help [cmd]
显示 ftp 内部命令 cmd 的帮 FTP 数字代码的意义 110 重新启动标记应答。 120 服务在多久时间内 ready 。 125 数据链路端口开启, 准备传送。 150 文件状态正常, 开启数据连接端口。 200 命令执行成功。 202 命令执行失败。 211 系统状态或是系统求助响应。 212 目录的状态。 213 文件的状态。 214 求助的讯息。 215 名称系统类型。 220 新的联机服务 ready 。 221 服务的控制连接端口关闭,可以注销。 225 数据连结开启, 但无传输动作。 226 关闭数据连接端口, 请求的文件操作成功。 227 进入 passive mode 。 230 使用者登入。 250 请求的文件操作完成。
Generated by Foxit PDF Creator © Foxit Software 257 显示目前的路径名称。 331 用户名称正确, 需要密码。 332 登入时需要账号信息。 350 请求的操作需要进一部的命令。 421 无法提供服务, 关闭控制连结。 425 无法开启数据链路。 426 关闭联机, 终止传输。 450 请求的操作未执行。 451 命令终止 : 有本地的错误。 452 未执行命令 : 磁盘空间不足。 500 格式错误, 无法识别命令。 501 参数语法错误。 502 命令执行失败。 503 命令顺序错误。 504 命令所接的参数不正确。 530 未登入。 532 储存文件需要账户登入。 550 未执行请求的操作。 551 请求的命令终止,类型未知。 552 请求的文件终止,储存位溢出。 553 未执行请求的的命令,名称不正确。
Generated by Foxit PDF Creator © Foxit Software
Generated by Foxit PDF Creator © Foxit Software |