本人Linux菜鸟一枚,最近项目中有用到对ftp的操作,无奈身边一穷二白,什么都需要从头开始,各种百度和查询资料,千辛万苦,排除万难。终于搭建好服务,顺利访问。
现总结一二,以备不时之需。
前言:
首先我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
首先服务器搭建:
1.检查vsftpd驱动是否正确安装
rpm -qa | grep vsftpd
2.确认安装PAM服务相关部件
pam-devel*******.rpm
rpm -qa | grep pam*
rpm -ivh pam-devel *******.rpm
本地用户登录
公司linux下自带vsftpd启动即可
service vsftpd start
虚拟用户登录
1. 添加虚拟用户口令文件
[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt
添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
bobyuan #用户名
123456 #密码
markwang #用户名
123456 #密码
2. 生成虚拟用户口令认证文件
将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。
首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。
[root@CentOS5 /]#rpm –qa |grep db4-utils
[root@CentOS5 /]#rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm
下面使用db_load命令生成虚拟用户口令认证文件。
[root@CentOS5 /]#db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
3. 编辑vsftpd的PAM认证文件
在/etc/pam.d目录下,
[root@CentOS5 /]#vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
4. 建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser
[root@CentOS5 /]#chmod 700 /home/vftpsite
5. 配置vsftpd.conf(设置虚拟用户配置项)
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #开启虚拟用户
guest_username=vftpuser #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
6. 给虚拟用户配置权限文件
/home/vftpsite/bobyuan:虚拟用户登录目录
别忘了设置权限(文件是root用户创建虚拟用户没有写入权限)chown -R vftpuser.vftpuser/home/vftpsite/bobyuan
/etc/vsftpd/vconf 下给每个用户创建个权限文件,这个文件要和虚拟用户名称相同
例子:
文件名:bobyuan
local_root=/home/vftpsite/bobyuan
local_umask=022
idle_session_timeout=600
data_connection_timeout=120
max_client=10
max_per_ip=5
local_max_rate=50000
pam_service_name=vsftpd
7. 重启vsftpd服务
[root@CentOS5 /]#service vsftpd restart
8. 测试虚拟用户登录FTP
C:\User\Administrator>ftp 192.168.120.240
连接到192.168.120.240。
220 Welcome to BOB FTP server
用户(192.168.120.240(none)):markwang
331 Please specify the password.
密码:
230 Login successful.
推荐阅读:
Ubuntu实用简单的FTP架设
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置
RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例