博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ftp服务器的搭建
阅读量:4560 次
发布时间:2019-06-08

本文共 1564 字,大约阅读时间需要 5 分钟。

FTP服务器一般在服务器集群中做为一个上传资源的节点。比如视频或者图片网站,一般是先将资源上传到FTP服务器中,然后再利用文件分发或者同步等功能将资源调度到其它节点。

ftp服务器的配置本身不难,但前提是要理解到它的主动模式和被动模式;

在两种模式中,ftp服务器都是通过21(默认)号端口与客户端建立连接,但是传输数据却是通过另一个端口。

在主动模式中,由服务器的20号端口主动向客户端的一个随机端口发起连接请求,从而建立数据传输通道。

在被动模式中,服务器端需要配置自身被动连接的随机端口范围,如果需要传输数据,服务端主动向客户端报告自己打开的随机端口,然后由客户端向这个随机端口发起连接请求,从而建立数据传输通道。

反映在防火墙上:主动模式,服务器端需要开启21,20号端口;被动模式,服务器端需要开启21号端口,和配置文件中所配置的随机端口范围内的所有端口。

 

注意:本次配置为被动模式。

安装:

yum install vsftpd  -y     直接用rpm包安装

vim /etc/vsftpd/vsftpd.conf    修改配置文件

 

anonymous_enable=NO       #是否开启匿名登录

local_enable=YES      #是否允许本地用户登录

write_enable=YES      #配置可写

local_umask=022      #反权限码,等同于744的目录权限

dirmessage_enable=YES

xferlog_enable=YES      #是否记录ftp传输过程

connect_from_port_20=YES

xferlog_std_format=YES

chroot_list_enable=YES    #是否限制系统用户只能登录家目录

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

reverse_lookup_enable=NO

pasv_enable=YES      #启用被动模式

pasv_min_port=10000    #规定被动模式端口范围起点

pasv_max_port=11000    #规定被动模式端口范围终点

pasv_promiscuous=YES

 

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

 

这里的ftp服务器,没有在配置文件中指明root,是通过创建ftp服务器的用户时直接指明家目录,来实现登陆这个用户时直接到这个家目录下的。而这个家目录事先应该是不存在的。

useradd ftpuser -d /test -s /sbin/nologin ; echo "test123" | passwd ftpuser --stdin      #创建用户并指明家目录,配置密码

chown -R ftpuser:ftpuser /test

 

打开防火墙的端口

iptables -I INPUT -m state --state NEW -p tcp -m multiport --dports 20,21 -j ACCEPT

iptables -I INPUT 2 -p TCP --dport 10000:11000 -j ACCEPT

 

service iptables save

vim /etc/vsftpd/chroot_list    #需要登录的用户加入到这个文件下

  ftpuser

service vsftpd start

 

最后注意:

一定要关闭selinux

 

转载于:https://www.cnblogs.com/RottenLeaf/p/9751301.html

你可能感兴趣的文章
cinder侧卸载卷流程分析
查看>>
codeforcesD_状压dp
查看>>
windows下通过pid 找到运行程序的路径
查看>>
【字符集】字符集和编码知识【转】
查看>>
【爱笑话7.0版】笑话两万篇,免费阅读,绝无广告
查看>>
The square chest
查看>>
不用第三个变量实现a,b的值交换
查看>>
Borg Maze(MST & bfs)
查看>>
#pragma warning (default : n)
查看>>
Akka(38): Http:Entityof ByteString-数据传输基础
查看>>
Python学习---重点模块之json
查看>>
Python学习--- requests库中文编码问题
查看>>
快速记 beta 1.08
查看>>
新建基于STM32F103ZET6的工程-寄存器版本
查看>>
call() , apply() , bind() 方法,
查看>>
is 和 ==的区别
查看>>
数据集汇总
查看>>
今天早上开了微信,确实是太卡了
查看>>
springboot接收Date日期参数,可以传入String类型
查看>>
Ajax的两个用法
查看>>