1:利用yum源安装 yum install vsftpd 2:修改配置文件 vi /etc/vsftpd/vsftpd.conf , 修改vsftpanonymous_enable=NO(不开启匿名登录) 添加 guest_enable=YES (开启虚拟用户) guest_username=www (虚拟用户映射到本地的用户) user_config_dir=/etc/vsftpd/vsftpd_user_conf (虚拟用户的配置文件目录) 3:建立虚拟帐号和用户口令文件 a: 建立一个包含虚拟用户名及其口令的文本文件 vi /etc/vsftpd/logins.txt,文件中奇数行为用户名、偶数行设置密码,(可以有多个用户名和密码)如下: ftpuser #用户名 userpassword #密码 b:生成vsftpd的认证文件: db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db 如果提示 db_load: command not found,则利用yum安装yum install db4-utils。 chmod 600 /etc/vsftpd/vsftpd_login.db c:建立 user_config_dir 文件目录,并创建以用户名命名的配置文件 mkdir /etc/vsftpd/vsftpd_user_conf vi /etc/vsftpd/vsftpd_user_conf/ftpuser virtual_use_local_privs=YES 设置为 YES 时,虚拟用户使用与本地用户相同权限, 设置为 NO 时,虚拟用户使用与匿名用户相同权限 write_enable=YES local_root=/data/www/ #此用户的ftp目录,请确保上面配置的本地用户www对此目录有相应权限。 4:配置PAM文件 vi /etc/pam.d/vsftpd输入以下内容并保存 auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login 5:启动vsftp service vsftpd start 6: 防火墙相关皮配置。 FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive ( 也就是PASV,被动方式)。 主动模式下FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客 户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收 数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而 是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客 户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口 进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 因为大部分ftp客户端软件都是被动模式,所以我们要根据被动模式开启防火墙中的相应端口。 首先,设置被动模式打开的 vi /etc/vsftpd/vsftpd.conf 添加 pasv_min_port=3300 #设置被动模式的端口范围 pasv_max_port=3310 #设置被动模式的端口范围 然后更改防火策略 vi /etc/sysconfig/iptables 添加 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3300:3310 -j ACCEPT 最后重启服务使其生效 service vsftpd rstart service iptables restart 除了防火墙,selinux也会阻止ftp登录,可以关闭selinux。 ------到此vsftp的配置完毕。 |
转载于:https://blog.51cto.com/peishuangcai/463538