CentOS 6.3 FTP搭建,rpm安装、配置、测试,本文使用虚拟帐号登录方式

vsftpd提供了3种ftp登录形式:

1、anonymous(匿名帐号)

使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.

 2、real(真实帐号)

real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.

 3、guest(虚拟帐号)

如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容


工具/原料

  • 装有Centos 6.3服务器一台

方法/步骤

  1. 1

    挂载光盘,建议配置yum(使用yum安装可省去依赖包麻烦)本文使用rpm包安装

    mkdir /mnt/cdrom    //创建挂载光盘路径

    mount /dev/cdrom /mnt/cdrom  //挂载光盘

    ls /mnt/cdrom/  //出现如下图文件,说明光盘挂载成功

    CentOS 6.3_64位搭建FTP服务器

  2. 2

    安装vsftp,建议使用yum安装,省去依赖包麻烦,本文未遇到。cd /mnt/cdrom/Packages/  //进入rpm包位置

    rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm  //FTP核心文件 rpm -ivh db4-4.7.25-17.el6.x86_64.rpm  //虚拟用户必要工具

    CentOS 6.3_64位搭建FTP服务器

  3. 修改配置文件 

    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak //备份

    vi /etc/vsftpd/vsftpd.conf  //创建配置文件

    列出我的配置,根据环境修改做适当修改,注意每行后面不可有空格

    anonymous_enable=NO

    local_enable=YES

    write_enable=YES

    local_umask=022

    anon_upload_enable=NO

    anon_mkdir_write_enable=NO

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    chown_uploads=NO

    xferlog_file=/var/log/xferlog

    xferlog_std_format=YES

    nopriv_user=ftpde

    async_abor_enable=YES

    ascii_upload_enable=YES

    ascii_download_enable=YES

    ftpd_banner=Welcome to blah FTP service.

    chroot_local_user=NO

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

    listen=YES

    pam_service_name=vsftpd

    userlist_enable=YES

    tcp_wrappers=YES


    #You need to add content

    background=YES

    guest_enable=YES

    guest_username=ftpde

    user_config_dir=/etc/vsftpd/user_config

    max_clients=100

    max_per_ip=20

    pasv_enable=YES

    pasv_min_port=6000

    pasv_max_port=7000

    CentOS 6.3_64位搭建FTP服务器

  4. 创建本地用户ftpde 以及chroot虚拟用户映射文件

    useradd ftpde //创建ftpde用户,此用户为系统用户

    vi /etc/vsftpd/vsftpd.chroot_list

    ftpde  //该文件为手动建立,每一行代表一个欲将虚拟用户映射到本地账户的名称

    CentOS 6.3_64位搭建FTP服务器

  5. 创建用户账户文件passwd.file

    该文件默认也不存在的,该文件用来存储用户账户以及明文密码,格式为每个账户两行,第一行是用户名,第二行是密码,以此类推!

     vi /etc/vsftpd/passwd.file

    ftpdemo

    123456

    CentOS 6.3_64位搭建FTP服务器

  6. 生成虚拟用户认证的db文件

    db_load -T -t hash -f /etc/vsftpd/passwd.file /etc/vsftpd/ftpuser_passwd.db

  7. 创建用户配置文件

    建立好账户后,需要为每个用户创建记录FTP目录位置、用户权限等信息的配置文件

    mkdir /etc/vsftpd/user_config

    配置文件以FTP用户名为文件名称,每个FTP用户一个文件,例如ftedemo

    vi /etc/vsftpd/user_config/ftpdemo

    内容如下:

    local_root=/data/FTP/ftpuser //该路径对应的目录必须存在,下一步创建

    write_enable=YES

    anon_umask=022

    anon_world_readable_only=NO

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    anon_other_write_enable=YES

    CentOS 6.3_64位搭建FTP服务器

  8. 创建ftp用户目录,并赋读/写权限

    mkdir -p /data/FTP/ftpdemo

    FTP 用户所映射到的系统帐户必须对 FTP 用户主目录拥有相应的读/写权限。仍然以ftpdemo用户为例,本文中ftpdemo虚拟用户是被映射到ftpde系统帐户的,所以 ftpde 系统帐户必须拥有对ftpdemo 的 FTP 主目录/data/FTP/ftpuser 的读/写权限

    chown -R ftpde:ftpde /data/FTP/ftpdemo/

  9. 修改Pam 认证模块

    备份原有配置文件

    mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

    创建新配置文件

    vi /etc/pam.d/vsftpd具体内容如下:

    auth       required     pam_userdb.so db=/etc/vsftpd/ftpuser_passwd

    account    required     pam_userdb.so db=/etc/vsftpd/ftpuser_passwd

    CentOS 6.3_64位搭建FTP服务器

  10. 修改防火墙

    vi /etc/sysconfig/iptables

    配置如下:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

    -A INPUT -p tcp --dport 6000:7000 -j ACCEPT


    重起防火墙,使配置生郊

    service iptables restart

    CentOS 6.3_64位搭建FTP服务器

  11. 关闭selinux

    setenforce 0  //临时关闭,重起系统失效

    或者修改selinux配置关闭selinux

    vi /etc/selinux/config 

    SELINUX=disable

  12. 我的电脑以及dos窗口测试

    CentOS 6.3_64位搭建FTP服务器

    CentOS 6.3_64位搭建FTP服务器


文章连接:http://jingyan.baidu.com/article/03b2f78c771db45ea237ae28.html