收藏 分享(赏)

Iptabes设置实验报告.doc

上传人:精品资料 文档编号:10894780 上传时间:2020-01-18 格式:DOC 页数:27 大小:1.80MB
下载 相关 举报
Iptabes设置实验报告.doc_第1页
第1页 / 共27页
Iptabes设置实验报告.doc_第2页
第2页 / 共27页
Iptabes设置实验报告.doc_第3页
第3页 / 共27页
Iptabes设置实验报告.doc_第4页
第4页 / 共27页
Iptabes设置实验报告.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、Computer Network SecurityProject 6 Lab-Report实验名称: 小组成员: 指导教师: 所属班级: 一 实验描述【实验背景】IP-Table 是与最新的 2.6.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux系统连接到因特网或 LAN 的服务器,或连接到 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。 netfilter/IP-Table IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这

2、些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。【实验目的】根据实验要求配置 IP-Table,掌握 IP-Table 规则的编写。【实验环境】虚拟机使用信息: VirtualBox 与 VmwareLinux 版本信息: Ubuntu 12.04.2 (Final)Linux 内核版本: 3.8.0二 实验准备在进行 IP-Table 设置前需要搭建实验环境,实验所需的环境配置如下图所示:【基于实验指导书 Lab-6】其中,1 号机、3 号机是内网计算机,2 号机为网关,最右边蓝色区域为外网。实验环境搭建成功

3、之后,需要完成下面的实验步骤:【Part A】1、在 2 号机上用 NAT 表的 POSTROUTING 链配置 NAT1)伪装(MASQUERADE)包使内网的 IP 地址从外网隐藏2)从 1 号机和 3 号机,只允许通过 SSH 连接到外网2、此步骤的 NAT 配置在整个实验过程中持续有效【Part B】为来自或者到达 2 号机(网关)的包编写规则,到达以下目的:1、允许来自或者到达 2 号机的 SSH 连接2、允许来自或者到达 2 号机的 ping 连接3、阻断来自或者到达 2 号机的其他所有通信4、提示:Part B 需要 INPUT 和 OUTPUT 链,但不需要 FORWARD 链

4、【Part C】1、清除 Part B 中 filter 表设置的规则2、仅允许 1 号机(不允许 3 号机)向外网中的主机发起 SSH 通信3、阻断其他所有通信4、提示:Part C 需要 FORWARD,INPUT 和 OUTPUT 链三 IP-Table 规则分析【IP-Table 规则】基于网络百科知识(摘要)功效:IP-Table 规则指定所检查包的特征和目标。如果包不匹配某条规则,将送往该链中下一条规则检查。1)目标值( TARGETS)目标值可以是用户定义的链名,也可以是某个专用值,如:ACCEPT(通过) 、DROP(删除) 、QUEUE(排队)或者 RETURN(返回) 。

5、ACCEPT:表示让这个包通过;DROP:表示将这个包丢弃;QUEUE:表示把这个包传递到用户空间;RETURN: 表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链的末端,或者遇到内建链的规则是 RETURN,包的命运将由链准则指定的目标决定。2)表( TABLES)-t table:指定命令要操作的匹配包的表。在 IP-Table 规则中有三个表,分别为:filter:这是默认的表,包含了内建的链 INPUT(处理进入的包) 、FORWARD(处理通过的包)和 OUTPUT(处理本地生成的包) 。nat:这个表被查询时表示遇到了产生新的连接的包。它由三个内建的链构成:P

6、REROUTING (修改到来的包 )、OUTPUT (修改路由之前本地的包) 、POSTROUTING (修改准备出去的包) 。mangle:这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和 OUTPUT(修改路由之前本地的包) 。3)选项( OPTIONS)可被 IP-Table 识别的选项可以区分不同的种类,分别为: 命令( COMMANDS)这些选项指定执行明确的动作。若指令行下没有其他规定,该行只能指定一个选项。对于长格式的命令和选项名,所用字母长度只要保证 IP-Table 能从其他选项中区分出该指令就行了。常用命令如下:-F flus

7、h:清空所选链。这等于把所有规则一个个的删除。 -X -delete-chain:删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。-Z zero:把所有链的包及字节的计数器清空。-L list:显示所选链的所有规则。如果没有选择链,所有链将被显示。也可以和-Z 选项一起使用,这时链会被自动列出和归零。精确输出受其它所给参数影响。-A append:在所选择的链末添加一条或更多规则。当源(地址)或者/ 与目的(地址)转换为多个地址时,这条规则会加到所有可能的地址(组合)后面。 -D dele

8、te:从所选链中删除一条或更多规则。这条命令可以有两种方法:可以把被删除规则指定为链中的序号(第一条序号为 1),或者指定为要匹配的规则。-P policy:设置链的目标规则。 参数( PARAMETERS)以下参数构成规则详述,如用于 add、delete 、replace 、append 和 check 命令。-p -protocal !protocol :规则或者包检查 (待检查包)的协议。指定协议可以是 tcp、udp、icmp 中的一个或者全部,也可以是数值,代表这些协议中的某一个。当然也可以使用在/etc/protocols 中定义的协议名。在协议名前加上 “!“表示相反的规则。数

9、字 0 相当于所有(all) 。Protocol all 会匹配所有协议,而且这是缺省时的选项。在和check 命令结合时,all 可以不被使用。-s -source ! address/mask:指定源地址,可以是主机名、网络名和清楚的IP 地址。 mask 说明可以是网络掩码或清楚的数字,在网络掩码的左边指定网络掩码左边“1“的个数,因此, mask 值为 24 等于 255.255.255.0。在指定地址前加上“!“ 说明指定了相反的地址段。标志 -src 是这个选项的简写。-d -destination ! address/mask:指定目标地址,使用方法和-s 类似。-i -in-i

10、nterface ! name:这是包经由该接口接收的可选的入口名称,包通过该接口接收(在链 INPUT、FORWORD 和 PREROUTING 中进入的包) 。当在接口名前使用“!“说明后,指的是相反的名称。如果接口名后面加上“+“,则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为“+“,那么将匹配任意接口。 -o -out-interface !name:这是包经由该接口送出的可选的出口名称,包通过该口输出(在链 FORWARD、OUTPUT 和 POSTROUTING 中送出的包) 。当在接口名前使用“!“说明后,指的是相反的名称。如果接口名后面加上“+“,则所有以此

11、接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为“+“,那么将匹配所有任意接口。-j -jump target :-j: 目标跳转。指定规则的目标。也就是说,如果包匹配应当做什么。目标可以是用户自定义链(不是这条规则所在的) ,某个会立即决定包的命运的专用内建目标,或者一个扩展。如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加。四 建立相应实验环境在本实验中需要数台计算机,分别使用相同的虚拟机以及 ubuntu 版本,并且其中 1 号机、3 号机处于内网环境(它们处于同一个子网之下,并且相互间可以 Ping 通),另外有一台计算机(2 号机)作为网关连接

12、内网和外网,还需要有一台计算机处于外网环境。因此要圆满完成本实验,至少需要 4 台计算机(最后这一台计算机可以我们利用了学校机房线程的机子) 。针对我的计算机的实际情况,可以将本机作为外网计算机,另外运行 1 个虚拟机作为 2 号机,再运行 2 个虚拟机作为 1 号机和 3 号机。可是我的计算机在运行两个虚拟机的时候处理速度就变得非常慢,因此我只能运行 1 台虚拟机作为 2 号机,再运行一个虚拟机作为 1 号机,至于 3 号机,由于在 Part A 和 Part B 中,1 号机和 3 号机的规则是相同的,因此只要有一个就足以达到验证规则的目的。而在 Part C 中,二者的规则有区别,这可以

13、通过修改 1 号机的 IP 地址达到验证的目的。因此只运行两台虚拟机同样能达到验证规则,完成本实验的效果。综上,在本实验中,我用本机作为外网计算机,用虚拟机 ubuntu2 作为内网计算机 1 号机,用虚拟机“ ubuntu2 的克隆”作为网关 2 号机。配置实验环境的过程如下:【2 号机相关配置】由于 2 号机是网关连接内网和外网,因此它必须有两块网卡,一块实现内网和 2号机的直接通信,另一块实现外网和 2 号机的直接通信。因此配置 2 号机的过程如下:1)增加一个网卡点击 VMware 左侧目录中的虚拟机“3000Shana”图标,右键“设置” ,得到如下界面(图 2) ,在左边界面中单击

14、 “添加”按钮进行硬件的添加,在弹出界面中选择硬件类型为“网络适配器” ,然后点击“Next ”。【编辑虚拟机设置】【选择添加硬件的类型】之后选择网络连接方式为“自定义” ,然后点击“完成” ,完成增加网卡的过程。【选择新增网卡的网络连接方式】然后查看虚拟机的主界面,可以发现多了一个网络适配器图标,而且它连接方式变为“通用”!【新增网卡后“Ubuntu2 的克隆”的主界面】2)运行“Ubuntu2 的克隆” ,修改新增网卡的有关配置开启虚拟机“Ubuntu2 的克隆” ,以 root 用户登录。登录后右键单击桌面上方网络连接的小图标,选择“编辑连接” ,可以看到“有线”一栏下有“Auto et

15、h1”和“Auto eth2”两个网络接口, “Auto eth2”是新增的。单击“Auto eth2”,选择“编辑” ,在弹出界面中选择“IPv4 设置” ,然后选择方法为“手动” ,可以看到“地址”部分变为可编辑。单击“添加” ,将地址设定为“10.10.10.1”(我认为这个 IP 地址的设置只要不和 “Auto eth1”的 IP 地址在一个网段就可以) ,子网掩码设为默认的“255.255.255.0” ,网关可以任意设定。设定完之后选择“应用” 。【新增网卡接口“Auto eth2”的设置】3)查看 2 号机的 IP 地址PS:后继所有关于 ubuntu 上的终端操作均以 root

16、 权限为主选择“应用程序”“附件”“终端” ,在终端中输入命令“ifconfig”查看 2号机的 IP 地址等信息:【2 号机的 IP 地址】可以看到与外网连接的网口 eth1 的 IP 地址为:192.168.0.98(Vmware 中可以在子网范围内自由设置) ,与内网连接的网口 eth2 的 IP 地址为 10.10.10.1,和我之前设置的一样,这说明 2 号机的配置成功!2. 配置 1 号机1)选择“Ubuntu2”的网络连接方式点击 VMware 的“Ubuntu2”的主界面中的“编辑虚拟机设置” ,在弹出界面中单击 “Network Adapter”,然后选择界面右侧的 “Cus

17、tom”,点击“OK” 。即将“Ubuntu2”的网络连接方式设为自定义,和“Ubuntu2 的克隆”中和内网连接的网卡是一样的。2)运行“Ubuntu2” ,修改网卡的有关配置开启虚拟机“Ubuntu2” ,以 root 用户登录。登录后右键单击桌面上方网络连接的小图标,选择“编辑连接” ,可以看到“有线”一栏下有“Auto eth0”这一个网络接口。单击“Auto eth0”,选择“编辑” ,在弹出界面中选择“IPv4 设置” ,然后选择方法为“手动” ,可以看到“地址”部分变为可编辑。单击“添加” ,将地址设定为“10.10.10.2”(需要和 2 号机中“Auto eth1”的 IP

18、地址在一个网段) ,子网掩码设为默认的“255.255.255.0” ,网关设定为“Auto eth1”的 IP 地址 10.10.10.1。设定完之后选择“应用” 。【1 号机(ubuntu2)中 “Auto eth0”的设置】3)查看 1 号机的 IP 地址选择 ubuntu2 的“应用程序”“附件”“终端” ,在终端中输入命令“ifconfig”查看 1 号机的 IP 地址等信息:【1 号机的 IP 地址】可以看到 IP 地址为为 10.10.10.2,和我之前设置的一样,这说明 1 号机的配置成功!3、验证环境配置成功1)1 号机和 2 号机能互相通信1 号机 ping 2 号机其中

19、2 号机的 IP 地址是与内网连接的网口“ Auto eth2”的 IP 地址 10.10.10.1【1 号机能 ping 通 2 号机】2 号机 ping 1 号机【2 号机能 ping 通 1 号机】2)2 号机和外网能互相通信首先查看本机的 IP 地址。在本机点击“开始”“运行” ,输入 CMD 并点击确定,在出现的小黑框中输入“IPCONFIG”命令查看本机的 IP 地址【本机 IP 地址】外网 ping 2 号机其中 2 号机的 IP 地址是与外网连接的网口“ Auto eth1”的 IP 地址 192.168.0.98【图 13 外网能 ping 通 2 号机】2 号机 ping

20、外网【图 14 2 号机能 ping 通外网】3)1 号机和外网不能互相通信使外网 ping 1 号机【外网不能 ping 通 1 号机】4)综合 1) 、2)和 3) ,可以证明符合实验要求的环境已经搭建成功!五 实验 Part A1、在本机安装 SSH 服务器 WinSSHD1)从网上下载 WinSSHD 安装包,根据提示进行安装,安装成功后会出现提示信息2)点击提示信息中的“确定”后会出现 WinSSHD 的配置界面,点击“3.Virtual accounts”设置虚拟账户,账户名和密码都设为 zmj,其他项采取默认设置,然后点击“Save changes”保存设置。【WinSSHD 设

21、置虚拟账户 】3)打开 WinSSHD 的主界面“WinSSHD Control Panel”,选择“Server” ,点击“Start WinSSHD”开启 WinSSHD【开启 WinSSHD】 至此就完成了 WinSSHD 的安装、配置及开启!2、在 1 号机和 2 号机上安装 openSSH-server在“Ubuntu2 ”和“Ubuntu2 的克隆”中输入命令“apt-get install openssl-server”进行 openssl-server 的安装,安装成功会有相应信息:【在 1 号机和 2 号机中成功安装 openssl-server】由上图知,在 1 号机和 2

22、 号机中成功安装 openssl-server,且 SSH 自动启动3、编写符合要求的规则根据 IP-Table 规则的说明和实验要求,编写规则如下:1)清空表 filter 中的所有链及计数器(具体规则如下所示)【PartA 清空表 filter 中的所有链及计数器 】2)清空表 nat 中的所有链及计数器【PartA 清空表 nat 中的所有链及计数器】3)修改表 filter 的默认规则由于从 1 号机和 3 号机,只允许通过 SSH 连接到外网,因此要禁止 INPUT 链和OUTPUT 链,允许 FORWARD(转发)链:【PartA 修改表 filter 的默认规则】4)配置 POS

23、TROUTING 链,实现内网 IP 地址对外网的隐藏(具体规则如下图 23所示)【PartA 配置 POSTROUTING 链,实现内网 IP 地址对外网的隐藏】此规则的含义为:-t nat:指定 nat 表-A POSTROUTING:在 POSTROUTING 链后添加一条规则-p tcp:SSH 连接为 tcp 协议的连接。此条命令比较 tcp 协议-s 10.10.10.1/24:包来源于内网-o eth1:包通过网口 eth1 输出,表示是向外网发的包-dport 22:目的端口是 22,表示是 SSH 连接-j MASQUERADE:如果包匹配,就跳转到 MASQUERADE 目

24、标,即实现伪装5)保存 IP-Table 设置使用命令“IP-Table-save ”保存 IP-Table 设置,并查看当前规则:【PartA 保存 IP-Table 设置】由上图可知,之前对 IP-Table 的设置都已成功保存!4、修改配置文件为了能实现成功转发,还需要修改一些配置文件。1)去掉/etc/sysctl.conf 中“net.ipv4.ip_forward=1”前的注释去掉/etc/sysctl.conf 中“net.ipv4.ip_forward=1”前的注释2)输入命令,将/proc/sys/net/ipv4/ip_forward 的值设为 1【 将/proc/sys/

25、net/ipv4/ip_forward 的值设为 1】5、验证规则是否正确有效在 1 号机(ubuntu2 )中输入命令 “SSH zmj172.31.6.213”,通过 SSH 连接外网,在确定(yes)继续连接之后输入密码 zmj,可以看到本机的命令框界面【PartA 1 号机通过 SSH 成功连接外网】同时可以看到 WinSSHD 显示 Session 信息:【PartA 规则设置成功 2_WinSSHD 显示 Session 信息】【分析】不难看出,1 号机通过 SSH 成功连接外网;从上图可以看出, Remote IP 为192.168.0.98,即为 2 号机中连接外网的网卡的 I

26、P,这说明内网 IP 成功实现了隐藏。综上可以看出,Part A 中规则的设置是符合实验要求的!六 实验 Part B1、初步编写符合要求的规则根据实验要求及提示,在保留 Part A 所有设置和规则的情况下,编写其他规则。1)修改表 filter 的默认规则本实验中要禁止 FORWARD(转发)链:【 Part B 禁止 FORWARD(转发)链】2)允许来自或者到达 2 号机的 SSH 连接【Part B 允许来自或者到达 2 号机的 SSH 连接】3)允许来自或者到达 2 号机的 ping 连接【PartB 允许来自或者到达 2 号机的 ping 连接】4)保存 IP-Table 设置使

27、用命令“IP-Table-save ”保存 IP-Table 设置,并查看当前规则:【PartB 保存 IP-Table 设置】【分析】由上图可知,我之前对 IP-Table 的设置都已成功保存!2、验证规则是否正确有效1)验证:允许来自或者到达 2 号机的 ping 连接首先使 2 号机 ping 外网计算机:【PartB 使 2 号机 ping 外网计算机】【分析】由上图可知,IP-Table 允许来自 2 号机的 ping 连接!然后使外网计算机 ping 2 号机:【PartB 使外网计算机 ping 2 号机】【分析】由图 34 可知,IP-Table 允许到达 2 号机的 ping

28、 连接!综上说明,规则中关于 ping 的部分是正确的!2)验证:允许来自或者到达 2 号机的 SSH 连接使 2 号机通过 SSH 连接外网计算机【PartB 2 号机通过 SSH 无法连接外网计算机】【分析】从图 35 可以知道,2 号机通过 SSH 无法连接外网计算机,这说明规则中关于 SSH的部分是错误的!3、修改规则中关于 SSH 的部分1)最开始我认为是相关 INPUT 和 OUTPUT 链中源端口和目的端口指定的问题,因此做了如下修改(如下图 36 所示):【PartB 修改规则 1】【分析】可是保存规则后再次试图通过 SSH 连接,仍然失败。2)之后我将相关 INPUT 和 O

29、UTPUT 链中源端口和目的端口写在不同规则中,并保存 IP-Table 设置,然后试图让 2 号机通过 SSH 连接外网计算机,发现可以成功连接!【PartB 修改规则 2,实现 2 号机通过 SSH 成功连接外网计算机】【分析】前两种规则都不正确的原因是:第一种规则所描述的条件不够完整,主要是源端口和目的端口的问题;第二种规则在 INPUT 和 OUTPUT 链中,都把源端口和目的端口同时写在同一条规则中,这构成的应该是“与”的关系,因此导致规则限定的条件太过苛刻,达不到实验的要求。4、修改规则后验证规则的有效性在之前的步骤中,我已经验证了 ping 相关规则的有效性,且实现了 2 号机通

30、过SSH 成功连接外网计算机。接下来需要验证外网计算机可以通过 SSH 连接 2 号机,且此规则可以阻断来自或者到达 2 号机的其他所有通信。1)验证外网计算机可以通过 SSH 连接 2 号机为了验证外网计算机可以通过 SSH 连接 2 号机,我需要在本机安装 SSH 的客户端,在此我选择安装的是 Putty。我从网上下载了 Putty 软件的压缩包,解压后可直接使用。软件的主界面如下:【Putty 软件的压缩包】双击“Session ”,在界面右侧的“Host Name”中输入想要连接到的目的 IP 地址,即 2 号机中 eth1 的 IP 地址 192.168.0.98, “Port”中输

31、入 SSH 的端口 22。然后单击选中“Default Settings”后,点击“Save ”进行保存。之后点击 Open,即进行外网计算机通过 SSH 连接 2 号机的过程。之后我们会看到弹出界面。用户名输入 root,密码为 ubuntu2 的克隆的 root 用户的密码,然后我们可以看到连接到 ubuntu 的欢迎信息,这说明外网计算机可以通过SSH 连接 2 号机!【PartB 外网计算机可以通过 SSH 连接到 2 号机】【分析】综上可以验证,修改后的规则中关于 SSH 的部分是正确的!2)验证规则阻断来自或者到达 2 号机的其他所有通信我们不能对所有通信手段加以验证,在此只验证

32、ftp 通信。试图让外网计算机通过 ftp 连接到 2 号机,发现无法连接【PartB 外网计算机无法通过 ftp 连接到 2 号机】之后试图让 2 号机通过 ftp 连接到外网计算机,发现同样无法连接【PartB 2 号机无法通过 ftp 连接到外网计算机】【分析】这说明规则阻断了来自和到达 2 号机的 ftp 连接!综上可以验证出,Part B 修改后的规则是正确的!七 实验 Part C1、编写符合要求的规则1)清除 Part B 中 filter 表设置的规则清空 Part B 中 filter 表设置的规则(并没有清空 nat 表的设置) ,并且保存 IP-Table的设置:【Par

33、t C 清除 Part B 中 filter 表设置的规则】2)仅允许 1 号机(不允许 3 号机)向外网中的主机发起 SSH 通信根据 IP-Table 规则的说明以及编写 PartA 和 PartB 中规则的经验,编写符合要求的规则并保存【Part C 规则设置 】【分析】不同于之前所写的规则,在这里-s 和-d 之后都是一个固定的 IP 地址(即 1 号机的 IP 地址) ,而不是一个 IP 地址段。这是实验要求所决定的。2、验证规则是否正确有效1)验证:允许 1 号机向外网中的主机发起 SSH 通信在 1 号机(ubuntu2 )中输入命令,试图使 1 号机向外网中的主机发起 SSH

34、通信,可以看到 1 号机成功连接到外网计算机:【Part C 1 号机通过 SSH 成功连接到外网计算机】2)验证:不允许 3 号机向外网中的主机发起 SSH 通信3 号机和 1 号机一样,都处于内网中,但二者的 IP 地址是不同的。因为在搭建实验环境时,没有设置 3 号机,所以可以通过修改 1 号机的 IP 地址达到模拟 3 号机的作用。修改 1 号机的 IP 地址为 10.10.10.3,然后试图使 1 号机向外网中的主机发起 SSH通信,发现无法连接:【Part C 3 号机通过 SSH 不能连接到外网计算机】3)验证:阻断其他所有通信和 PartB 中的相关验证相同,我们不能对所有通信

35、手段加以验证,在此只验证 2号机(ubuntu2 的克隆)不能通过 SSH 连接到外网计算机:【2 号机通过 SSH 不能连接到外网计算机 】【分析】这说明规则阻断了 2 号机和外网计算机之间的 SSH 通信!综上可以验证出,Part C 中的规则是正确的!八 实验小结总的来说,这次实验算是很有意思的一次实验,对于我们而言,是收益颇丰的。通过本次实验我们小组三人不仅仅是认识并学习了 IP-Table、SSH 的相关理论知识,而且自己动手配置了实验环境(虽然是一项很耗时的工作,但是难度并不大)以及编写了 IP-Table 规则(当我们熟悉了固定格式和相关选项的用途之后,发现制定一个 IP-Table 规则其实是很简单的) 。虽然实验过程中也是遇到过不少难题,但是我们不仅网上找解决方案,还询问过了 09 级的学长学姐,最终我们小组经过多次尝试之后总算是圆满完成了本次实验任务!

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

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

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


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

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

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