本文参考了网上的几篇博文,在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. Postman/Jmeter工具实现接口测试,为什么还要用代码来实现接口自动化测试?

    这种工具包括一些开源框架最大缺点就是不够灵活,如果是单接口的测试还行,但是有的项目接口比较庞大和负责,这种情况下就不大适用工具(工具适用于小型项目,代码适用于中大型项目) 主要有以下几个原因: 1敏捷 ...

  2. Java 练习题 看起来很简单 写起来却有点难度

    1 import java.io.PrintStream; 2 3 /* 4 * 5 * public class ValueTransferTest4 6 *{ 7 * public static ...

  3. minio通过docker方式部署

    MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon S3 云存储服务兼容的 API 官方文档http://docs.minio.org.c ...

  4. php编写日历类

    <?php /** * 日历类 * Class Calendar * @author fengzi * @date 2022-05-05 15:42 */ class Calendar{ pro ...

  5. MySql变量说明

    1 #变量 2 /* 3 系统变量: 4 全局变量 5 会话变量 6 7 自定义变量: 8 用户变量 9 局部变量 10 11 */ 12 #一.系统变量 13 /* 14 说明:变量由系统定义,不是 ...

  6. C++统计代码运行时间

    本来想自己写的,一看github上面都有就不再重复造轮子了.github上的项目如下: StopWatch 纯标准库实现:使用std::chrono::high_resolution_clock,其实 ...

  7. electron 下网页获取 micphone 权限

    网页获取麦克风或摄像头权限我们只需调用 navigator.mediaDevices.getUserMedia 方法就可唤起浏览器用户授权 const useMicphone = async () = ...

  8. JSF标签之f:facet 的使用方法

    f:facet标签用来为包含f:facet标签的父组件与被f:facet标签所包含的子组件之间申明一种特殊的关系.常与h:panelGrid,h:dataTable等标签连用,申明组件为标题或页脚. ...

  9. P2602 [ZJOI2010] 数字计数:数位DP

    https://www.luogu.com.cn/problem/P2602 // #include <iostream> // #include <iomanip> // # ...

  10. vue基础知识和原理(二)

    1.13 列表渲染 v-for指令 用于展示列表数据 语法:v-for="(item, index) in xxx" :key="yyy" 可遍历:数组.对象. ...