免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2089 | 回复: 1
打印 上一主题 下一主题

三、设置VSFTP服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-15 09:22 |只看该作者 |倒序浏览
三、设置VSFTP服务器
(一)创建配置文件
Vsftp对用户进行了三种类型的分类:
·           匿名用户
这种类型的用户,只能执行ftp提供的服务,它没有shell.
·           本地用户
·           这种类型的用户,即可以执行ftp提供的服务,权限匿名用户
要大,又可以登录系统(有shell)
·           虚拟用户
执行ftp提供的服务,权利和本地用户一样,关键是不能登录系统(有shell)

1、配置文件格式
以“#“的字符开头的行是注释行。每个选项设置为一行,格式为”option=value”,注意”=”两边不能留有空白符。
2、开始配置
vsftpd的配置文件是/etc/vsftpd/vsftpd.conf

#============================  关于连接的设定值:
#========== standa lone方式 的设置
#  表示vsftpd是否以standa lone方式启动(以ipv4的方式启动),
#  在正式场合下,应该以这种方式启动。如果这个选项
listen=YES
#  表示vsftpd是否以standa lone方式启动(以ipv6的方式启动),
#  在正式场合下,应该以这种方式启动。如果这个选项
listen_ipv6=YES
#  此选项在vsftpd 是以 stand alone 方式启动模式有效,指定服务器在那个网络接口上提供ftp服务
#  如果没有此选项,那么就在所有的网络接口提供ftp服务。比如当一台服务器有2个网卡,一个网卡
#  连接到内网,1个网卡连接到外网,当如果仅仅想为内网提供ftp服务,这个选项就有效。
#list_address=localhost
#  此选项在vsftpd 是以 stand alone 方式启动模式有效,指定服务器控制连接的监听端口
listen_port=21
#  此选项在vsftpd 是以 stand alone 方式启动模式有效
#  同一时间,同一时间最多允许有多少 client 可以同時连上 vsftpd,如果设置为0,表示任意多个
max_clients=100
#  此选项在vsftpd 是以 stand alone 方式启动模式有效
#  同一时间,同一个IP同一时间最多允许有多少可以同時连上 vsftpd,如果设置为0,表示任意多个
max_per_ip=1
#  当vsftp以standa lone方式启动的时候,是否以后台方式运行
#  正式场合下,我认为不应该以后台方式运行。
background=NO


#========= 以下设置对lone 和xinet 2种模式都有效

#=========FTP主动传输模式设置
#  是否设置主动传输模式(PORT模式)
port_enable=YES
#  在PORT模式有效,服务器是否已端口20来和客户端进行数据连接
connect_from_port_20=YES
#  在PORT模式有效,设置服务器设置的端口来和客户端进行数据连接
ftp_data_port=20
#  是否启动PORT模式下的安全检查。启动,应该提高安全性。
port_promiscuous=YES
#=========FTP被动传输模式设置
#  是否设置被动传输模式(PASSIVE模式)
pasv_enable=YES
#  在PASSIVE模式有效,设置服务器在规定的范围产生端口和客户端进行数据连接,设置0表示任意
#  如果把端口范围设置在比较高的范围内,有助于提高安全性。
pasv_min_port=50000
pasv_max_port=60000
#  是否启动PASV模式下的安全检查。启动,应该提高安全性。
pasv_promiscuous=YES
#  此选项为一个IP地址,作为PASV命令的响应。如果设置,这表明可以使用其他的FTP服务器来
#  进行数据传输,而此FTP服务器只是来进行命令传输。???解释有错误,有什么作用??
#pasv_address=none

#======== 超时选项
#  单位是秒,如果client尝试连接我们的vsftpd命令通道超过 60 秒,则不等待,强制 断线咯。
connect_timeout=60
#  如果 client与Server间的资料传送在 300 秒內都无法传送成功,那 Client 的连线就会被我们的
#  vsftpd 强制剔除!
data_connection_timeout=300
#  如果使用者在 300 秒內都沒有命令动作,强制离线!
idle_session_timeout=300
#  在规定监听的时间内,都没有连接发生,就取消连接,这主要保护内存资源。
accept_timeout=60

#======== ASCII模式
#  控制是否使用ASCII的格式来下载文件
ascii_download_enable=NO
#  控制是否使用ASCII的格式来上传文件
ascii_upload_enable=NO

#======== 其他的连接设置
#  指示vsftpd管理和维护用户会话。
session_support=NO
#  默认情况,当使用ls显示文件目录列表,文件属主都是以数字ID显示,如果设置,那么vsftpd
#  会转化成真实的名字,这样可以方便用户查看。
text_userdb_names=NO
#  设置日期显示格式,默认是GMT格式
user_localtime=YES
#  是否允许列举目录
dirlist_enable=YES
#  是否显示“.”开头的文件
force_dot_files=YES
#  ===提示信息
ftpd_banner=welcome ftp server !!!!
banner_file=/etc/vsftpd.banner_file
dirmessage_enable=YES
message_file=.message

#============================ 关于匿名者登入的设定值
#  设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,底下的所有
#  相关設定都需要将这个设定为anonymous_enable=YES 之后才会生效!
anonymous_enable=YES
#  允許 anonymous 具有下载可读文件的权限。设置NO,表示可以浏览整个服务器的文件系统!
anon_world_readable_only=YES
#  控制匿名用户是否拥有除了上传和新建目录以外的其他权限,如删除,更名等。
anon_other_write_enable=NO
#  是否让 anonymous 具有建立目录的权限?预设值是 NO!如果要设定为 YES,
#  那么 anony_other_write_enable 必须设定为 YES !当然在文件系统上,
#  FTP匿名用户必需对新目录的上层目录拥有写权限。
anon_mkdir_write_enable=NO
#  是否让 anonymous 具有上传资料的功能,预设是 NO,如果要能上传,要要满足另两个条件:
#  write_enable=YES 必须设定;在文件系统上,FTP匿名用户对某个目录有写权限。
anon_upload_enable=NO
#  -限制 anonymous 的权限!如果是 077 则 anonymous 传送过來的档案
#  -权限是 -rw------- 喔!
anon_umask=177
#  是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不
#  同的用户所有,用户由chown_username参数指定。此选项默认值为NO。
chown_uploads=NO
#  指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。
#  不推荐使用root用户。
chown_username=ftp
#  将某些特殊的 email address 抵挡住,不让那些 anonymous 登入!
#  如果以 anonymous 登入主机时,不是会要求输入密码吗?密码不是要您
#  输入您的 email address吗?如果你很讨厌某些 email address ,
#  就可以使用这个设定來将他取消登入的权限!需与下个设定项目配合:
deny_email_enable=YES
#  如果 deny_email_enable=YES 時,可以利用这个设定项目來规定那个
#  email address 不可登入我们的 vsftpd 喔!在上面设定的档案內,
#  一行输入一个 email address 即可!
banned_email_file=/etc/vsftpd.banned_emails
#  当设定为 YES时,表示 anonymous 将会略过密码检验步骤,
#  而直接进入 vsftpd 伺服器內喔!所以一般预设都是 NO 的!
no_anon_password=NO
#  当no_anon_password设置NO时候有效,这时再开启密码读取功能
secure_email_list_enable=YES
#  当secure_email_list_enable设置YES时候有效,密码就存放在下面指定文件中
email_password_file=/etc/vsftpd.email_passwords
#  -这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度,
#  如果是 0 则不限制(由最大带宽所限制),如果您想让 anonymous 有
#  30 KB/s 的速度,可以设定『anon_max_rate=30000』
anon_max_rate=30000
#  匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。 
ftp_username=ftp
#  -设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。
#  -主配置文件中默认无此项,默认值为/var/ftp/。
anon_root=/var/ftp/

#========================= 关于本地用戶登入者的设定值:
#  这个设定值必须要为 YES 时,在 /etc/passwd 內的帐号才能以
#  本地用戶的方式登入我们的 vsftpd 主机喔!
#  下面所有的关于本地用户的设置都必须在local_enable=YES有效
local_enable=YES
#  为使列入userlist_file的使用者禁止或允许登录FTP服务器,应该设置
userlist_enable=YES
#  该设置具体决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。
#  此选项在userlist_enable 选项启动后才生效。如果为YES,将禁止文件中的用户登录,
#  如果为NO,将只允许在文件中的用户登录FTP服务器。
userlist_deny=YES
#  userlist_enable=YES 时,在这个档案內的帐号都无法使用 vsftpd !
#  userlist_enable=NO 时,只有在这个档案內的帐号才能使用 vsftpd !
userlist_file=/etc/vsftpd.user_list
#  将使用者限制在自己的家目录之內(chroot)!这个设定在 vsftpd
#  如果设置YES,所有的本地用户,都将限制在家目录。
chroot_local_user=YES
#  与chroot_local_user配合使用,好像是使用/etc/passwd中密码来进行验证???
passwd_chroot_enable=YES
#  为使chroot_list_file有效,可以设置为 YES
chroot_list_enable=YES
#  如果 chroot_list_enable=YES 那么就可以设定这个项目了!
#  当chroot_local_user=YES,
#chroot_list_file里面规定的实体用戶将不会被限制在自己的家目录內!(chroot)
#  当chroot_local_user=NO
#chroot_list_file里面规定的实体用戶会被限制在自己的家目录內!(chroot)
#  一行一个帐号即可!
chroot_list_file=/etc/vsftpd.chroot_list

#  定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无。
#  使用后面的家目录,来作为起始目录
local_root=
#  实体用戶的传输速度限制,单位为 bytes/second, 0 为不限制。
local_max_rate=0
#  定义本地用户的配置文件所在的目录,这个目录下的每个文件名和用户名是相同的。文件的内容会
#  覆盖总配置文件的内容。
user_config_dir=/etc/vsftpd/userconf
#  -限制 本地用户的权限!如果是 077 则 本地用户传送过來的档案
#  -权限是 -rw------- 喔!
local_umask=077

#========================= 关于虚拟用戶登入者的设定值
#  若是启动这项功能,所有的非匿名登录者都视为guest
guest_enable=NO
#  定义vsftpd的guest用户在系统的用户名
guest_username=ftp


#========================= 系统安全设置
#==== FTP服务器采用SSL加密方式传输
#启动ftp是否支持ssl,如果设置,那么ftp客户端也必须要使用带ssl协议的软件。
ssl_enable=YES
#  当ssl_enable=YES有效
#  是否允许匿名用户通过ssl登录服务器
allow_anon_ssl= YES
#  当ssl_enable=YES 、allow_anon_ssl=YES 有效
#  是否强制匿名用户通过ssl传输数据
force_anon_data_ssl=NO
#  当ssl_enable=YES 、allow_anon_ssl=YES 有效
#  是否强制匿名用户通过ssl登录服务器
force_anon_logins_ssl= YES
#  当ssl_enable=YES有效
#  是否强制本地用户通过ssl传输数据
force_local_data_ssl=YES
#  当ssl_enable=YES有效
#  是否强制本地用户通过ssl登录服务器
force_local_logins_ssl=YES
#  当ssl_enable=YES有效
#  FTP是否支持SSL V2
ssl_sslv2=YES
#  当ssl_enable=YES有效
#  FTP是否支持SSL V3
ssl_sslv3=YES
#  当ssl_enable=YES有效
#  FTP是否支持SSL TLS V1
ssl_tlsv1=YES
# 当ssl_enable=YES有效
# 设置对应的ssl证书的位置
rsa_cert_file=/etc/vsftd.ssl.pem

#  当显示vsftpd的进程状态的时候,是否详细显示所有的状态,处于安全目的,关闭
setproctitle_enable=NO
#  启动vsftpd是否以启动这个进程的用户的权限执行,如果设置,有安全隐患
run_as_launching_user=NO
#  检查每个连接的用户是否存在合法的shell,设置化,如果用户没有合法的shell,禁止连接,
#  设置应该增加安全,到底实际上有什么安全隐患??????
check_shell=YES
#-当然我们都习惯支援 TCP Wrappers !所以预设为 YES 吧!
tcp_wrappers=YES
#  -这个是 pam 模组的名称,我们放置在 /etc/pam.d/vsftpd 即是这个东东!
pam_service_name=vsftpd
#  是否允许执行FTP相关的写入命令,比如STOR,DELETE,MKD,…
write_enable=YES
#  -如果您的 FTP client 有 "async ABOR" 这个指令时,这个设定才需要启用
#  -一般來说,由这个设定并不安全,所以通常都是将他取消的!
async_abor_enable=NO
#  是否允许使用 ls –R,由于在大型的FTP执行这个命令将耗费大量的资源,因此有安全隐患
ls_recurse_enable=NO
#  是否隐藏文件的所有者信息,如果设置,在执行ls –l 的时候,将会显示件的所有者信息为ftp。
hide_ids=YES
# -这个设定项目比较危险一点~当为 YES 时,表示每个建立的连线
# -都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过,
# -除非您的系统比较安全,而且硬件配置比较高,否则容易耗尽系统资源喔!
# 一般建议为 NO 啦!
one_process_model=NO
# -我们的 vsftpd 预设以 nobody 作为此一服务执行者的权限。因为 nobody 的权限
# -相当的低,因此即使被入侵,入侵者只能取得 nobody 的权限喔!
nopriv_user=nobody
#  指向一个空目录,用户对这个目录没有任何权限,当vsftpd不访问文件系统的时候,
#  用户登录后,被限制在这个目录中,通常用户vsftpd的维修呀
#secure_chroot_dir=/usr/share/empty

#======配置vsFTP日志使用情况
# vsFTP日志记录采用三种方式,都是以相应的开关来进行配置

# === 设置xferlog日志相关的
# 是否开启把日志记录到xferlog
#  当设定为 YES 时,使用者上传下载档案都会被记录起來。记录非常完整
xferlog_enable=NO
# 在xferlog_enable=YES 有效
# -这个是是否以标准的格式写入xferlog日志
xferlog_std_format=YES
# 在xferlog_enable=YES 有效
# -这个是设置写入xferlog的文件名
xferlog_file=/var/log/vsftpd.log

# === 和vstfpd自己的日志相关的
#  是否开启把日志记录到vstfpd自己的日志格式中
dual_log_enable=NO
#  在dual_log_enable=YES有效,
#  记录的时候,是否要记录连接等信息
log_ftp_protocal=NO
#  在dual_log_enable=YES有效,
#  指定记录的文件名
vsftpd_log_file=/var/log/vsftpd.log

#=== 以syslog方式来记录
#是否开启把日志写入到syslog
syslog_enable=YES

(二)为vsftp运行,创建必要的环境
按照vsftp.conf中对应的信息,来创建需要的文件和目录

mkdir /usr/share/empty
#把所有需要访问ftp的用户放在ftp组下
addgroup ftp
useradd nobody
#所有访问ftp的用户应该没有shell
adduser -d /var/ftp -g ftp -s /sbin/nologin ftp
mkdir /var/ftp
#也就是ftp用户的家目录属组和属主都是root,为了安全。这步还是需要的
chown root.root /var/ftp
#更改权限,去掉属组和其他人的写权限
chmod og-w /var/ftp
#然后创建供匿名用户上传文件的目录,并设定权限
mkdir /var/ftp/pub
chmod o+w /var/ftp/pub



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/98018/showart_1964300.html

论坛徽章:
0
2 [报告]
发表于 2009-09-25 19:46 |只看该作者
很全面,刚才看着配了一个服务器!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP