热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOSFTP安装及配置

CentOS FTP安装及配置LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.RedHatEnterpriseLinux中默认安装的是

CentOS  FTP安装及配置

LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.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服务器后,不能访问除宿主目录以外的内容.

===================================================================

FTP的安装   (vsftp默认安装完之后,就允许匿名用户本地用户登陆)

1、检测是否安装了FTP :[root@localhost ~]# rpm -q vsftpd

      如果安装了会显示版本信息:

      [root@localhost ~]# vsftpd-2.0.5-16.el5_5.1

      否则显示:[root@localhost ~]# package vsftpd is not installed

2、如果没安装FTP,运行yum install vsftpd命令

  具体的细节如下:(如果无法更新,你先配置能访问互联网,我有文档叫 CentOS 在 VMware下,如何联网到Internet的解决办法 可以解决无法上网的问题)

  [root@localhost ~]# yum install vsftpd

  [root@localhost ~]# touch /var/log/vsftpd.log     #创建vsftp的日志文件

3、 不应该给root用户开启 ftp的功能,因为别人就能用ftp一直测试你root的密码 (默认是禁止root用户登录的,此处只用于说明,不需要操作)  

 
4、执行以下命令

  # setsebool -P ftp_home_dir=1    (SELinux命令,Redhat从FC3开始,就使用了SELinux来增强安全。为防止出现下面 500 OOPS 的错误
     -P 参数表示永久有效。

     ftp连接的时候 出现 "500 OOPS:cannot change directory:/" 错误: 修改方法:  (会出现在虚拟用户登录的情况下)

     setsebool -P ftp_home_dir on 或者 setsebool -P ftpd_disable_trans on
     setsebool -P ftp_home_dir=1 或者 setsebool -P ftpd_disable_trans=1 效果同上

  修改/etc/vsftpd/vsftpd.conf,在最后一行处添加local_root=/           (本地用户访问目录)

5、重启ftp进程   #service vsftpd restart

启动和关闭分别把restart改为start/stop即可.如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.

注:每次修改过ftp相关的配置文件,都需要重启ftp进程来生效。ftp服务器就可以使用了。

最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:

(1)找到/etc/rc.local文件

(2)打开该文件,在最后一行添加:service vsftpd start

(3)保存,退出


这样就可以完成了一个简单的匿名FTP的搭建。你可以通过访问ftp://yourip来进行,不过这个FTP没有任何权限。

匿名用户登录,不需要输入用户名

CentOS FTP安装及配置

CentOS FTP安装及配置

windows doc 下登陆成功:

CentOS FTP安装及配置


******************************************************************************************
******************************************************************************************

与vsftpd服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd服务器的根目录,即FTP服务器的主目录:/var/ftp/pub
如果你想修改服务器目录的路径,那么你只要修改/var/ftp到别处就行了

linux中vsftp修改默认路径:

如果是默认安装vsftpd的话,以下是一些文件的位置约定:
/usr/sbin/vsftpd ---- VSFTPD的主程序
/etc/rc.d/init.d/vsftpd ---- 启动脚本
/etc/vsftpd/vsftpd.conf ---- 主配置文件
/etc/pam.d/vsftpd ---- PAM认证文件
/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
/var/ftp ---- 匿名用户主目录
/var/ftp/pub ---- 匿名用户的下载目录
 
如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行:
local_root=/                #表示使用本地用户登录到ftp时的默认目录              
chroot_local_user=YES
anon_root=/                 #表示匿名用户登录到ftp时的默认目录,例如:anon_root=/usr/local/apache/htdocs/anon             
 
上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效。
 
另外,如luo_rc所述,最好不要设置默认目录为/,使用建议使用mount --bind来挂载需要的目录。
 
最后重启服务:   service  vsftpd restart

******************************************************************************************
******************************************************************************************

虚拟账户

1.建立虚拟用户口令库文件

vi logins.txt     //文件名随意

文件内容:  (这些用户在linux中不需要存在,虚拟的)

user1
passwd1
user2
passwd2
.....
.....

2.生成vsftpd的认证文件

db_load -T -t hash -f ./logins.txt /etc/vsftpd/ftp_login.db

将用户信息文件转换为数据库并用hash加密

说明 : db_load : 触发db4转换程序,需要安装db4_utils程序包
           -T          : 允许应用程序能够将文本文件转译载入数据库。  由于我们之后是将虚拟用户的信息(logins.txt)以文件方式存储在这个文件里,为了让vsftp应用程序能够通过文本来载入用户数据,必须要使用这个选项
           -t          : 子选项-t,追加在-T选项后,用来指定转译载入的数据库类型。 -t可以指定的数据类型有 Btree,Hash,Queue和Recon数据库。
           -f          : 参数后面接包含用户名和密码的文本文件,文件内容是: 奇数行用户名,偶数行密码。

添加虚拟用户口令数据库的读写权限

chmod 600 /etc/vsftpd/ftp_login.db

3.建立虚拟用户所需的PAM配置文件

cd /etc/pam.d  //进入到这个目录下
vi ftp.v       //配置文件名 ftp.v 可以任取,例如  ftp.uv,ftpv,ftpvirtual

配置文件内容

auth required /lib/security/pam_userdb.so  db=/etc/vsftpd/ftp_login              //指向的文件为第二步创建的vsftp认证数据库文件名
account required  /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_login

4.建立虚拟用户所需要访问的目录,并设置相应的权限

useradd virtual            //用户名任意
chmod -R 755 /home/virtual //为要访问的目录设置权限,如果没有设置,虚拟用户虽然能登陆,但看不到里面的文件,虚拟用户为其它用户范

5.设置vsftpd.conf 配置文件

pam_service _name=ftp_login
guest_enable=YES
guest_username=virtual  //所有虚拟用户登陆的时候,都映射为virtual用户,访问该用户的目录

之后可以再 window通过doc界面 或者  FLASHFXP.EXE 软件,使用 user1,passwd1等虚拟用户访问 virtual用户的目录。

 ------------------------------------------------------------------------------------------------------------------

对不同的虚拟用户设置不同的权限    (没尝试的欲望)
1) 设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2)  建立用户配置文件目录
# mkdir /etc/vsftpd/vsftpd_user_conf
3)  为虚拟用户建立单独的配置文件
a.用户配置文件名称与用户名相同
touch /etc/vsftpd/vsftpd_user_conf/zhangsan
touch /etc/vsftpd/vsftpd_user_conf/lisi
b.每个FTP虚拟用户都可以独立设置其权限
anon_world_readable_Only=NO   //如果是NO,说明用户还可以下载等权限
anon_upload_enable=YES          //是否可以上传文件
anon_mkdir_write_enable=YES   //是否可以创建文件
anon_other_write_enable=YES   //是否可以修改文件包括删除

******************************************************************************************
******************************************************************************************

本地帐号
vsftpd 使用默认的vsftpd.conf 就能实现 本地账号的登陆。

******************************************************************************************
******************************************************************************************

二、vsftpd的配置文件说明:

   vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

  vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

  vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

  (1)用户登录控制

  anonymous_enable=YES,允许匿名用户登录。

  no_anon_password=YES,匿名用户登录时不需要输入密码。

  local_enable=YES,允许本地用户登录。

  deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。

    banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。

  (2)用户权限控制

  write_enable=YES,开启全局上传权限。

  local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。

  anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。

  anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。

  chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!

  chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。

  chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。

   chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。

  nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。

  async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!

  ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。

  注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。

  这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。

  (3)用户连接和超时选项

  idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。

  data_connection_timeout=120,设定默认的数据连接超时时间。

  (4)服务器日志和欢迎信息

  dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。

  ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。

  xferlog_enable=YES,启用记录上传/下载活动日志功能。

  xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。

  anonymous_enable=YES 允许匿名登录local_enable=YES 允许本地用户登录

  write_enable=YES 开放本地用户写权限

  local_umask=022 设置本地用户生成文件的掩码为022

  #anon_upload_enable=YES 此项设置允许匿名用户上传文件

  #anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限

  dirmessage_enable=YES 当切换到目录时,显示该目录下的.message隐藏文件的内容

  xferlog_enable=YES 激活上传和下载日志

  connect_from_port_20=YES 启用FTP数据端口的连接请求

  #chown_uploads=YES 是否具有上传权限. 用户由chown_username参数指定。

  #chown_username=whoever 指定拥有上传文件权限的用户。此参数与chown_uploads联用。

  #xferlog_file=/var/log/vsftpd.log

  xferlog_std_format=YES 使用标准的ftpd xferlog日志格式

  #idle_session_timeout=600 此设置将在用户会话空闲10分钟后被中断

  #data_connection_timeout=120 将在数据连接空闲2分钟后被中断

  #ascii_upload_enable=YES 启用上传的ASCII传输方式

  #ascii_download_enable=YES 启用下载的ASCII传输方式

  #ftpd_banner=Welcome to blah FTP service 设置用户连接服务器后显示消息

  #deny_email_enable=NO 此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址用户登录。

  #banned_email_file=/etc/vsftpd.banned_emails 指定包含拒绝的e-mail地址的文件.

  #chroot_list_enable=YES 设置本地用户登录后不能切换到自家目录以外的别的目录

  #chroot_list_file=/etc/vsftpd.chroot_list

  #ls_recurse_enable=YES

  pam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/

  userlist_enable=YES 此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。
  listen=YES 指明VSFTPD以独立运行方式启动

  tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES 

******************************************************************************************
******************************************************************************************

其它文献:

RedHat9-vsftp配置大全 http://doc.linuxpk.com/4231.html


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
author-avatar
帆_Jx
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有