把在搭建ftp服务器的过程跟大家分享,需求描述:虽然是内部使用的FTP服务器,但是还是描述一下要求。
每人一个ftp账户,然后大家都可以访问一个公共的目录,并可以在此公共目录下上传、下载、删除文件,每个账户都可以创建自己的个人目录及文件。服务器使用的是联想的M系列,操作系统RedHat免费版。
既然使用Redhat,自然FTP使用vsftp,据说是very secret FTP的意思。redhat5下vsftp默认的安装目录为:/etc/vsftpd,相关的配置文件为:/etc/vsftpd/vsftpd.conf,直接把配置文件的内容贴出来:
#被动模式启动,仅占用一个端口 pasv_enable=YES #YES代表vsftpd以standalone启动 listen=YES #修改端口号为1111 listen_port=1111 #active模式下FTP服务端使用的端口为20 connect_from_port_20=YES #是否使用本地时间,据说不启用的话会晚8小时 use_localtime=YES #不允许匿名登录 anonymous_enable=NO #不允许匿名用户上传 anon_upload_enable=NO #不允许匿名用户建立目录 anon_mkdir_write_enable=NO #/etc/passwd内的帐号可以登录,必须为YES,否则本地用户无法登录了 local_enable=YES #用户限制在自己的目录内,不允许查看系统目录 chroot_list_enable=YES #指定只允许访问自己目录的用户列表文件 chroot_list_file=/etc/vsftpd/chroot_list #ftpusers文件中的用户禁止登录FTP服务器 userlist_enable=YES #userlist_enable为yes时生效,userlist_file中指定的用户无法登录 userlist_deny=YES #不允许登录的用户列表文件 userlist_file=/etc/vsftpd/user_list #允许用户上传数据 write_enable=YES #据说实际的权限要用7777减去这个值得到 local_umask=0022 #上传下载记录日志 xferlog_enable=YES #日志记录文件 xferlog_file=/var/log/xferlog #日志文件格式化 xferlog_std_format=YES #pam模块的名称,/etc/pam.d/vsftpd pam_service_name=vsftpd #允许修改上传文件的属主的配置 #chown_uploads=YES #chown_username=whoever #启用TCP Wrapper,据说是一种网络防火墙软件 tcp_wrappers=YES #用户进入某个目录时,默认显示.message dirmessage_enable=NO #登入FTP后的欢迎信息 ftpd_banner=Welcome to FTP Server!
对于每个属性都是做什么用的都有简单介绍,这些东西,都是可以在网上找到的。只是将其中几个做一下简单介绍:listen=YES
意味着vsftpd以独立线程的模式启动,启动时不依赖于其他的线程,个人认为一般情况下就这么启动就挺好。另外的模式,没有使用过,但是跟其他的有依赖,个人感觉可能会比较容易出现问题。listen_port=1111
指定vsftp的端口号为1111,这个值默认不设的话,vsftp自然是21端口。上述配置中,完全限制了匿名用户的登录及查看,并且将操作系统的root等用户也完全限制不允许登录了。vsftpd的用户使用的是实体的linux操作系统用户,用户是完全不允许登录操作系统的,一定程度上保证了安全性。并且将每个用户限定在自己的目录下,不允许查看别人的目录,也提高了ftp的安全性。