本文参考了网上的几篇博文,在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. 【苹果】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本

    前言 缘由 Iphone15来了,两年之约你还记得吗? 遂整合之前iphone13及iphone14的相关抢购代码,完成一个SpringBoot监听Iphone15有货邮件提醒+python自动化脚本 ...

  2. PlatformIO+esp32+添加自己的库(.c.h文件)

        什么都放main.c的话,很有可能堆积成屎山,所以我想给分开写,每个功能有自己的.c..h文件. 在lib下新建文件夹,例如led,再在里面分别建led.c.led.h; 写好内容后再main ...

  3. Java 客户信息管理软件 (面向对象 封装 总结)

    1 package com.bytezero.cim.bean; 2 3 /** 4 * 5 * @Description Customer为实体对象,用来封装客户信息 6 * @author Byt ...

  4. 为什么defineProps宏函数不需要从vue中import导入?

    前言 我们每天写vue代码时都在用defineProps,但是你有没有思考过下面这些问题.为什么defineProps不需要import导入?为什么不能在非setup顶层使用defineProps?d ...

  5. 关于vue.js:iview-Bug-5114在iview的Poptip气泡提示内调用DatePicker出现遮挡或同时关闭窗口等冲突问题[转]

    转自:https://lequ7.com/guan-yu-vuejsiviewbug5114-zai-iview-de-poptip-qi-pao-ti-shi-nei-diao-yong-datep ...

  6. P2670 [NOIP2015 普及组] 扫雷游戏

    题目背景 NOIP2015 普及组 T2 题目描述 扫雷游戏是一款十分经典的单机小游戏.在 nn 行 mm 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一 ...

  7. 不可不知道的python装饰器

    前记   python小白,估计很多没用过这个高级功能吧,当你用了它之后就会发现,真是非常好用喔.   装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增 ...

  8. mac Error: EACCES: permission denied, mkdir

    原因还是权限问题 就是说 npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限.这样的 ...

  9. 引领文旅新体验!3DCAT实时云渲染助力打造“永不落幕”的湾区文采会元宇宙

    2022年11月25日至27日,2022年粤港澳大湾区公共文化和旅游产品(东莞)采购会(简称"湾区文采会")在广东省东莞市文化馆举行. 文采会期间,文采会元宇宙线上虚拟展厅全新亮相 ...

  10. FTP的配置和管理

    实验环境: 两台windows servers 一台已经配置了FTP服务器,IP为192.168.1.220,vmnet1 一台作为客户端测试,IP为192.168.1.138,vmnet1 一:FT ...