收藏 分享(赏)

ftps搭建.doc

上传人:gnk289057 文档编号:7894291 上传时间:2019-05-29 格式:DOC 页数:19 大小:797KB
下载 相关 举报
ftps搭建.doc_第1页
第1页 / 共19页
ftps搭建.doc_第2页
第2页 / 共19页
ftps搭建.doc_第3页
第3页 / 共19页
ftps搭建.doc_第4页
第4页 / 共19页
ftps搭建.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、ftps 与 sftp:FTPS 是借助 ssl 协议加密,ssl 是为 http/smtp 等加密设计的;SFTP 是借助 ssh 加密,ssh是为 telnet/ftp 等加密、 建立传输通道而设计的。 ssh 建立传输通道就是为了加密和传输,而且这个通道是可以用来远程登录。创建加密通道对文件进行加密。从原理上简单的讲:FTPS 是 ftp-over-ssl 的意思,即 ftp 借助 ssl 协议加密传输,不但要用ftp 服务器还要用 ssl 协议加密。sftp 协议是 ssh 中的一条独立的协议,利用 sftp 服务器就可以传输数据。下面笔者以 ssl 来实现 ftps 的安全传输:用

2、ssl 的是 ftps.(传输层的加密)SSL 验证: 1、只密码验证 2、SSL 证书验证,需要建立 CA 服务器实验思路:首先安装 wireshark 抓包工具,在没有使用 CA 服务器的情况下抓包,查看抓包情况。然后安装 CA 服务器为 ftp 服务器颁发证书。再次抓包,查看抓包。注:此实验中CA 服务器与 ftp 服务器处于同一个主机上EXPLICIT SSL (ftps)新建用户:rootlyt # useradd user1 #新建用户 user1,用于抓包测试。rootlyt # passwd user1安装 wireshare:rootlyt # mkdir /mnt/cdro

3、mrootlyt # mount /dev/cdrom /mnt/cdrom/rootlyt # cd /mnt/cdrom/Server/rootlyt Server# vim /etc/yum.repos.d/rhel-debuginfo.repo #编辑本地 yumrootlyt Server# yum install wireshark y #安装 wireshark 抓包工具安装 vsftp:rootlyt Server# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpmrootlyt Server# service vsftpd start使用抓包工具,查

4、看在没有使用 ssl 时的抓包情况:rootlyt Server# tshark -ni eth0 -R “tcp.dstport eq 21“ #由于客户端必须使用21端口与服务器建立连接,所以此处对于21号端口进行抓包用户名和密码已经泄露:搭建 CA 服务器:rootlyt Server# cd /etc/pki/tls/rootlyt tls# vim frootlyt tls# cd /etc/pki/CA/ #切换到与 CA 服务器有关的目录rootlyt CA# mkdir certs #建立与证书有关的目录rootlyt CA# mkdir newcerts #与新证书有关的目录

5、rootlyt CA# mkdir crl #证书吊销列表rootlyt CA# touch index.txtrootlyt CA# touch serialrootlyt CA# echo “01“ serial #给 serial 一个初始值rootlyt CA# openssl genrsa 1024 private/cakey.pem #使用非对称加密算法 rsa,采用1024为算法,得到一个密钥存放在 private/cakey.pem 中rootlyt CA# chmod 600 private/cakey.pem #私钥不允许别人查看,所以将cakey.pem 文件的权限改为6

6、00 ,只有所属用户可以读写rootlyt CA# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650 #使用 CA 服务器自己的私钥 cakey.pem 产生一个证书 cacert.pemrootlyt CA# mkdir -pv /etc/vsftpd/certs #创建一个目录,存放于 vsftp 有关的证书,证书请求,密钥rootlyt CA# cd /etc/vsftpd/certs/rootlyt certs# openssl genrsa 1024 vsftpd.key #非对称加密算法

7、 rsa,使用1024位,算出一个密钥 vsftp.keyrootlyt certs# openssl req -new -key vsftpd.key -out vsftpd.csr #利用私钥 vsftp.key 产生一个证书请求文件 vsftp.csrrootlyt certs# openssl ca -in vsftpd.csr -out vsftpd.cert #利用证书请求文件的到一个证书 vsftp.certrootlyt certs# chmod 600 * #将该目录下的文件权限全部改为600,即所属用户可读写将申请得到的 CA 证书和 vsftp 关联起来:rootlyt

8、certs# chmod 600 *rootlyt certs# vim /etc/vsftpd/vsftpd.confrootlyt certs# service vsftpd restart使用 flashfXP 作为测试:rootlyt certs# tshark -ni eth0 -R “tcp.dstport eq 21“ #抓包,查看能否获得用户名和密码查看抓包结果:无法获得用户名和密码http:/ linux 下安装 rpm 包时经常会遇到下面这个问题:error: Failed dependencies:.省略号表示安装此 rpm 缺少的包。遇到此问题时可以在安装 rpm 包命

9、令的后面加两个参数,如:rpm -ivh libstdc+5.0-3.3.3-62745cl.i386.rpm改成:rpm -ivh libstdc+5.0-3.3.3-62745cl.i386.rpm -nodeps -force加上那两个参数的意义就在于,安装时不再分析包之间的依赖关系而直接安装,也就不会再提示 error: Failed dependencies:这样的错误了在 RedHat Linux 和 Mandrake 等兼容 RedHat 的发行版中,整个发行版都是利用 RPM 安装的。所以安装新软件的最好方法是从网络上下载 rpm 包。IMPLICIT SSL(ftps)htt

10、p:/ SSL 加密协议?SSL 协议(Secure Socket Layer,安全套接层)是由网景(Netscape)公司推出的一种安全通信协议,它能够对信用卡和个人信息提供较强的保护。SSL 是对计算机之间整个 会话进行加密的协议。在 SSL 中,采用了公开密钥和私有密钥两种加密方法。所以使用 SSL 协议后我们就可以保证网络中传输的数据不被非法用户窃取到了。一、安装 Serv-U 服务器由于安装 Serv-U 的文章比较多,所以本文就不详细介绍了。安装完毕后我们要建立一个 FTP 服务器的域并设置相应的用户名和密码。二、创建 SSL 证书要想使用 Serv-U 的 SSL 功能,需要 S

11、SL 证书的支持才行。虽然 Serv-U 在安装之时就已经自动生成了一个 SSL 证书,但这个默认生成的 SSL 证书在所有的 Serv-U 服务器中都是一样的,非常不安全,所以我们需要手工创建一个自己独特的 SSL 证书。第一步:在“Serv-U 管理员”窗口中,展开“本地服务器设置”选项,然后切换到“SSL证书”标签页。第二步:创建一个新的 SSL 证书。首先在“普通名称”栏中输入 FTP 服务器的 IP 地址,接着其它栏目的内容,如电子邮件、组织和单位等,根据用户的情况进行填写。第三步:完成 SSL 证书标签页中所有内容的填写后,点击下方的 “应用”按钮即可,这时 Serv-U 就会生成

12、一个新的 SSL 证书。三、启用 SSL 功能 虽然为 Serv-U 服务器创建了新的 SSL 证书,但默认情况下,Serv-U 是没有启用 SSL功能的,要想利用该 SSL 证书,首先要启用 Serv-U 的 SSL 功能才行。第一步:要启用 Serv-U 服务器中域名为“softer”的 SSL 功能。在“Serv-U 管理员”窗口中,依次展开“本地服务器域softer”选项。第二步:在右侧的“域” 管理框中找到“ 安全性”下拉列表选项。这里 Serv-U 提供了3种选项,分别是“仅仅规则 FTP,无 SSL/TLS 进程”、 “允许 SSL/TLS 和规则进程”、 “只允许SSL/TLS

13、 进程”,默认情况下,Serv-U 使用的是“仅仅规则 FTP,无 SSL/TLS 进程”,因此是没有启 用 SSL 加密功能的。第三步:在“安全性” 下拉选项框种选择“ 只允许 SSL/TLS 进程” 选项,然后点击“应用”按钮,即可启用 softer 域的 SSL 功能。小提示:启用了 SSL 功能后,Serv-U 服务器使用的默认端口号就不再是“21”了,而是“990”了,这点在登录 FTP 的时候一定要留意,否则就会无法成功连接 Serv-U 服务器四、使用 SSL 加密连接 FTP启用 Serv-U 服务器的 SSL 功能后,就可以利用此功能安全传输数据了,但 FTP 客户端程序必须

14、支持 SSL 功能才行。 如果我们直接使用 IE 浏览器进行登录则会出现图4显示的错误信息,一方面是以为没有修改默认的端口21为990,另外 IE 浏览器不支持 SSL 协议传输。当然支持 SSL 的 FTP 客户端程序现在也比较多,笔者以“Flash FXP”程序为例,介绍如何成功连接到启用了 SSL 功能的 Serv-U 服务器。第一步:运行“FlashFXP”程序后,点击“会话快速连接”选项,弹出“快速连接”对话框,在“服务器或 URL”栏中输入 Serv-U 服务器的 IP 地址,在“端口”栏中一定要输入“990”,这是因为 Serv-U 服务器启用 SSL 功能后,端口号就从“21”

15、变为“990” 。第二步:输入可以正常登录 FTP 服务器的“用户名” 和“密码”。第三步:切换到“SSL”标签页,选中“绝对 SSL”选项,这一步骤是非常关键的,如果不选中“绝对 SSL”,就无法成功连接到 Serv-U 服务器。最后点击“ 连接”按钮。 根据实际传输情况在绝对 SSL 下方的四个选项进行选择即可。第四步:当用户第一次连接到 Serv-U 服务器时,Flash FXP 会弹出一个“证书” 对话框,(如图7)这时用户只要点击“接受并保存”按钮,将 SSL 证书下载到本地后,就能成功连接到 Serv-U 服务器,以后和 Serv-U 服务器间的数据传送就会受到 SSL 功能的保护

16、,不再是以明文形式传送,这样就不用再担心 FTP 账号被盗,敏感信息被窃取的问题了。在 Flash FXP 的下方我们也会看到一个小锁的标志了,他代表当前传输是加密安全的传输。小提示:如果我们仅仅选择接受则每次登录 FTP 时都会弹出这个证书对话框。FTP 协议的分析和扩展二(2007-01-11 19:27:53) 转载 分类:编程天地3.0 改进: ftp 安全扩展, SSL/TLS在传统的 ftp 通讯和传输过程中可以看出,ftp 协议提供了一种简单实用的网络文件传输方法,但是缺陷也是显而易见的。传统 ftp 服务缺乏对数据的机密性和完整性保护,对通讯双方也没有可靠的认证措施,同时还存在

17、着明文信息传输的弱点 -在同一个网络上的任何用户都可能窃取到重要的信息。虽然近年来出现了很多种 ftp 的替代服务,例如 ssh 加密通道的 sftp/scp,或使用 IPSEC 协议的 VPN 通道等等,但是在大多数情况下,ftp 的通用性和易用性使得它在很长一段时间内必然无法被完全取代。所以如同其他一系列古董服务(例如 SMTP/HTTP)一样,近年来也出现了一些不需要对 ftp 协议自身做完全更改的协议扩展模块,能够良好的完成兼容性和功能扩展。ftp SSL/TLS Extension 就是其中一种方式。FTP 安全扩展 : http:/www.ietf.org/rfc/rfc2228.

18、txthttp:/www.ietf.org/rfc/rfc2246.txtFTP 安全扩展,SSL 接口草案:http:/www.ietf.org/internet-drafts/draft-murray-auth-ftp-ssl-13.txt3.1 SSL/TLS 简介先说一下 SSL/TLS 协议,SSL(Secure SocketLayer)最早是 netscape 公司设计的用于 HTTP 协议加密的安全传输协议,SSL 工作于 TCP协议的传输层(TCP 层)和应用程序之间。作为一个中间层,应用程序只要采用 SSL 提供的一套 SSL套接字 API 来替换标准的 Socket 套接字

19、,就可以把程序转换为 SSL 化的安全网络程序,在传输过程中将由 SSL 协议实现数据机密性和完整性的保证。SSL 协议的当前版本为3.0,当 SSL 取得大规模成功后,IETF(www.ietf.org )将 SSL 作了标准化,规范为 RFC2246,并将其称为TLS(TransportLayerSecurity) 。从技术上讲,TLS1.0 与 SSL3.0的差别非常微小,SSL 由于其历史应用的原因在当前的商业应用程序之中使用得更多一些。TLS 协议,RFC 2246: http:/www.ietf.org/rfc/rfc2246.txt3.2 数据机密性和完整性前面多次提到了数据的机

20、密性和完整性两个方面,在此略微解释一下。数据的机密性确保数据信息机密可靠,不会被没有权限的对象所访问和浏览到,基本的机密性保护手段就是数据加密;而数据的完整性则是指数据在传输和存储过程中将保证数据的唯一和完整,不会被恶意篡改着所修改,保证数据完整性的基本手段主要有数字签名。这里就牵扯到数据加密领域的两类算法,加密算法和散列算法。加密算法从数学原理上看可以分为对称加密和非对称加密,从数据处理方法上可以分为流加密和分组加密,本文重点不在此,不再赘述,只举例几种常用的加密算法: DES, 3DES, AES,BlowFish,RC2-RC6等等。数据签名算法是加密领域的另一套方法,又叫数据散列算法,

21、用于对数据进行处理生成一个唯一的等长签名字符串,原数据的长度可能是任意的,而任意两个相似但哪怕只有少许细微差别的数据集,都将产生差别非常大的等长签名字符串,这个字符串在一般意义下被认为是极少会发生空间冲突(重复) 的,因此数据散列算法对于确保数据的唯一性是一种必要的手段;常见的数字散列算法有 MD5,SHA-1 ,CAST-256等等。可以看出,面对如此多种类的加密算法,应用程序处理起来是很繁琐的。SSL 在这个层次中就提供了一种自动的算法协商,密钥交换和数据加密过程。SSL 协议分为两部分:HandshakeProtocol 和 RecordProtocol,HandShake 部分用于处理

22、通讯双方的算法协商和密钥交换过程,Record 部分用于对数据进行加密传输。整个的 SSL 基本通讯过程如下:/=| | SSL Client SSL Server | | (TCP 三步握手 ) | (SSL 套结字连接) | . | . SSLSocket() | . Bind() | SSLSocket() - | - Connect | (连接加密算法协商) | ClientHello() - | (服务器端算法确认和证书发送)| ServerHello | Certificate* | ServerKeyExchange* | CertificateRequest* | - Serv

23、erHelloDone | (客户端证书验证与密钥交换) | Certificate* | ClientKeyExchange | CertificateVerify* | ChangeCipherSpec | Finished - (数据加密算法协商) | ChangeCipherSpec | - Finished | (应用数据加密传输) | Application Data - Application Data | . |=/SSL 套结字通讯过程如下:1, Client 和 Server 双方程序通过 ssl socket 系列函数替换 BSD Socket 系列函数;2, Clien

24、t 通过 TCP 协议连接到 Server 端应用程序;3, Client 发起连接质询,发送自身所能实现的“安全集合“,其中包含加密和签名算法协商;4, Server 回应连接,包含本次通讯所使用的算法集合,以及 Server 端证书;5, Client 收到证书后,使用 Server 端协商的算法,用 Server 端证书中包含的 Server 公钥加密一个随机序列,作为一个挑战质询发回 Server;6, Server 收到加密密文,使用自身的私钥进行数据解密,如果成功,代表 SA 协商匹配,可以开始通讯;7, 可选过程,继续发起 Client 端验证过程,Client 端发出 Clie

25、nt 证书,进行 Client 端验证过程;8, 可选过程,数据传输过程加密算法协商;9, 协商完毕,开始加密数据传输;可以看出,SSL Socket 通讯过程相比正常的 BSD Socket,只不过多了一个安全集合交换协商的过程,这个过程由 SSL 实现自身来完成,相对于应用程序,只要采用了 SSL Socket,其他的过程都是透明的。SSL 通讯过程中的第3-6步是必须操作,包含了 Server 端验证过程和加密算法协商,类似于 TCP 协议的三步握手过程,这个过程中通过公钥加密算法加密密钥(公钥)和解密秘钥(私钥)不同的功能,巧妙地实现了密钥交换和算法协商,并且由于解密秘钥不需要在网络上

26、传输,这样就同时实现了数据通讯过程的保密性和内部应用程序协议的保密性。在第7步进行 Client端证书的验证过程中,由于当前网络环境下 PKI 和 CA 体系尚不完善,并且由于 SSL 设计的工作环境相对对 Client 端的安全需求并不很高,所以 Client 端验证一般作为一种可选手段来实现,取决于应用程序的安全等级需求。SSL 数据通讯的机密性特性就是由上面的过程完成的,在算法协商过程中除了加密算法的协商外还会交换一个数据签名算法,用于对数据生成一个唯一的散列校验码,防止在传输过程中数据被篡改,数据签名过程实现了通讯过程的完整性保证。对应于 SSL 所提供的两种安全特性,机密性和保密性,

27、ssl 定义了四个安全级别,分别是这两种特性的状态组合:C - Clear - 没有任何保护S - Safe - 完整性实现,但是没有机密性E - Confidential - 机密性实现,但是没有完整性P - Private - 同时实现机密性和完整性ftp 的 ssl 扩展使用了其中的两种状态1)Clear (requested by PROT C)2)Private (requested by PROT P)在连接过程中通过 ftp 扩展指令 PROT 来完成状态的切换。3.3 ssl FTP 扩展在 RFC 2228中,ftp 协议扩展了如下指令 :AUTH (Authenticati

28、on/Security Mechanism),ADAT (Authentication/Security Data),PROT (Data Channel Protection Level),PBSZ (Protection Buffer Size),CCC (Clear Command Channel),MIC (Integrity Protected Command),CONF (Confidentiality Protected Command), andENC (Privacy Protected Command).其中和 SSL 扩展相关的主要指令有以下几条:AUTH (协商扩展验证

29、): 指定扩展认证方法,SSL 或 TLS;PBSZ (协商保护缓冲区): 制定保护缓冲区,SSL/TLS 模式中必须为 0;PROT (切换保护级别 ): 切换保护级别,可以为“C“ 无保护,或“P“ 保护级别;在一个典型的 ftp ssl 通讯过程中指令序列如下:/=| Client Server | control data data control |=| | socket() | bind() | socket() | connect() - accept() | - 220 | AUTH TLS - | - 234 | TLSneg() - TLSneg() | PBSZ 0 -

30、| - 200 | PROT P - | - 200 | USER elly - | - 331 | PASS * - | - 230 | |=/一个 SSL FTP 的连接过程实例:/=| | WinSock 2.0 - OpenSSL 0.9.7d 17 Mar 2004 | R Connecting to 192.168.21.3 - IP=192.168.21.3 PORT=2121 | R Connected to 192.168.21.3 | R 220 Please enter your login name now. | R AUTH TLS (认证方法)| R 234 AUT

31、H Command OK. Initializing SSL connection. | R Connected. Negotiating SSL/TLS session | R SSL/TLS negotiation successful. (协商关联)| R TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits)| R PBSZ 0 (PBSZ 设置)| R 200 PBSZ Command OK. Protection buffer size set to 0. | R USER elly (ftp 传统认证)|

32、R 331 Password required for elly . | R PASS (hidden) | R 230 User elly logged in. | R SYST | R 215 UNIX Type: L8 , CP:936 | R FEAT (扩展指令测试)| R 211-Extensions supported: | R SIZE | R MDTM | R MDTM YYYYMMDDHHMMSS filename | R LIST -laT | R STAT -laT | . | R AUTH SSL | R AUTH TLS | R PROT | R PBSZ | R

33、SSCN | R UTF8 | R 211 END | R CLNT FlashFXP 2.2.985 | R 213 client type set to FlashFXP 2.2.985. | R PWD (传统通讯过程)| R 257 “/“ is current directory | R TYPE A | R 200 Type set to ASCII. | R PROT P (切换到保护模式)| R 200 PROT P accepted. | R PASV | R 227 Entering Passive Mode (192,168,21,3,5,122) | R Opening

34、 data connection IP: 192.168.21.3 PORT: 1402 | R LIST -al | R Connected. Negotiating SSL/TLS session (加密通讯过程 )| R 150 Opening ASCII data connection for ls / using SSL/TLS. | R SSL/TLS negotiation successful. | R TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits)| R 226-free disk space

35、under this directory : 101 mb | R 226 Transfer finished successfully. Data connection closed . | R List Complete: 181 bytes in 0.14 seconds (1.26 KBps) | |=/在 ssl ftp 中,有以下几个特殊点:1, AUTH 是可选指令,因为 ssl ftp 实现的方式不同而存在,详见下一节 explicit SSL与 implicit SSL;2, PBSZ 和 PROT 是必须指令,用于切换到保护通道模式;3, AUTH,PBSZ 和 PROT

36、指令是实现 SSL 认证方式的必须方法,但可以与传统的User/Password模式共存,或只取其一;4, SSL 认证方法的 SSL 认证过程(AUTH/PBSZ) 和传统模式认证并无严格的先后顺序关联,可能在用户名和密码之前,也可能在之后;但出于安全因素,最好在 User/Password 传输之前切换到安全模式,可以确保 User/Password 的传输安全;5, 在 explicit SSL 模式中,可以在任何时间切换到保护模式,如第四条所述;在 implicitSSL 模式中,初始化连接将直接采用 SSL Socket 建立,不需要 AUTH 指令切换。3.4 Explicit S

37、SL 和 Implicit SSL由于历史和软件兼容性因素,ssl FTP 的实现有两种方式,分别是 Explicit SSL 和 Implicit SSL,上面的大部分数据都是以 explicit SSL 为范例。Explicit SSL(外部 SSL),又被称为 AUTH SSL 方式;Explicit SSL 保持了与传统 ftp 服务的良好兼容性,以一个 ftp 服务扩展指令的方式存在。初始化连接可以采用与传统 ftp 兼容的连接模式,当需要传输加密信息时使用 AUTH SSL 指令切换到保护模式。使用 Explicit SSL时Server 必须完整地实现 AUTH/PBSZ/PRO

38、T 等指令。Implicit SSL(隐含 SSL),是一个全新的 ftp 实现方式,在 TCP 三步握手完成之后就直接使用SSL Socket 进行协商和通讯,之后将全程采用 SSL 加密连接。在这种模式中一般 ftp server将监听在一个新的服务端口,IANA 指定 ftps:tcp:990为 implicit SSL ftp 的默认端口。因为在连接初始阶段就自动由 SSL 实现完成了协商,因此 implicit 模式中 AUTH 指令是可选的。在不考虑兼容性的因素下,在服务期端最好优先使用 implicit SSL 模式,可以获得更好的保密特性。比较两种 ssl ftp 实现模式区别

39、如下:/=| explicit implicit | client server client server |=| | | connect() - -+-明文 | sslConnect() - 加密 | - 220 | | - 220 -+ | AUTH SSL - | | USER * - | | - 234 -+ | - 331 | | TLSneg() - TLSneg() -+-加密 | PASS * - | | - 200 | | - 230 | | USER * - | | LIST - . | | - 331 | | RETR - . | | PASS * - | | . |

40、| - 230 | | | | LIST/RETR - . | | sslClose() - . -+ | close() - . -+ | | | |=/3.5 一些杂乱图示在3.3种引用了一个 Explicit SSL 连接指令序列,这里是对应的 Implicit SSL 连接过程:/=| WinSock 2.0 - OpenSSL 0.9.7d 17 Mar 2004 | R Connecting to 192.168.21.3 - IP=192.168.21.3 PORT=9909 | R Connected to 192.168.21.3 | R Connected. Negotia

41、ting SSL/TLS session | R SSL/TLS negotiation successful. | R TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits) | R 220 Please enter your login name now. | R PBSZ 0 | R 200 PBSZ Command OK. Protection buffer size set to 0. | R USER elly | R 331 Password required for elly . | R PASS (hi

42、dden) | R 230 User elly logged in. | R SYST | R 215 UNIX Type: L8 , CP:936 | R PROT P | R 200 PROT P accepted. | R PASV | R 227 Entering Passive Mode (192,168,21,3,5,122) | R Opening data connection IP: 192.168.21.3 PORT: 1402 | R LIST -al | R Connected. Negotiating SSL/TLS session | R 150 Opening ASCII data connection for ls / using SSL/TLS. | R SSL/TLS negotiation successful. | R TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits) | R List Complete: 181 bytes in 0.17 seconds (1.04 KBps) |=/Explicit SSL 模

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报