FTP文件服务器

FTP连接及传输模式

控制连接:TCP 21,用于发送FTP命令信息

数据连接:TCP 20,用于上传、下载数据

数据连接的建立类型:

主动模式:服务端从20端口主动向客户端发起连接

被动模式:服务端在指定范围内某个端口被动等待客户端连接

环境准备:(同网段两台虚拟机、一台客户机、一台服务器)

注意:iptables和Selinux对服务的影响:

两台虚拟机IP:

服务器搭建:

㈠、匿名用户操作:

匿名用户登录实验:(实现匿名用户上传、下载、创建,删除、目录、文件)

服务端安装软件(vsftpd)

客户端需要安装FTP软件

服务端修改配置文件(/etc/vsftpd/vsftpd.conf)

客户端登录:

此时客户端登录后上传文件显示的还是失败:

这时,我们先查看一下,FTP服务默认开放目录的权限:

发现,目录并没有权限支持用户上传,这时我们更改目录的权限(更改目录拥有者为FTP)

这时,重启服务后,再登录就可以上传了

上传:

下载:

创建目录:

删除:

㈡、本地用户操作实验:

注意:iptables和Selinux对实验的影响

服务器端:

安装软件(vsftpd)

修改配置文件:

创建登录用户:

启动服务客户端验证:

客户端:

需要安装ftp工具(ftp)

测试上传、下载:

由于此时虽然是用户登录,但是用可以任意切换到某个目录下,查看相应文件,这对系统的安全存在很大的隐患,我们需要采取措施来限制用户来禁止离开自己的家目录:

这时我们要引入chroot机制,修改服务器端配置文件:

注意:将配置文件中此三项全部开启之后:效果是:

在/etc/vsftpd/创建chroot_list文件,在此文件中添加的用户将允许离开自己的家目录。

此时我们系统中有三个,测试用户:

在chroot_list文件中添加cwy用户,允许cwy用户离开自己的家目录,其他用户则禁止:

客户端测试:

发现,chroot_list文件中添加的cwy用户可以离开自己的家目录,未被添加进去的用户zhangsan则被禁止离开。

此时在服务器端修改第二种情况:

开启后面两个,得到的效果是:添加的用户将被禁止离开家目录,未被添加进去的用户,则可以离开

客户端验证:

为了增强ftp服务器的安全性,这里可以禁止特定的恶意用户登陆:

这里分为两种情况:userlist_enable=YES&&userlist_deny=YES

userlist_enable=YES&&userlist_deny=NO

当userlist_enable=YES&&userlist_deny=YES时:

(/etc/vsftpd/user_list文件中的用户将被禁止登陆)

客户端验证:

当userlist_enable=YES&&userlist_deny=NO时:

(/etc/vsftpd/user_list文件中外的用户将被禁止登陆)

客户端验证:

注意:出现在/etc/vsftpd/ftpusers文件中的用户将被全部禁止登录,不管userlist相关文件做什么设置,ftpusers权限高于其他!

㈢、虚拟用户登录实验:

创建用户文件:

在/etc/vsftpd/目录下创建virtual.list

生成用户数据库文件:

进入/etc/pam.d/目录下,创建pam认证模块配置:

创建虚拟映射用户:

修改配置文件,开启虚拟用户模块:

创建vsftpd_dir目录,并为不同用户,设置不同权限:

u1用户可以上传

u2用户可以创建目录

u3用户可以给文件改名

客户端测试:

注意:为用户所设置的权限,配置文件中必须要添加,与之对应,否则不生效!

Openssl+vsftpd加密验证方式:

由于ftp在传输过程中使用密码明文传输方式,这样用户的密码、账户等信息都暴露在互联网上,极大地增强了服务器的风险:

例如:当用户在登录过程中:

此时密码和账户信息是可以被破解的:

这时需要对用户登录过程过程加密:

安装软件

检查vsftpd是否支持ssl

生成加密信息:

把证书存放到特定目录:

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

客户端验证:

时间: 2024-10-03 14:06:03

FTP文件服务器的相关文章

根据URL,用户名,密码将文件上传到FTP文件服务器

1.根据URL,用户名,密码进行初始化 public class FtpTools { public static String hostname=null; public static Integer port=null; public static String username=null; public static String password=null; public static void init(String hostname1,Integer port1,String use

FTP文件服务器搭建

Filezilla Ref: 如何用Filezilla软件搭建FTP服务器 Wing FTP Server(商业版) 按照提示安装配置FTP服务器文件路径. 配置 FTP服务器配置 S1.下载服务端文件 s1.link; S2.配置本地文件目录 s1. S3.编写启动脚本 s1. 一般支持随系统启动,如不支持参考nginx启动配置: S4.测试文件服务器 ftp://192.168.31.xxx 带登录 ftp://username:[email protected] 命令备注   BUG: 配

FTP文件服务器搭建与应用

1.ftp服务端部署搭建应用 1.1vsftd部署 1)基础环境 [[email protected] ~]# uname -r 2.6.32-573.el6.x86_64 [[email protected] ~]# cat /etc/centos-release CentOS release 6.7 (Final) 2)关闭防火墙以及selinux [[email protected] ~]# /etc/init.d/iptables stop [[email protected] ~]#

ftp文件服务器上传下载案例

Vsftpd是very secure FTP daemon(非常安全的FTP守护进程) 21端口 控制连接 20端口 数据连接 在Linux安装vsftpd后 默认匿名用户与本地用户都可以登录 匿名用户登陆到/var/ftp,不能上传和下载 本地用户登陆到本地用户的家目录,可以上传和下载 Linux  Client(192.168.2.2) -------RHEL5.9(vmnet1)--------(vmnet1) 192.168.2.1                   Win7  Cli

FTP文件服务器的匿名、本地、虚拟,账户访问

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地说,支持FTP协议的服务器就是FTP服务器. 实验准备 两台虚拟机,Windows7和linux(Red Hat Enterprise 6.5) 两台虚拟机都选择仅主机模式,确保两台虚拟机能够互相ping通 利用rpm安装为Linux虚拟

虚拟用户登录ftp文件服务器

安装vsftpd yum install vsftpd db4* -y 增加虚拟用户账号 vim /etc/vsftpd/vuser.txt 1 xiaogege 2 1234qwer 3 xiaojiejie 4 1234qwer 5 xiaodidi 6 1234qwer chmod 600 /etc/vsftpd/vsuer.txt 生成账号密码数据库 db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db 修改认证

FTP文件服务器共享/匿名访问。别名访问。用户访问

rpm -ivh /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm vsftpd.conf配置文件/user_lis用户列表 默认情况处了面的用户以外都能登陆 anonymous_enable=YES //开启匿名用户访问anon_mkdir_write_enable=YES //匿名用户上传/建立目录anon_upload_enable=YES //匿名用户上传权限 ![](http://i2.51cto.com/images/blog/2018

虚拟账号ftp服务器

1. 简介 由于部门要将统计出来的数据提供给其他部门同事使用,以及其他公司使用.考虑数据的传输管理简单,我们搭建了ftp文件服务器. 2. 部署架构 1)数据源在内网上面的,数据分析服务器上计算完成,然后内网通过rsync同步到ftp服务器上.  ftp-server rsync配置: 1 [[email protected]_72_183_centos ftpdata]# cat /etc/rsyncd.conf 2 uid = root 3 gid = root 4 use chroot =

FTP操作类

using System; using System.Collections.Generic; using System.Net; using System.IO; namespace HGFTP { /// <summary> /// FTP客户端操作类 /// </summary> public class FTPTools { #region 构造函数 /// <summary> /// 创建FTP工具 /// <para> /// 默认不使用SSL,