linux中搭建公网ftp服务器
Linux搭建ftp服务器汇总整理
一、检查linux中是否已经安装vsftpd服务端软件
rpm -qa |grep vsftpd
二、卸载linux中的vsftpd服务端软件
rpm -e vsftpd安装版本号
三、安装linux中的vsftpd服务端
yum install vsftpd -y
四、安装linu中的ftp客户端
yum install ftp
五、启动停止重启vsftpd服务端
启动:service vsftpd start
关闭:service vsftpd stop
重启:service vsftpd restart
六、设置开机自启
chkconfig vsftpd on
七、配置vsftpd服务端模式
1、主动模式:(公司内网使用可以选择此模式)
# vi /etc/vsftpd/vsftpd.conf
port_enable=YES
connect_from_port_20=YES
2、被动模式:(需要映射到公网的就选择此模式,想对安全)
# vi /etc/vsftpd/vsftpd.conf
connect_from_port_20=NO
pasv_enable=YES(被动模式开启)
pasv_min_port=3010(最小端口)
pasv_max_port=3015(最大端口)
pasv_address=公网IP地址(非常重要这个)
说明:最小端口、最大端口范围最好是5-10端口就行,方便公网开通对应端口,端口数量太少,可能会导致有时候能连接上,有时候连接不上。
八、ftp服务器主动、被动模式区别
1、主动模式(PORT):
原理:
FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上), 发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端 开放的端口连接,发送数据。
要点:
传送数据时是“服务器”连接到“客户端”的端口;
需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难;
2、被动模式(PASV):
原理:
FTP 客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。
要点:
传送数据是“客户端”连接到“服务器”的端口;
只需要服务器端开放端口给客户端连接就行;
3、如何选择ftp模式:
如果只是公司内部、局域网使用ftp,可以用主动模式,但是ftp客户端防火墙最好关掉或者开放ftp需要的数据端口范围,不存在安全问题也。如果是公网ftp就用被动模式,可以自定义端口,更加安全。
想要安全、连接方便就用被动模式。
九、ftp服务器中三种用户模式
1、匿名用户:
用anonymous账号,不用输入密码就能够进入ftp服务器。
此用户模式非常不安全,一般不采用。如果需要详情见网上连接:https://www.cnblogs.com/revo/p/7444897.html
2、本地用户:
首先在linux中需要创建用户,然后将创建的用户添加到ftp服务器的白名单中,然后该用户才可以登录ftp服务器。
默认用户可以登录ftp,也可以通过sftp登录上去查看其它资源,可以让用户只登录ftp,不能通过sftp方式登录服务器。
此用户模式比匿名想对安全,需要限定ftp用户不能通过sftp方式访问22端口的服务器资源就更加安全了。
3、虚拟用户:
就是不需要创建linux中实际账号,只需要配置虚拟用户、生成数据文件配置就行,详情见网上连接:https://www.cnblogs.com/revo/p/7444897.html
4、禁止ftp用户ssh登录(安全问题可以解决):
禁止ftp用户ssh登录:
查看/etc/shells文件,找到nologin的路径
执行命令:
usermod -s /sbin/nologin 用户名称
解除ftp用户ssh登录禁止:
查看/etc/shells文件,找到bash的路径
执行命令:
usermod -s /bin/bash 用户名称
十、修改vsftpd配置文件
1、匿名登录:
允许:anonymous_enable=YES
不允许:anonymous_enable=NO
2、是否只显示用户路径:
用户只看到自己路径:chroot_local_user=YES
用户可查看其它路径:chroot_local_user=NO
3、是否添加可查看其它目录用户名单:
不添加可查看其它目录名单:chroot_list_enable=NO
添加可以查看其它目录名单:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(用户名单文件)
4、只允许名单内用户登录:
userlist_enable=NO
5、被动模式添加配置信息:
connect_from_port_20=NO
pasv_enable=YES
pasv_min_port=3010(最小端口)
pasv_max_port=3015(最大端口)
pasv_address=公网IP地址(非常重要这个)
6、添加可登录用户白名单:
在user_list文件中添加用户名,一行一个(此方式最方便,直接配置允许登录的用户账号名称即可)
7、添加可查看其它目录用户名单:
在chroot_list文件中添加用户名,一行一个,如果没有自己创建文件
8、权限配置:
local_umask=022(暂时不清楚为什么)
anon_umask=077(暂时不清楚为什么)
十一、修改linux的防火墙端口
vim /etc/sysconfig/iptables
添加一行,修改需要开通的端口号:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
如果是ftp是被动模式,还需要开通最小到最大端口的访问:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3010:3015 -j ACCEPT(例如:最小为3010,最大为3015端口)
重启服务
service iptables restart
十二、互联网端口映射配置
1、ftp连接端口配置:
一般默认的就是21端口
2、ftp数据端口配置:
就是自己指定的最小端口、最大端口范围内,包括最大、最小端口,逐个开通就行。
十三、ftp服务器增加新用户步骤
1、创建用户并指定默认路径:
useradd -d /data/ftpFiles/lsyftp(指定home路径)-m lsyftp(用户名称)
注意:用户文件夹lsyftp不要自己创建,会自动创建,以免因为文件夹权限问题出现异常。
2、修改用户密码:
passwd lsyftp(用户名称)
3、禁止ftp用户ssh登录:
查看/etc/shells文件,找到nologin的路径
执行命令:
usermod -s /sbin/nologin 用户名称
说明:通过禁止ftp用户进行ssh登录,可以尽量保证安全性;
4、将新创建用户添加到ftp白名单中
在/etc/vsftpd/user_list文件中添加用户名,一行一个
linux中搭建公网ftp服务器的更多相关文章
- 在Linux中搭建一个FTP服务器
在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...
- Linux中搭建一个ftp服务器详解
来源:Linux社区 作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...
- 一把鼻涕一把泪 搭建公网ftp服务器
至于为什么要搭建公网ftp服务器,就当我心血来潮吧. ftp开源工具很多,咱用的是filezilla服务器.后来为了方便搭建web服务器,就改成了集成工具xampp.客户端工具也是filezilla ...
- 【转】windows和linux中搭建python集成开发环境IDE
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- linux下搭建svn本地服务器
在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local # svnadmin create led_diplay ...
- Linux中如何安装Apache服务器
Linux中如何安装Apache服务器 由于学习的需要,所有手动安装了一下Apache源码包,安装过程中的问题千奇百怪,但是如果弄清楚了问题出在哪里,那么也不是太难.如果有学习者出现安装中的问题,可仔 ...
- linux中的redis缓存服务器
Linux中的Redis缓存服务器 一.Redis基础部分: 1.redis介绍与安装比mysql快10倍以上 *****************redis适用场合**************** 1 ...
- Linux中搭建FTP服务器
FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...
随机推荐
- 解决tomcat闪退问题
https://blog.csdn.net/zh2nd/article/details/79068680 转载此博客链接内容,非常感谢博主 本文参考CSDN博主 哈克沃德.的<Tomcat8启动 ...
- An internal error occurred during: "Add Deployment". Container with path org.eclipse.jdt.launching.
导入非本机项目出现这种错误,原因就是JDK版本不一致. 具体解决步骤如下: 右键项目名→Properties→JavaBuild Path→Libraries→选中JRE SystemLibrary[ ...
- 【ElasticSearch+NetCore 第一篇】在Windows上安装部署ElasticSearch和ElasticSearch-head
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- (一)Redis简介和安装
1 Redis介绍 1.1 什么是NoSql 为了解决高并发.高可扩展.高可用.大数据存储问题而产生的数据库解决方案,就是NoSql数据库. NoSQL,泛指非关系型的数据库,N ...
- SpringBoot | 第二十二章:定时任务的使用
前言 上两章节,我们简单的讲解了关于异步调用和异步请求相关知识点.这一章节,我们来讲讲开发过程也是经常会碰见的定时任务.比如每天定时清理无效数据.定时发送短信.定时发送邮件.支付系统中的定时对账等等, ...
- 【心得】asp.net 异常:正在中止线程 引发的问题
asp.net做的一个同步程序,同步的方法是通过JQuery的Ajax调用,同步过程所需要的时间大概有几个小时吧. 当在本机运行的时候,无论是debug模式还是release模式,都能正常运行. 发布 ...
- Day2下午
虽然成绩不太好,但有点进入状态了.期望200 实际160,忘记加判断了. T1 洗澡[问题描述]你是能看到第一题的friends 呢.——hja洗澡的地方,有一段括号序列,将一个括号修改一次需要1的代 ...
- 解决perl: warning: Setting locale failed.
在Ubuntu Server 12.04上执行apt-get install命令时,报如下warning 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- cms-详细页面-1
cms-详细信息页面设计思路:点击主页面然后查询详细信信,把查询出来的数据放大modelandvie里面,然后返回前台,然后在跳转页面取出来显示:代码:mapper: <?xml version ...
- LeetCode 4Sum 4个数之和
题意:这是继2sum和3sum之后的4sum,同理,也是找到所有4个元素序列,满足他们之和为target.以vector<vector<int>>来返回,也就是二维的,列长为4 ...