查看: 9680|回复: 1

【转】CentOS 5.8下快速搭建FTP服务器

[复制链接]
  • TA的每日心情
    无聊
    2015-9-15 23:25
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2013-11-30 22:10:57 | 显示全部楼层 |阅读模式
    本帖最后由 FS、H 于 2013-11-30 22:43 编辑

    学习安装和配置vsftpd:
    实验环境:CentOS 5.8 x86_64
    测试环境关掉防火墙和selinux。
    service iptables stop
    setenforce 0
    1、安装vsftpd
    yum -y install vsftpd
    2、vsftpd相关的目录及配置文件
    /usr/sbin/vsftpd vsftpd主程序。
    /etc/init.d/vsftpd vsftpd服务控制脚本。
    /etc/pam.d/vsftpd 这个是vsftpd使用PAM模块时的相关配置文件,主要用来验证登陆FTP用户账号的身份。
    /etc/vsftpd/ 配置文件目录。
    /etc/vsftpd/vsftpd.conf vsftpd服务主配置文件,使用方法:参数=设定值。
    /etc/vsftpd/ftpusers 与PAM模块的配置文件配合使用,主要填写FTP用户账号,一行一个。
    /etc/vsftpd/user_list vsftpd服务自己的用户账户控制文件,与vsftpd.conf配置文件中的userlist_enable、userlist_deny两个参数有关。
    /var/ftp/ 默认匿名用户根目录。
    3、主配置文件vsftpd.conf详解
    与服务器环境较相关的设定值
    connect_from_port_20=YES (NO)
    主动式连接时使用FTP服务器的端口号,就是FTP-date的端口号。
    listen_port=21
    vsftpd控制端口。
    dirmessage_enable=YES (NO)
    当用户进入某个目录时,是否显示该目录需要注意的内容,显示信息的文件默认是 .message 。
    message_file=.message
    当 dirmessage_enable=YES 时,可以修改默认显示信息文件的文件名。
    listen=YES (NO)
    设置为YES表示以stand alone方式启动服务器,设置为NO则表示以super deamon的方式启动服务器。
    pasv_enable=YES (NO)
    启动被动模式(passive mode),一定要设置为YES。
    use_localtime=YES (NO)
    启用本地时间,一般需要设置为YES。因为vsFTPd默认使用GMT格林威治时间,这比东八区的时间早了8个小时,会使得服务器上的文件时间属性出现混乱。
    write_enable=YES (NO)
    是否允许用户上传数据。
    connect_timeout=60

    在数据连接主动模式下,发出的连接信号在60秒内没有得到客户端的响应,则强制断线。

    accept_timeout=60

    在用户以PASV被动模式进行数据传输时,如果主机启动passive port并等待客户端超过60秒无回应,就强制断线。
    data_connection_timeout=300
    在客户端和服务器的数据连接已经建立的情况下,如果在300秒内还是无法顺利完成数据传输,则客户端的连线会被vsFTPd强制断开。
    idle_session_timeout=300
    如果用户在300秒内没有命令操作,则断线。
    max_clients=0
    当vsFTPd以stand alone模式运行时,这个参数决定同一个IP、同一时间内被服务器允许的连接数。
    max_per_ip=0
    与上面 max_clients 类似,这里是同一个 IP 同一时间可允许多少联机?
    pasv_min_port=0, pasv_max_port=0
    这两个参数指定pasv模式使用的端口号的范围,0表示不限制。
    ftpd_banner=一些文字说明

    用登入FTP时,显示的欢迎信息,可设定显示的信息内容较少。

    banner_file=/path/file

    这个参数可以弥补FTPd_banner参数的不足,特别是当需要在服务器端展示较多的文字信息时(如站点说明,欢迎文字等等)。

    与实体用户较相关的设定值

    guest_enable=YES (NO)
    开启访客用户,如果开启则所有的非匿名用户的均会被假设成访客身份。访客默认情况下使用FTP这个账户相关的权限设置,但是可以通过参数guest_username来修改。
    guest_username=ftp

    在开启了guest_enable=YES之后才会生效,用来指定访客的身份。

    local_enable=YES (NO)

    是否允许/etc/passwd中存在的实体用户帐号登陆vsFTPd服务器。

    local_max_rate=0

    实体用户的传输速度限制,单位为bytes/second,0表示不限制。

    chroot_local_user=YES (NO)

    将实体用户限制在自己的家目录之内,默认值为NO。

    chroot_list_enable=YES (NO)、chroot_list_file=/etc/vsftpd.chroot_list

    这两个参数需要配合使用,用以将chroot_list文件中列出的用户限制在自己的默认目录中。

    userlist_enable=YES (NO)、userlist_deny=YES (NO)、userlist_file=/etc/vsftpd/user_list

    参数userlist_enable=YES表示借助vsFTPd的阻止机制来处理user_list文件中列出的某些不受欢迎的帐号;当userlist_deny=YES时user_list文件中的帐号将被拒绝,当userlist_deny=NO时则表示允许user_list中的帐号登陆服务器;

    匿名者登入的设定值

    anonymous_enable=YES (NO)

    是否允许匿名账户anonymous登录,以下参数均在允许情况下生效。

    anon_world_readable_only=YES (NO)

    是否允许匿名用户具有只读权限。

    anon_other_write_enable=YES (NO)

    是否允许匿名账户具有可写权限。

    anon_mkdir_write_enable=YES (NO)

    是否允许匿名用户具有创建目录的权限。

    anon_upload_enable=YES (NO)

    是否允许匿名用户具有上传文件的权限。

    deny_email_enable=YES (NO)

    若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。

    banned_email_file=/etc/vsftpd/banned_emails

    如果 deny_email_enable=YES 时,可以利用这个设定项目来规定哪个 email address 不可登入我们的 vsftpd 喔!在上面设定的档案内,一行输入一个 email address 即可!

    no_anon_password=YES (NO)

    此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。

    anon_max_rate=0

    设置匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。

    anon_umask=077

    设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权限为700。

    关于系统安全方面的一些设定值

    ascii_download_enable=YES (NO)

    设置是否启用ASCII 模式下载数据。默认值为NO。

    ascii_upload_enable=YES (NO)

    设置是否启用ASCII 模式上传数据。默认值为NO

    one_process_model=YES (NO)

    是否使用单进程模式

    tcp_wrappers=YES (NO)

    设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。

    xferlog_enable=YES (NO)

    是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。

    xferlog_file=/var/log/xferlog

    设置日志文件名和路径,默认值为/var/log/vsftpd.log。

    xferlog_std_format=YES (NO)

    如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。

    dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log

    如果启用该选项,将生成两个相似的日志文件,默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下。前者是 wu-ftpd 类型的传输日志,可以利用标准日志工具对其进行分析;后者是Vsftpd类型的日志。

    nopriv_user=nobody

    预设vsftpd服务的运行账户。

    pam_service_name=vsftpd

    设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
    4、配置实例
    基于匿名用户的配置:

    1.cd /etc/vsftpd/
    2.vim vsftpd.conf
    write_enable=YES
    anonymous_enable=YES
    no_anon_password=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_root=/data/vsftpd
    anon_world_readable_only=NO
    syslog_enable=YES
    connect_from_port_20=YES
    pam_service_name=vsftpd
    listen=YES

    1.mkdir -p /data/vsftpd/upload
    2.chmod 777 /data/vsftpd/upload

    基于本地用户的配置:
    1.cd /etc/vsftpd/
    2.vim vsftpd.conf

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    listen=YES
    tcp_wrappers=YES
    userlist_deny=NO

    useradd test
    echo test | passwd --stdin test
    echo "test" >> user_list
    基于虚拟用户的配置:
    yum -y install db4-utils
    cd /etc/vsftpd/
    vim virtual_userlist.txt
    test1
    123456
    test2
    123456
    db_load -T -t hash -f /etc/vsftpd/virtual_userlist.txt /etc/vsftpd/virtual_userlist.db
    chmod 600 /etc/vsftpd/virtual_userlist.db
    vim /etc/pam.d/vsftpd.vu
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_userlist
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_userlist

    useradd virtual_user -d /data/vsftpd
    chmod 700 /home/ftpsite
    chown virtual_user.virtual_user /data/vsftpd/
    vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO
    local_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=YES
    listen_port=21
    userlist_enable=YES
    guest_enable=YES
    guest_username=virtual_user
    pam_service_name=vsftpd.vu
    virtual_use_local_privs=YES
    ftpd_banner=Welcome to opendoc FTP service.
    write_enable=YES
    anonymous_enable=NO
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_umask=022
    download_enable=Yes
    local_root=/data/vsftpd

    关于服务器控制:
    1. service vsftpd {start|stop|restart|condrestart|status}
    客户端操作:
    图片1.jpg

    到此,vsftpd的安装配置算是告一段落了,如有问题请和我联系。



    转载自:逝情‘s Blog
    回复

    使用道具 举报

    该用户从未签到

    发表于 2013-12-2 11:45:43 | 显示全部楼层
    这个虽然是好东西, 最近也正在找这个东西,  
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-12-25 14:40 , Processed in 0.024401 second(s), 16 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部