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服务配置完成