本文参考了网上的几篇博文,在CentOS上搭建FTP服务器,两种搭建方式:gssftp与vsftpd。

RedHat和CentOS都自带了一个gssftp服务,使用方式如下:

1 进入gssftp目录


[root@linux local]# cd /etc/xinetd.d


[root@linux xinetd.d]# ls


chargen cups-lpd daytime-udp echo-udp gssftp krb5-telnet rsync time-udp


chargen-udp daytime echo eklogin klogin kshell time 

2 编辑gssftp文件,将server_args改为-l,将disable改为no:


[root@linux xinetd.d]# vi gssftp


# default: off


# description: The kerberized FTP server accepts FTP connections \


# that can be authenticated with Kerberos 5.


service ftp


{


flags = REUSE


socket_type = stream


wait = no


user = root


server = /usr/kerberos/sbin/ftpd


#server_args = -l -a


server_args = -l


log_on_failure += USERID


#disable = yes


disable = no


}

3
重启xinetd服务:


[root@linux xinetd.d]# service xinetd restart


Stopping xinetd: [ OK ]


Starting xinetd: [ OK ]


这时查看21端口已经打开:


[root@linux xinetd.d]# netstat -tnlp


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:21 0.0.0.0:* LISTEN 22543/xinetd


如果防火墙没有打开端口,则开放21端口并重启防火墙服务:


[root@linux xinetd.d]# vi /etc/sysconfig/iptables


[root@linux xinetd.d]# service iptables restart


Flushing firewall rules: [ OK ]


Setting chains to policy ACCEPT: filter [ OK ]


Unloading iptables modules: [ OK ]


Applying iptables firewall rules: [ OK ]

5  用户登录

到这里ftp服务就可用了,可以使用linux系统用户登录或者其他用户登录。gssftp不能指定共享目录,仅供内部测试使用,便捷的FTP服务需要利用vsftp来搭建。

vsftpd安装配置

1.安装vsftpd


一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装: 


yum -y install vsftpd


touch /var/log/vsftpd.log # 创建vsftp的日志文件


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



2.基于匿名的FTP架设





参考本博客上几篇关于Vsftpd的CentOS FTP服务配置文章。





3.基于虚拟用户的FTP架设


所谓虚拟用户就是没有使用真实的帐户,只是通过某种手段达到映射帐户和设置权限的目的。


1)我们在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服务配置:


anonymous_enable=NO 设定不允许匿名访问


local_enable=YES 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。


chroot_list_enable=YES 使用户不能离开主目录


xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来


ascii_upload_enable=YES


ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。


pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证


以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。 


guest_enable=YES 设定启用虚拟用户功能。


guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了


user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)


2)创建chroot list,将用户ftp加入其中: 


touch /etc/vsftpd/chroot_list


echo ftp >> /etc/vsftpd/chroot_list


3)进行认证: 


首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。


yum install db4 db4-utils


然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码


ftpuser1


ftppass1


ftpuser2


ftppass2


接着,.生成虚拟用户认证的db文件


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


随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句


再增加以下两句


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


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


最后,创建虚拟用户个性CentOS FTP服务文件


mkdir /etc/vsftpd/vuser_conf/


vi /etc/vsftpd/vuser_conf/ftpuser1


内容如下:


local_root=/opt/var/ftp1 虚拟用户的根目录(根据实际修改)


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

4.启动vsftp服务器 


mkdir /opt/var/ftp/ftpuser1


chmod 777 /opt/var/ftp/ftpuser1


service vsftpd start


TroubleShootings:

1.553 Could not create file

一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。


setsebool -P ftpd_disable_trans 1 


service vsftpd restart

2.500 OOPS: bad bool value in config file for: write_enable

注意你的CentOS FTP服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。

注:后半部分待测试。

CentOS上搭建FTP服务器[未测试]的更多相关文章

  1. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  2. 【转】【FTP】之windows8.1上搭建FTP服务器方法

    参考地址:<windows8.1上搭建FTP服务器方法>

  3. 如何在windows上搭建ftp服务器

    FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件.目前有很多软件都能实现这一功能,然而windows自带的IIS就可以帮助你搭 ...

  4. CentOS 下搭建FTP服务器

    vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个.本文介绍了在CentOS 6 4下安装vsftpd.配置虚拟用户登录FTP的过程.正 vsftpd是Linux下比较著名 ...

  5. [FTP]通过FileZilla在阿里云主机上搭建ftp服务器

    前一阵子租了一台服务器主机来玩,正好周末有时间研究了一下怎么搭建ftp server. 准备.首先要下载filezilla client和filezilla server, 下载地址: server: ...

  6. Centos7上搭建ftp服务器

    ftp服务器搭建 1.安装好centos系统,配好yum仓库 其中vsftpd源在这下载 http://rpmfind.net/linux/rpm2html/search.php?query=vsft ...

  7. Ubuntu14.04上搭建FTP服务器

    Ubuntu上常用的Ftp服务器是vsFTPd.安装前检查下是否已经装好了.用 sudo service vsftpd restart,如果提示重启成功之类的信息,说明此服务器已经安装好了vsFTPd ...

  8. linux上搭建ftp服务器

    摘要 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行 ...

  9. Centos下搭建ftp服务器

    完全不用那么麻烦,直接可以用xshell中自带的传输文件功能,下载客户端xftp安装就行,不用配置,可以在windows系统向Linux系统的任何文件地方上传下载文件,简单方便,大大节约时间, vsf ...

  10. CentOS 7搭建FTP服务器

    安装vsftpd 命令:yum -y install vsftpd 修改ftp配置文件 命令:vim /etc/vsftpd/vsftpd.conf 按i进入insert模式后,按以下要求修改 ano ...

随机推荐

  1. 内部UI自动化测试培训之python基础

    这个文档的由来是公司内部UI自动化测试培训的资料.部门为了减少测试工作量,准备做UI自动化测试.我写python,其他同事都是java,所以python基础和UI自动化测试selenium的培训就由我 ...

  2. Scala学习历险记(第一天)

    Scala学习笔记(一) 前言:由于最近要整大数据相关的东西,所以java开发的我很苦逼的来学习Scala了,为接下来的工作做知识储备,今天是2021年8月19号,是我接触scala语言的第一天,因此 ...

  3. 使用C#创建服务端Web API

    前言 C# Web API 是一种基于 .NET 平台(包括但不限于.NET Framework 和 .NET Core)构建 HTTP 服务的框架,用于创建 RESTful Web 服务.REST( ...

  4. 【预训练语言模型】BERT原理解析、常见问题和微调实战

    一.BERT原理 1.概述        背景:通过在大规模语料上预训练语言模型,可以显著提高其在NLP下游任务的表现.        动机:限制模型潜力的主要原因在于现有模型使用的都是单向的语言模型 ...

  5. JDK1.8版本java字符串常量池里存的是String对象还是引用?

    转载自http://t.csdn.cn/iD9LD 先下结论:对象! 众所周知,JDK1.8版本中,String常量池已经从方法区中的运行时常量池分离到堆中了,那么在堆中的String常量池里存的是S ...

  6. Bootstrap前端开发框架

    一 Bootstrap 简介 Bootstrap 来自 Twitter(推特),是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS 和 JAVASCRIPT 的,它简洁灵活,使得 ...

  7. OkHttp请求耗时统计

    目录介绍 01.先提问一个问题 02.EventListener回调原理 03.请求开始结束监听 04.dns解析开始结束监听 05.连接开始结束监听 06.TLS连接开始结束监听 07.连接绑定和释 ...

  8. 记录--post为什么会发送两次请求?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在前段时间的一次面试中,被问到了一个如标题这样的问题.要想好好地去回答这个问题,这里牵扯到的知识点也是比较多的. 那么接下来这篇文章我们就 ...

  9. 记录--JavaScript原型和原型链复习笔记

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 原型和原型链 1. 原型 每个JS对象一定对应一个原型对象,并从原型对象继承属性和方法 1.1 __proto__ 对象的__proto_ ...

  10. C# OpenCvSharp+ 微信二维码引擎实现二维码识别

    微信开源了其二维码的解码功能,并贡献给 OpenCV 社区.其开源的 wechat_qrcode 项目被收录到 OpenCV contrib 项目中.从 OpenCV 4.5.2 版本开始,就可以直接 ...