1,检测是否安装vsftpd
rpm -q vsftpd
安装vsftpd:rpm -ivh vsftpd文件名
2,建立虚拟用户/口令文件(建好后删除此文件)
vi logins.txt
格式:奇数行为用户名 偶数行为用户密码
例:mike
passwdmike
john
passwdjohn
3,根据2生成系统的认证文件(用户数据库),保存在/etc/vsftpd下
利用db_load命令,如果此命令需安装db4-utils的RPM包
生成认证文件:db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
生成后,为了安全,设置只有ROOT可以读取更改:chmod 600 /etc/vsftpd/vsftpd_login.db
4,生成PAM验证文件
在/etc/pam.d下建立配置文件,文件名为:vsftpd.pam,内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
5,Vsftpd运行方式是所有的虚拟用户都默认成为系统帐户, 并且为这个系统帐户映射一个本地文件夹。换句话说,所有虚拟用户的登录,LINUX都认为是一个系统帐户,登录后虚拟用户处在映射目录下(上传/下载的文件都放在系统帐户所映射的文件夹下)。
建立系统帐户,并指定帐户映射的文件夹:useradd -d /home/ftpsite vsftpd_virtual
为了安全,把此文件夹ROOT可控:chmod 700 /home/ftpsite
6,设置vsftpd.conf配置文件,路径:/etc/vsftpd/vsftpd.conf
(1) 禁用匿名登录:anonymous_enable=NO
(2) 加入:guest_enable=YES 允许虚拟登录
guest_username=vsftpd_virtual (第5步)
ftpd_banner=welcome to ftp 设置登录问候语
(3) 更改原有:pam_service_name=vsftpd.pam (第4步)
(4) 开启原有:idle_session_timeout=10(单位:秒,当用户10秒钟内没有动作,自动断开FTP)
7,启动vsftpd服务,用chkconfig --level 35 vsftpd on语句设置在35级别下自动启动服务。
LINUX分为7个级别:0表示关机,6表示重启(init 6重启语句),1表示单用户(用于系统维护),3表示多用户的服务器模式(字符界面),5表示图形登录模式
8,用FTP软件,现在虚拟用户可以登录了(如果连接不到FTP,可能是防火墙问题,请见第9步)。但是还不能浏览、上传、更改,因为没给具体用户配置权限(见第10步)。
9,进入图形界面,“系统设置”--“安全级别”--“禁用防火墙”。如果你不想禁用,可以选中“SSH”和“FTP”和“eth0”
10,具体用户配置权限(mike为例)
A,在vsftpd.conf中添加:user_config_dir=/etc/vsftpd_user_conf 指明用户配置文件存放的路径,所有用户的配置文件都以用户名为配置文件名,存放在此目录下。(重启服务)
B,mike配置文件:
local_root=/home/ftpsite/mike (应先建立好此文件夹)
anon_world_readable_only=no (浏览/下载)
anon_upload_enable=yes (上传)
anon_mkdir_write_enable=yes (建立/删除目录)
anon_other_write_enable=yes (改名/删除文件)
C,此时连接FTP的MIKE帐号还是不能浏览上传等工作,这是因为/home/ftpsite/mike 文件夹的所属是ROOT,所以要把此文件夹改成vsftpd_virtual映射系统用户:chown vsftpd_virtual.vsftpd_virtual /home/ftpsite/mike