CentOS6.5下搭建FTP服务
一、FTP协议
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
二、FTP服务的账号类型
(1).匿名用户
客户端访问FTP资源时,可以在没有服务器的账户及密码的下,使用匿名(anonymous)身份获取公共资源,但权限较小。
(2).实体用户
实体用户(real user)是指FTP服务器的本地账户,使用/etc/password中的用户名为认证方式。
(3).虚拟用户
区别于实施账户,FTP支持建立专有的用户,将账号及密码保存在数据库中,采用非系统账户访问服务器资源,相对于FTP的实体用户而言,虚拟用户只能访问FTP共享资源,增强了系统安全性,并且,客户端使用虚拟用户登录,需要提交账号及密码,管理员可以根据这些账号进行策略设置,增加了对用户和下载的可管理性,考虑到FTP服务器的安全性以及管理因素,选择虚拟用户登录,是一个非常可靠的方案。
三、安装步骤
本次安装使用pure-ftpd源码包,源码包下载地址:https://www.pureftpd.org/project/pure-ftpd/download/
1.将下载的源码包导入目录:/usr/local/src
导入源码包通过VM ware安装Tools或者Winscp连接CentOS上传!
2.在该目录终端解压源码包
[root@bogon src]#tar –xjvf pure-ftpd-1.0.46.tar.bz2
3.配置:(configure)
[root@bogon ~]# cd /usr/local/src/pure-ftpd-1.0.46 [root@bogon pure-ftpd-1.0.46]# ./configure --prefix=/usr/local/pureftpd/ --with-language=simplified-chinese --with-everything
4.编译:(make)
[root@bogon pure-ftpd-1.0.46]#make
5.安装:(make install)
[root@bogon pure-ftpd-1.0.46]#make install
6.修改配置文件:(/usr/local/pureftpd/etc/pure-ftpd.conf)
# vim /usr/local/pureftpd/etc/pure-ftpd.conf
7.生成数据库
[root@localhost ~]# cd /usr/local/pureftpd/bin/ [root@localhost bin]# export PATH=$PATH:/usr/local/pureftpd/bin/(或者将此路径加入.bash_profile文件) [root@localhost bin]# pure-pw mkdb
8.创建FTP登录账户
(1).增加ftp工作组
# groupadd ftpgroup
(2).增加ftp用户(该用户不能登录服务器系统)
# useradd –g ftpgroup –s /sbin/nologin ftpuser
(3).设置ftp用户密码
# passwd ftpuser
(4).创建ftp共享目录
# mkdir -p /ftp_share/ftptest
(5).为刚才设置的ftp共享文件夹设置权限
# chown –R ftpuser:ftpgroup /ftp_share/ftptest/ # chmod –R 777 /ftp_share
(6).创建虚拟用户:
[root@bogon ~]# cd /usr/local/pureftpd/bin/
[root@bogon ~]# ./pure-pw useradd puser -u ftpuser -d /ftp_share/ftptest/ -m
9.启动pure-ftpd服务
[root@bogon ~]# cd /usr/local/pureftpd/sbin/ [root@localhost sbin]# ./pure-ftpd & [1] 14436 [root@localhost sbin]# fuser -n tcp 21 21/tcp: 14436