配置安全(支持匿名)FTP服务器(vsftp)[翻译]
时间:2005-12-06 来源:山中无老虎
vsFTP包在/etc目录下有几个配置文件,其中vsftpd.ftpusers与vsftpd.user_list两个文件实际上禁止优先用户访问,如果userlist_deny=NO,那么只有在vsftpd.user_list中的用户才能访问FTP服务器,如果userlist_deny=YES,那么在vsftpd.user_list中的用户将不能访问FTP服务器,且根本不用检测口令就进行了禁止,此文件中的情况与参数userlist_deny(此参数对应于配置文件vsftpd.conf中的参数userlist_enabled,但二者可能相反)有关,而文件vsftpd.ftpusers中所列出的用户也处于对FTP服务器访问的限制状态,但只有在输入口令后才能提示,这两个文件的关系是先检测vsftpd.user_list文件,之后检测文件vsftpd.ftpusers文件。主配置文件为/etc/vsftpd/vsftpd.conf文件。内容如下:
# vsFTP服务器配置文件位置: /etc/vsftpd/vsftpd.conf
#
# 下面的设置文件表示是否允许匿名登录
anonymous_enable=YES
#
# 是否允许在FTP服务器中具有普通账号的用户进行实名登录
local_enable=YES
#
# 是否使登录用户对系统具有写入的权限,此选项比较危险,可以会使系统出现问题
write_enable=YES
#
# 默认的umark(用户对文件的访问级别掩码)对于本地用户为077。如果你的用户有这方面的要求(022这个权限级别补大多数别的ftpd使用),你可以将之修改为022。
local_umask=022
#
# 下面这个被注释掉的语句的含义是允许匿名用户可以上传文件,如果打开他只有在上述的全局写权限(指umask为077)被激活的情况下才会有一些影响。也就是说你很明显需要给FTP用户创建一个可写的目录,目录创建的位置在/var/ftp目录下,名字可以随意。
#anon_upload_enable=YES
#
# 下面注释掉的配置含义为可以由匿名用户创建新的目录
#anon_mkdir_write_enable=YES
#
# 激活目录信息,当一个远程用户进入一个正确的目录时通知给远程用户的消息,可以使用message_file=FileName命令来指定不同的文件名。????
dirmessage_enable=YES
#
#上传或下载时记录日志文件,通常记录在/var/log/vsftpd.log中,也可使用xferlog_file=FileNmae命令指定不同的文件。
xferlog_enable=YES
#
# 定义20端口为优化的ftp数据传输端口
connect_from_port_20=YES
#
#下面被注释的配置的含义为:可以为匿名上传的文件指定一个文件所有者,注意:不推荐使用ROOT用户做为文件所有者的设置。
#chown_uploads=YES
#chown_username=whoever
#
# 下面语句可以定义FTP的日志文件,下面仅是vsftpd的默认日志文件。
#xferlog_file=/var/log/vsftpd.log
# 下面的配置可以为你提供一套标准的ftpd xferlog格式的日志文件用于记录上传及下载,可以将其关闭。
xferlog_std_format=YES
#
#下面的配置用于设置空闲会话超时的时间间隔。
#idle_session_timeout=600
#
# 下面的配置用于设置数据连接超时的时间间隔。
#data_connection_timeout=120
#
# 下面的配置含义为:定义一个系统自己的唯一用户,以便FTP服务器可以把他用做一个完全独立和无特殊授权的用户,LINUX推荐这一配置。
#nopriv_user=ftpsecure
#
# 激活下面的配置,服务器针接受并行ABOR请求,因为安全性的原因,并不推荐这一配置(这条代码并非没有价值),不激活他,那么可能会使一些旧版本的FTP混乱。
#async_abor_enable=YES
#
# 默认情况下,服务器承认ASCII并实际上这种请求被忽略了。打开下面的选项,当在ASCII模式下时,服务器实际上在处理文件时变乱了。????(Turn on the below options to have the server actually do ASCII mangling on files when in ASCII mode.)注意当打开ASCII下载时,可能会使一些恶意的远程团体通过在ASCII模式下执行命令“size/big/file”浪费你的I/O资源。因为你希望激活ASCII上传(使用阻断去阻止上传角本)而使ASCII选项分为上传、下载两个部分,没有了ASCII下载和大小的DoS风险。ASCII将会使客户端变得混乱。下列的选项主要用于在ASCII方式中传输文件,通常不需要这样做,即使文本也是如此,除非要保留一定类型的格式。
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
#下面的配置用于显示登录到FTP时的屏幕提示语。
#ftpd_banner=Welcome to blah FTP service.
#
# 启用下面的两个命令,可以在/etc/vsftpd.banned_emails中建立一列不让访问的匿名口令,拒绝黑客的利用自动化工具攻击,从而避免FTP服务器被ping到死机。
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#可以通过下面的参数清楚的设置本地用户是否可以更换自己的主目录。如果chroot_local_user是YES,用户自己将被限制在自己个人的主目录中(或由chroot_list_file所指定的目录中)
#chroot_list_enable=YES
chroot_local_user=YES #用户将被限制,不能更换目录(注释不能写在正常语句之后)。
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# 如果激活下面的选项,则允许用户在任何目录下使用ls –R来查看目录的内容,他默认是关闭的,多次登录FTP服务器的用户可能因为在所有会话中运行ls –R命令而产生大量的负载。
#ls_recurse_enable=YES
pam_service_name=vsftpd
下面的配置检测在文件vsftpd.user_list文件中禁止使用的用户名,如为NO,则不检测,与userlist_deny相对应。
userlist_enable=YES
#enable for standalone mode
listen=YES
下面这句话表示与tcp_wrapper绑定,则在hosts.allow中的用户可以进行设置允许或不允许访问ftp服务,详细设置见后。
tcp_wrappers=YES