-防火墙与Linux代理服务器.docx

上传人:可****阿 文档编号:30389467 上传时间:2022-08-06 格式:DOCX 页数:30 大小:180KB
返回 下载 相关 举报
-防火墙与Linux代理服务器.docx_第1页
第1页 / 共30页
-防火墙与Linux代理服务器.docx_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《-防火墙与Linux代理服务器.docx》由会员分享,可在线阅读,更多相关《-防火墙与Linux代理服务器.docx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、防火墙与Linux署理办事器Linux提供了一个非常优秀的防火墙东西netfilter/iptables,它免费、功效强大,可以对流入流出的信息进行灵活控制,而且可以在一台低配置呆板上很好地运行。一、 netfilter/iptables简介Linux在2.4以后的内核中包罗netfilter/iptables,系统这种内置的IP数据包过滤了具使得配置防火墙和数据包过滤变得越发容易,使用户可以完全控制防火墙配置和数据包过滤。netfiher/iptables允许为防火墙创建可定制的规矩来控制数据包过滤,而且还允许配置有状态的防火墙。另外,netfiher/iptables还可以实现NAT(网络

2、地点转换)和数据包的支解等功效。netfilter组件也称为内核空间,是内核的一部门,由一些数据包过滤表组成,这些表包罗内核,用来控制数据包过滤处置惩罚的规矩集。iptables组件是一种东西,也称为用户空间,它使插入、修改和删除数据包过滤表中的规矩变得容易。使用用户空间(iptables)构建自己定制的规矩,这些规矩存储在内核空间的过滤表中。这些规矩中的目标报告内核,对满足条件的数据包接纳相应的步伐。凭据规矩处置惩罚数据包的类型,将规矩添加到差别的链中。处置惩罚入站数据包的规矩被添 加到INPUT链中。处置惩罚出站数据包的规矩被添加到OUTPUT链中。处置惩罚正在转发的数 据包的规矩被添加到

3、FORWARD链中。这二个链是数据包过滤表(filter)中内置的默认主规矩链。每个链都可以有一个计谋,即要执行的默认操纵,当数据包与链中的所有规矩都不 匹配时,将执行此操纵(理想的计谋应该抛弃该数据包)。 数据包经过filter表的历程如图1所示。图1 数据包经过fiher表的历程二、iptables的语法及其使用通过使用iptables命令创建过滤规矩,并将这些规矩添加到内核空间过滤表内的链中。添加、删除和修改规矩的命令语法如下:格式:#iptables -t table command matchtarget说明:1、table -t table)有三种可用的表选项:filter、nat

4、和mansle。该选项不是必须的,如未指定,则filter作为默认表。filter表用于一般的数据包过滤,包罗INPUT、OUTPUT和FORWARD链。nat表用于要转发的数据包,包罗PREROUTING、OUTPUT和POSTROUTING链。manglc表用于数据包及其头部的变动,包罗PREROUTING和OUTPUT链。2commandcommand是iptables命令中最重要的部门,它报告itables命令要进行的操纵,如插入规矩、删除规矩、将规矩添加到链尾等。中tables常用的一些操纵命令见下表。表 iptables常用的操纵命令操纵命令功 能-A或-append该命令将一条规

5、矩附加到链的末尾-D或-delete通过用-D指定要匹配的规矩大概指定规矩在链中的位置编号,该命令从链中删除该规矩-P或-policy该命令设置链的默认目标,即计谋。所有与链中任何规矩都不匹配的数据包都将被强制使用此链的计谋-N或-new-chain用命令中所指定的名称创建一个新链-F或-flush如果指定链名,该命令删除链中的所有规矩,如果未指定链名,该命令删除所有链中的所有规矩。此参数用于快速清除-L或-list列出指定链中的所有规矩示例:#iptables -A INPUT -s 192.168.0.10 -j ACCEPT该命令将一条规矩附加到INPUT链的末尾,确定来自源地点192.

6、168.0.10的数据包可以ACCEPT。#iptables -D INPUT -dport 80 -j DROP该命令从INPUT链删除规矩。#iptables -P INPUT DROP该命令将INPUT链的默认目标指定为DROP。这将抛弃所有与INPUT链中任何规矩都不匹配的数据包。3matchmateh部门指定命据包与规矩匹配所应具有的特征,好比源IP地点、目的IP地点、协议等。lptables常用的规矩匹配器见下表。表 iptabes常用的规矩匹配器参 数功 能-p或-protocol该通用协议匹配用于查抄某些特定协议。协议示例有TCP、UDP、ICMP及用逗号分开的任何这三种协议的

7、组合列表以及ALL(用于所有协议)。AILL是默认匹配,可以使用!标记,表现不与该项匹配-s或-souece该源匹配用于凭据数据包的源IP地点来与它们匹配。该匹配还允许对某一范畴内的IP地点进行匹配,可以使用!标记,表现不与该项匹配。默认源匹配与所有IP地点匹配-d或-destination该目的地匹配用于凭据数据包的目的地IP地点来与它们匹配。该匹配还允许对某一范畴内IP地点进行匹配,可以使用!标记,表现不与该项匹配示例:#iptables-A INPUT -p TCP,UDP#iptables-A INPUT-p!ICMP#iptables-A OUTPUT-s 192168010#ipt

8、ables-A OUTPUT-s 1 210431100#iptables-A INPUT-d 19216811#iptables-A OUTPUT-d 1 2104311004target目标是由规矩指定的操纵,lptaLles常用的一些目标和功效说明见下表。表 iptables常用的目标和功效目标功效ACCEPT当数据包与具有ACCEPT目标的规矩完全匹配时,会被担当(允许它前往目的地),而且它将停止遍历链(虽然该数据包可能遍历另一个表中的其他链,而且有可能在那里被抛弃)。该目标被指定为-j ACCEPTDROP当数据包与具有DROP目标的规矩完全匹配时,会阻塞该数据包,而且不对它做进一步

9、处置惩罚。该目标被指定为-j DROPREJECT该目标的事情方法与DROP目标相同,但它比DROP好。和DROP差别,REJECT不会在办事器和客户机上留下死套接字。另外,RKJECT将错误消息发回给数据包的发送方。该目标被指 定为-j REJECTRETURN在规矩中设置的RETURN目标让与该规矩匹配的数据包停止遍历包罗该规矩的链。如果链是如INPUT之类的主链,则使用该链的默认计谋处置惩罚数据包。该目标被指定为-j RETURN5生存规矩用上述要领创建的规矩被生存到内核中,这些规矩在系统重启时将丢失。如果希望在系统重启后还能使用这些规矩,则必须使用iptables -save命令将规矩

10、生存到某个文件 (iptables -script)中。#iptables -saveiptables-script执行如上命令后,数据包过滤表中的所有规矩都被生存到lptables-script文件中。当系统重启时,可以执行lptaLles-restoreiptables-script命令,将规矩从文件iptables -scrtpt中规复到内核空间的数据包过滤表中。三、 设置防火墙在终端窗口执行system-config-securitylevel命令,打开“宁静级别设置”窗口,如 图2所示。可以启用或停用防火墙。可以添加可信任办事,好比添加FTP和SSH。添加的可信任办事其实是允许数据包

11、从该办事对应的端口进出。另外也可以直接添加可信任的端口,好比添加了3128(squid办事)。端窗口执行iptables -L命令,如图3所示,可以看出适才添加的过滤规矩已经生效。 图2 宁静级别设置窗口 图3 执行iptables -L命令下面是一个iptables的脚本实例,读者要凭据自己的情况需求进行相应的调解。#!/bin/bashINET_IF=ppp0 #外网接口LAN_IF=eth0 #内网接口LAN_IP_RANGE=192.168.1.0/24 #内网IP地点范畴,用于NATIPT=/sbin/iptables #界说变量MODPROBE=/sbin/modprobe$MOD

12、PROBE ip_tables #下面9行加载相关模块$MODPROBE iptable_nat$MODPROBE ip_nat_ftp$MODPROBE ip_nat_irc$MODPROBE ipt_mark$MODPROBE ip_conntrack$MODPROBE ip_conntrack_ftp$NODPROBK ip_conntrack_irc$NODPROBK ipt_MASOUZRADEfor TABLE in filter nat mangle;do #清除所有防火墙规矩$IPT -t $TABLE -F$IPT -t $TABLR -Xdone$IPT -P INPUT

13、DROP #下面6行设置filter和nat表的默认计谋$IPT -P OUTPUT ACCEPT$IPT -P FOKNARD DROP$IPT -t nat -P PREROUTINC ACCEPT$IPT -t nat -P POSTROUTING ACCEPT$1PT -t nat -P OUTPUT ACCEPT#允许内网samba、smtp和pop3连接$IPT -A INPUT -m state -state ESTABLISHED,RKLATED -j ACCEPT$IPT -A INPUT -p top -m multiport -dports 1863,443,110,80

14、,25 -j ACCEPT$IPT -A INPUT -p top -s $LAN_IP_RANGR -dport 139 -j ACCEPT#允许DNs连接$IPT -A INPUT -i $LAN_IF -p udp -m multiport -dports 53 -j ACCEPT#为了防备DOS打击,可以最多允许15个初始连接,凌驾的将被抛弃$IPT -A INPUT -s $LAN_IP_RANGE -p top -m state -state ESTABLISHED,RELATED -j ACCEPT$IPT -A INPUT -i $ INET_IF -p top -syn -m

15、 connlimit -connlimit -above 15 -j DROP$IPT -A INPUT -s $LAN_IPRANGE -P top -syn -m connlimit -connlimit -above 15 -j DROP#设置ICMP阈值,记载打击行为$IPT -A INPUT -p icmp -m limit -limit 3/s -j LOG -log-level INPO -log -prefixICMP packet IN:$IPT -A INPUT -p icmp -m limit -limit 6/m -j ACCEPT$IPT -A INPUT -p ic

16、mp -i DROP#开放的端口$IPT -A INPUT -p TCP -i $INE IF -dport 21 -j ACCEPT #FTP$IPT -A INPUT -p TCP -i $INE IF -dport 22 -j ACCEPT #SSH$IPT -A INPUT -p TCP -i $INE IF -dport 25 -j ACCEPT #SMTP$IPT -A INPUT -p TCP -i $INE IF -dport 53 -j ACCEPT #DNS$IPT -A INPUT -p TCP -i $INE IF -dport 53 -j ACCEPT #DNS$IP

17、T -A INPUT -p TCP -i $INE IF -dport 80 -j ACCEPT #WWW$IPT -A INPUT -p TCP -i $INE IF -dport 110 -j ACCEPT #POP3#禁止BT连接$IPT -I PORNARD -M state -state ESTABLISHKD,RELATZD -J ACCEPT$IPT -A PORNARD -m ipp2p -edk -kazaa -bIT -j DROP$IPT -A PORNARD -p tcp -m ipp2p -ares -j DROP$IPT -A PORNARD -p udp -m i

18、pp2p -kazaa j DROP#只允许每组ip同时15个80端口转发$IPT -A PORWARD -p top -syn -dport 80 -m connlimit -connlimit -above 15-connlimit -mask 24 -j DROP#NAC、IP地点绑定$IPT -A PORNARD -s 192.168.O.1 -m mac -mac -source 00:E2:A1:56:C2 -p tcp -dport 80 -i ACCEPT$IPT -A PORNARD -s 192.168.O.10 -m mac -mac -source 00:22:DA:3

19、2:C1 -p tcp -dport 80 -i ACCEPT $IPT -A PORNARD -s 192.168.O.62 -m mac -mac -source 00:0C2:A1:2E:BC -p tcp -dport 80 -i ACCEPT$IPT -A PORNARD -s 192.168.O.254 -m mac -mac -source 00:0D:E3:F2:C2 -p tcp -dport 80 -i ACCEPT#禁止192.168.0.22使用QQ#$IPT -t mangle -A POSTROUTINC -m layer7 -17proto qq -s 192.1

20、68.O.22/32 -j DROP#禁止192.168.0.22使用MSN#$IPT -t mangle -A POSTROUTINC -m layer7 -17proto msnmessenger -s 192.168.O.22/32 -j DROP#$IP#限制192.168.0.22流量$IPT -t mangle -A PREROUTINC -s 192.168.0.22 j MARX -set -mark 30$IPT -t mangle -A POSTROUTINC -d 192.168.0.22 j MARX -set -mark 30四、 NAT与署理办事器的设置NAT(Ne

21、twork Address Translation)即网络地点转换,将局域网内的私有IP地点转换成Internet上公有的IP地点,反之亦然。署理办事是指:由一台拥有公有IP地点的主机取代若干台没有公有IP地点的主机,和Internet上的其他主机打交道,提供署理办事的这台呆板称为署理办事器。若干台拥有私有IP地点的呆板组成内部网,署理办事器的作用就是相同内部网和Internet。署理办事器安排在内部网与外网之间,用于转发内外主机之间的通信。拥有内部地点的主机访问 Internet上的资源时,先把这个请求发给拥有公有IP地点的署理办事器,由署理办事器把这个请求转发给目的办事器。然后目的办事器把

22、响应的结果发给署理办事器,署理办事器再将结果转发给内部主机。由于Internet上的主机不能直接访问拥有私有IP地点的主机,因此,这样就保障内部网络的宁静性。1、NAT概述当内部网要连接到Internet上,却没有足够的公有IP地点分派给内部主机时,就要用到NAT了,NAT的功效是通过改写数据包的源和目的IP地点、源和目的端口号实现的。1源NAT和目的NAT(1)SNAT(Source NAT):修改一个数据包的源地点,改变连接的来源地,SNAT会在包发出之前的最后时刻进行修改。(2)DNAT(Destination NAT):修改一个数据包的目的地点,改变连接的目的地,DNAT会在包进入之后

23、立刻进行修改。2filter、nat和mangle在Linux系统中,NAT是由netfilter/iptables系统实现的。netfilter/lptallc:内核空间中有3个默认的表:FILter、nat和mangle。FILter表用于包过滤,mangle表用于对数据包做进一步的修改,nat表用于IP NAT。netfilter/iptables由两个组件组成:natfilter和iptables。(1)natFILter:称为内核空间,是内核的一部门,由一些表组成,每个表由若干链组成,每条链中有若干条规矩。(2)iptables:称为用户空间,是一种东西,用于插入、修改和删除包过滤表

24、中的规矩。 nat中的链有:PREROUTING、OUTPUT和POSTROUTING。可使用的行动有:SNAT、DNAT、REDIRECT和MASQUERADE。 要做SNAT的信息包的规矩被添加到POSTROUTING链中。要做DNAT的信息包的规矩被添加到PREROUTING链中。直接从当地出站的信息包的规矩被添加到OUTPUT链中。数据包穿过nat表的历程如图4所示。图4 数据包穿过nat表的示意图3认识内网客户机访问外网办事器的历程内网客户机访问外网办事器的历程如下:(1)PCI将访问WWW办事器的请求包发给NAT。(2)NAT对请求包进行SNAT,即修改源IP地点和源端口号。(3)

25、NAT将修改后的请求包发给WWW办事器。(4)WWW办事器将响应包发给NAT。(5)NAT对响应包进行DNAT,即修改目的IP地点和目的端口号。(6)NAT将修改后的响应包发给PCI。五、 使用NAT动员局域网上网。1、办事器端的设置第1步:执行#touch/etc/rc.d/snat命令,生成空的脚本文件。第2步:执行#chmod+x/etc/rc.d/snat命令,使该文件可执行。第3步:编辑shat文件,如图5所示。5 编辑snat文件第2行:界说外部网络接口变量INET_IF。第3行:界说内部网络接口变量LAN_IF。第4行:界说内部网IP地点范畴。 ,第6、7行:界说相关变量,界说这

26、些变量是为了背面书写的简便。第9行:打开内核的包转发功效。第11行:整理内核所支持的模块清单。第1217行:加载要用到的模块。第1922行:如果本主机以前设置了防火墙,那么此命令将清除已设规矩,还原到没有设置防火墙的状态。第2429行:设置filter和nat表的默认计谋为ACCEPT。第33行:如果不是拨号接人因特网(即不是用pppO,而是用ethx),则应该将该行换为$IPT-t nat-A POSTROUTING-s$LAN-IP_RANG-o$INET_IF -j SNAT -to $INET IP,其中$INETIP为外网络接口IP地点。第4步:生存该文件,执行#./snat。如果想

27、使该脚本在系统启动时自动执行,需要执行#echo /etc/rc.d/snat/etc/rc.d/rc.local命令。第5步:执行#less/etc/resolveonf命令,检察拨号连接时得到DNS的IP地点,如图6所示。DNS的IP地点将在设置客户端时使用。图6 得到DNS的IP地点 2、Windows客户端的设置在桌面上右击“网上邻居”,在弹出的快捷菜单中选择“属性”,在打开的窗口中双击“当地连接”,再在弹出的窗口中单击“属性”按钮。在弹出的窗口中双击Internet协议(TCP/IP)”,将打开的Internet协议(TCP/IP)属性”对话框,Windows客户端的设置如图50所示

28、。设置好网络情况后(读者可以凭据实际情况进行相应调解),就可以访问Internet了。六、 署理办事器Squid1、Squid简介在Internet中,传统的通信历程是:客户端向办事器提倡请求,办事器响应该请求,将数据传送给客户端。在引人了署理办事器以后,这一历程是:客户端向办事器提倡请求,该请求被送到署理办事器;署理办事器阐发该请求,先检察自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没有就取代客户端向该办事器发出请求。办事器响应以后,署理办事器将响应的数据传送给客户端,同时在自己的缓存中保存一份该数据的备份。这样,再有客户端请求相同的数据时,署理办事器就可以直接将数据传送给客户端

29、,而不需要再向该办事器提倡请求。署理软件的一个优点是:它能够查验除了数据包之外的许多东西。Squid对数据包的有效载荷进行查验,凭据数据包的首部(数据包中的IP部门)和数据包有效载荷(包罗TCP首部)的信息,决定命据包将发往那边,数据包请求什么,以及凭据数据包提供的这些信息,决定接纳什么样的行动。对付Web用户来说,Squid是一个高性能的署理缓存办事器,可以加速内部网浏览Internet的速度,提高客户机的访问命中率。当一个用户要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户,同时保存一个备份,当别的用户申请同

30、样的页面时,Squid把生存的备份立即传给用户,使用户觉得速度相当快。Squid不但支持HTTP协议,还支持FTP、Gopher和SSL等协议。和一般的署理缓存软件差别,Squid用一个单独的、非模块化的、I/O驱动的进程来处置惩罚所有的客户端请求。Squid由一个主要的办事步伐Squid、一个DNS查询步伐dnsserver、几个重写请求和执行认证的步伐,以及几个治理东西组成。当Squid启动以后,它可以派生出指定命目的 dnsserver进程,而每一个dnsscrver进程都可以执行单独的DNS查询,这样一来就大大淘汰了办事器等候DNS查询的时间。Squid的另一个优点在于,它使用了访问控

31、制列表(ACL),访问控制列表通过阻止特定的网络连接来淘汰潜在的对Internet的非法连接,可以使用这些列表来确保内部网中的主机无法访问不适宜的或有威胁的站点。2、 局域网中使用Squid共享上网。配置Squid署理办事器第1步:修改/etc/squid/squidconf主配置文件,如图7所示。第1行:squid对3128端口进行监听。第9行:用作缓存的物理内存的巨细,一般为实际物理内存的l/3左右。第10行:其中ufs为/var/spool/squid目录下使用趵缓冲系统类型。缓存空间总量为100M,第l层目录数为16,第2层目录数为265。第13、14、17行:界说的访问控制列表。图7

32、 修改squidconf主配置文件第15行:允许当地机访问因特网。第18行:允许19216800/24网段中的客户机访问署理办事器。生存该文件。下面对Squid配置文件中的几个根本配置选项和语句进行说明:(1)http_port界说Squid监听HTTP客户连接请求的端口。默认是3128。可以指定多个端口,但是所有指定的端口都必须在一条命令中。(2)cache mere(bytes)该选项用于指定Squid可以使用内存的理想值。(3)cache dir Type Directory-Name Mbytes Level,l Level-2指定Squid用来存储东西的互换空间的巨细及其目录结构。可

33、以用多个cache_dir命令来界说多个这样的互换空间,而且这些互换空间可以漫衍在差别的磁盘分区。Type是指Linux使用的缓冲系统类型。Directory-Name指明了该互换空间的顶级目录。如果想用整个磁盘来作为互换空间,那么可以将该目录作为挂载点,将整个磁盘mount到该挂载点,默认值为/var/spool/squid。Mbytes界说了可用的空间总量。需要注意的是,SQuid进程必须拥有对该目录的读写权。Level-1是可以在该顶级目录下创建的第一级子目录的数目,默认值为16。同理,Level-2是可以创建的第二级子目录的数目,默认值为256。为什么要界说这么多子目录呢?这是因为如果

34、子目录太少,则存储在一个子目录下的文件数目将大大增加,这也会导致系统查找某一个文件的时间大大增加,从而使系统的整体性能急剧低落。所以,为了淘汰每个目录下的文件数量,必须增加所使用的目录的数量。如果仅仅使用一级子目录,则顶级目录下的子目录数目太大了,所以使用两级子目录结构。(4)acl:界说访问控制列表界说语法为:acl aclname acltype siringl.acl aclname acltype file.acltype访问控制列表类型及说明见下表。表 acltype访问控制列表类型及其说明类 型说 明src指明源地点,格式为:aclaclname srcp-address/netm

35、ask.(客户IP地点)或acl aclname src addrl-addr2/netrnask.(地点范畴)dst指明目标地点,格式为:scl aclnamedst ip-address/netmask.(即客户请求的办事器的IP地点)srcdomain指明客户所属的域,格式为:.squid将凭据客户IP地点反向查询DNSdstdomain指明请求办事器所属的域,格式为:acl aclname dstdonlaln .由客户请求的URL决定。注意:如果用户使用办事器IP地点而非完整的域名时,Squid将进行反向的析来确定其完整域名,如果失败就记载为nonemethod指定请求要领。好比:a

36、claclname method GET POST.port指定访问端口。可以指定多个端口,好比:acl aclname port 80 8080 8000.aclaclnameport 0-2048.(指定一个端U范畴)proto指定使用协议。可以指定多个协议: acl aclname proto HTTP FTP.time指明访问时间,格式为:aclaclname timeday-abbrevsh1:ml-h2:m2hh:mm-hh:mmday -abbrevs为:S(Sunday)、M(Monday)、T(Tuesday)、W(Wednesday)、H(Thirsday)、F(Frida

37、y)、A(Saturday)h1:m1必须小于h2:m2urlregex使用正则表达式匹配特定一类URL,格式为:acl aclname url_regex-i pattern5)http_access凭据访问控制列表允许或禁止某一类用户访问。如果某个访问没有相切合的项目,则默认为使用最后一条项目的“非”。好比最后一条为允许,则默认就是禁止。所以,通常应该把最后的条目设为“denyall”或“allowall”来制止宁静隐患。第2步:启动squldBR务器,而且清除防火墙的过滤规矩。设置Squid客户机设置好Squid办事器后,就该设置Squid客户机了。(1)在Linux操纵系统上设置Squ

38、id客户机首先打开Firefox浏览器,单击主菜单背面的按钮。然后依次选择“编辑”/“首选项”,打开“首选项”窗口,单击“高级”按钮,选择“网络”选项卡。再单击“设置”按钮,打开“连接设置”窗口,如图11所示,在其中选择“手工配置署理”单选按钮,然后在HTTP署理”和“端口”文本框中输入Squid办事器的IP地点和端口号。(2)在Windows操纵系统上设置Squid客户机首先打开IE浏览器,然后依次选择“东西”/Internet选项”,打开Internet选项”窗口。然后选择“连接”选项卡,在其中单击“局域网设置”按钮,打开“局域网设置”窗口。在其中选择“为LAN使用署理办事器”复选框,然后在“地点”和“端口”文本框中输入Squid办事器的IP地点和端口号。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁