搭建FTP服务器

 2015年05月25日    565     声明


FTP 是File Transfer Protocol(文件传输协议)的英文简称,用于Internet上文件的传输(上传和下载),支持FTP协议的服务器就是FTP服务器。本文介绍在Linux环境下搭建一个FTP服务器。

搭建FTP服务器首先需要一个服务器端的FTP软件,Linux下较出名FTP服务软件有wuftp、vsftpd、proftp等,我们选择vsftpd。vsftpd是一款在Linux发行版中很受欢迎的FTP服务器程序,其特点是小巧轻快,安全易用,且完全免费开源ftp软件。接下来我们将以vsftpd为例,来演示在CentOS6.5下安装配置FTP服务的过程。


1.安装vsftpd

执行以下命令安装vsftpd

yum install vsftpd pam* db4*-y

将vsftp配置为系统服务

chkconfig --level 35 vsftpd on


2.配置vsftpd服务的宿主

useradd ftproot -s /sbin/nologin -M

这个ftproot只是用来替换root的,并不需要登录


3.配置vsftpd虚拟宿主帐号

useradd ftpuser -s /sbin/nologin -M

ftpuser是个虚拟帐户,本身是不用登录的


4.配置vsftpd.conf

vi编辑配置文件。配置vsftpd.conf前,建议先执行命令cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak对文件进行备份

vi /etc/vsftpd/vsftpd.conf

编辑以下项

anonymous_enable=NO   #禁止匿名用户访问。此项默认是允许的
chroot_list_enable=YES     #禁止FTP用户离开自己主目录。此项默认是不启用的
#增加
user_config_dir=/etc/vsftpd/vconf/userlocal    #设定虚拟用户个人vsftp的配置文件存放路径。需要注意:配置文件名必须和虚拟用户名相同
ftp_data_port= 4040         #ftp服务端品号  
reverse_lookup_enable=NO
pasv_enable=yes
pasv_min_port=48790
pasv_max_port=48800
listen_port=40000 #FTP服务监听的端口号
5


5.配置ftp虚拟用户

创建在前面配置文件中配置的,用户配置文件夹,并建立一个虚拟用户文件

mkdir /etc/vsftpd/vconf
touch /etc/vsftpd/vconf/vUser

配置虚拟用户

vi /etc/vsftpd/vconf/vUser
itbiluFtp           //用户名 
123456             //密码


6.配置数据库及权限

生成数据库

db_load -T -t hash -f /etc/vsftpd/vconf/vUser /etc/vsftpd/vconf/vUser.db

设置数据库文件权限

chmod 600 /etc/vsftpd/vconf/vUser
chmod 600 /etc/vsftpd/vconf/vUser.db


7.配置/etc/pam.d/vsftpd文件

执行/etc/pam.d/vsftpd命令,增加如下配置项

auth sufficient pam_userdb.so db=/etc/vsftpd/vconf/vUser
account sufficient pam_userdb.so db=/etc/vsftpd/vconf/vUser


8.配置用户文件

根据第4步vsftpd.conf的配置,建立用户配置文件夹

mkdir /etc/vsftpd/vconf/userlocal

根据5步配置的虚拟用户名,建立用户文件

touch /etc/vsftpd/vconf/userlocal/itbiluFtp

编辑该文件

vi /etc/vsftpd/vconf/userlocal/itbiluFtp

配置如下

local_root= /tmp   #需要指定的网站根目录,例如www.itbilu.com所在文件夹为/www/itbilu
anonymous_enable=NO     #禁止匿名用户访问
write_enable=YES	#开启写权限
local_umask=022	       #上传后文件的权限掩码
anon_upload_enable=NO	#关闭匿名下载
anon_mkdir_write_enable=NO	#关闭匿名创建文件夹
idle_session_timeout=60	#会话自动关闭时间 60是因分钟
data_connection_timeout=120	#数据延迟时间
max_clients=10	#最大连接数
max_per_ip=5	#同一个ip同时允许5个IP联机
local_max_rate=1048576	#实体用户传输速度限制,单位B/s。0代表不限制


9.完成配置

执行命令:service vsftpd restart 重启vsftpd服务
执行命令:netstat -tulnp查看vsftpd服务状态

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name          
tcp        0      0 0.0.0.0:40000               0.0.0.0:*                   LISTEN      27287/vsftpd 

如上所示,如果有40000端口的监听说明vsftpd服务配置完成