该学习路径讲解了网络安全入门的必备技术知识,比如计算机网络、网络协议、Linux命令、Windows设置等内容。本篇博客将记录第一项:计算机网络。
Network Fundamentals
What is networking?
网络就是相互连接的事物,我们的人际关系也可以抽象为一种网络。在计算机领域中,网络由各种设备(包括笔记本电脑、手机、监控摄像头等)组成。互联网则是一个巨大的网络,它由许许多多连接在一起的小网络组成,这些小网络被称为 private networks(专用网络),而将这些专用网络连接起来的网络被称为 public networks (公共网络)或者 Internet (互联网)。
网络虽然将不同设备连接起来,但是仍然需要标识各种设备,以便在网络中快速地找到它们。一般有两种标识:
- IP (Internet protocol) 地址
- MAC (Media access control) 地址
IP & MAC address
IP 地址可以在某一段时间内用来识别网络中的某一主机。当前使用的 IP 地址基本还是遵循IPv4协议,但是由于互联网上的设备数量不断增长,继续使用IPv4 将导致 IP 地址资源短缺(IPv4 可以分配 2 ^ 32 个 IP 地址)。因此人们提出了 IPv6 协议来解决这一问题(IPv6 可以分配 2 ^ 128 个 IP 地址),并且效率更高。
网络中的所有设备都有一个物理网络接口,它是设备主板上的一块微芯片板 (microchip board) ,该网络接口在出厂时被分配了唯一的地址,这就是 MAC 地址。MAC 地址由 12 个字符的十六进制数组成,其中前 6 个字符标识制造该网络接口的公司,后 6 个字符是唯一的数字。
关于MAC地址,虽然MAC地址是唯一的,但是它也可以被“伪造”,从而实现“欺骗”。我们可以将网络中的设备A的MAC地址修改为另一个设备B的MAC地址(是的,MAC地址是可以修改的,但这种修改不是修改网络接口的MAC地址),这样A在网络中就可以“伪装”成B了。
Ping
Ping 是最基本的网络工具之一。Ping 使用 ICMP (Internet control message protocol,互联网控制报文协议)来确定设备间连接的性能,比如查看连接是否存在或者是否可靠。
Intro to LAN
LAN (Local area network,局域网)。多年来人们一直尝试和实施各种网络设计,这种网络设计也被称为 topology (拓扑结构)。
LAN topologies
常见的局域网拓扑结构有如下几种:
- Star topology,星型拓扑。优点:更具可扩展性。缺点:成本较高,维护难度较高
- Bus topology,总线拓扑。优点:容易搭建,成本较低。缺点:传输效率低,面对故障时几乎没有冗余。
- Ring topology,环形拓扑。优点:设备直连,无需布线;方向固定,易于排除故障。缺点:传输效率较低;设备若故障则整个网络将中断。
switch & router
Switch(交换机)是网络中的专用设备,用于汇聚多个其他设备,这些不同的设备插入交换机的不同端口。交换机会记录哪个端口连接了哪个设备(通过MAC地址),因此当交换机收到数据包时可以直接将其发送到指定的目标,而无需像集线器一样广播出去,减少了网络流量。
Router (路由器)用于连接网络,并在网络之间传递数据。“路由”就是对数据在网络间传输过程的称呼。
交换机和路由器可以相互连接。通过为数据增加多条路径,可以提高网络的冗余度(也可以理解为可靠性)。这样可以保证当一条路径出现故障时,还有另一条路径可以使用,虽然会使网络性能降低,数据传输时间受影响,但起码保证了服务不会停止。
Subnetting
Subnetting (子网划分)是指将一个网络分割成更小的微型网络。在企业中,一般有多个部门,那就可以通过子网划分将一个网络分割成多个小网络,分配给不同部门。
子网划分通过 子网掩码 实现。子网划分有许多好处,比如在安全上,子网划分将一个网络分割成若干个互相分离、互不影响的小网络,保证了用户隐私,同时又能保证这些小网络与互联网正常连接。
ARP & DHCP protocol
ARP (Address resolution protocol) 协议工作在数据链路层。简单来说,ARP协议允许设备将其 MAC 地址与网络上的 IP 地址关联起来。网络中的每台设备都有一个缓存,在ARP协议中,缓存存储了网络上其他设备的 IP 地址和 MAC地址对应关系。ARP协议的工作流程如下图所示:
IP 地址可以手动分配,但大部分时候还是通过 DHCP (Dynamic host configuration protocol) 协议来自动分配 IP 地址。DHCP 的工作流程如下图所示:
OSI model
OSI model (Open systems interconnection model,开放系统互连模型) 是网络中使用的基本模型。该模型提供了一个框架,规定了所有联网设备如何发送、接受和解释数据。当设备在与其他设备进行通信时,它们在网络上可能拥有不同的功能和设计,直接通信可能会面临不兼容的问题。而如果按照OSI模型的统一性,它们在网络上发送的数据就可以被其他设备理解。
OSI模型分为七层,如下图所示:
由上到下进行简短介绍:
- Application,应用层。制定协议和规则来确定用户如何与发送或接收的数据进行交互。
- Presentation,表示层。本层充当了数据与应用层之间的数据转换器,将不同格式的数据转换为某种格式,使对端设备可以正确识别。
- Session,会话层。利用传输层提供的端到端服务,向表示层提供会话服务。注意,此处的会话建立在两个网络应用之间。
- Transport,传输层。本层在网络数据传输中起着至关重要的作用,它建立了两个节点端到端之间的数据传输服务。
- Network,网络层。本层负责数据包在网络中的路由与转发。
- Data link,数据链路层。控制网络层与物理层之间的通信,将网络层中的数据封装成可被物理层传输的帧。
- Physical,物理层。通过网络中的硬件物理组件,以二进制数字系统传输数据。
Packets & frames
Packets (数据包)和 frames (帧)都是小块数据,但在OSI模型中,它们是两码事。帧位于数据链路层,它将网络层数据进行封装,使用MAC地址进行传输。因此可以简单理解为:当涉及IP地址时,它就是数据包;而如果经过封装,讨论的就是帧。
Ports
Port,在计算机领域中是“端口”的意思,但在英文中,还有另一个解释:港口。
确实,我们希望港口与停靠的船只一一对应,我们不希望本该给渔船停靠的港口给邮轮占去。端口亦然,端口规定了当前端口要提供的服务,只有端口对应,才能正确提供服务。
目前许多常见应用程序、软件、协议等都有自己固定的端口:
- FTP (File transfer protocol),端口 21
- SSH (Secure shell),端口 22
- HTTP (Hypertext transfer protocol),端口 80
- HTTPS (Hypertext transfer protocol secure),端口 443
- SMB (Server message block),端口 445
- RDP (Remote desktop protocol),端口 3389
- ……
Extending your network
Port forwarding
Port forwarding (端口转发)是将应用程序和服务连接到互联网的重要组成部分,如果没有端口转发的话,服务只能提供给同一个直连网络内的设备。
如上图所示,此时只有两台与路由器直连的主机才能访问到 192.168.1.10 的 80 端口服务,互联网上的主机是无法访问到的。
而端口转发可以使互联网设备也能访问到该 80 端口上的服务。
如上图所示,将 192.168.1.10 的 80 端口服务转发给 82.62.51.70 的 80 端口上。此时 Network 2 中的主机就可以通过访问 82.62.51.70 的 80 端口访问到 192.168.1.10 的 80 端口上的服务。
Firewalls
防火墙是网络中的一种设备,它一般位于内外网的边界,用于负责确定允许哪些流量可以进出。
有两大类防火墙:
- Stateful,有状态防火墙。这种防火墙根据连接的全部信息,通过整个连接来确定用户行为。该防火墙会消耗较多资源。
- Stateless,无状态防火墙。这种防火墙使用一组静态规则来确定是否接受单个数据包,虽然该防火墙消耗资源少,但比较笨,因为它只对其中定义的规则生效。
VPN
VPN (Virtual private network,虚拟专用网络),通过在互联网上创建相互之间的专用路径(或称为隧道),允许不同网络上的设备进行安全通信,在隧道内连接的设备形成各自的专用网络。
如上图所示,企业内部分为两个网络,两个网络中的主机无法直接互相通信。然而 VPN 技术却可以为Network 1 和 Network 2 中的设备组建一个专用网络,使其可以通过 VPN 连接进行直接通信。
总结起来,VPN 有如下优点:
- 允许连接不同地理位置的网络。
- 提供加密
- 提供匿名性
目前实现 VPN 有如下技术:
- PPP,该技术使用 PPTP 进行身份验证和数据加密,使用私钥与证书进行确认,若两者匹配才可以建立 VPN 连接。该技术本身无法离开网络,即 不可被路由。
- PPTP (Point-to-point tunneling protocol),点对点隧道协议是允许 PPP 传输和离开网络的技术。PPTP 的设置比较简单,但加密性略差。
- IPsec (Internet protocol security),互联网协议安全,利用现有的 IP 框架对数据进行加密。它的设置比较困难,但其加密性十分强大,且支持许多设备。
VLAN
之前有讲过 交换机 和 路由器,当时说交换机运行在第二层,实际上也有可以运行在第三层的交换机,它们比二层交换机更复杂,可以履行路由器的部分职责。简而言之,三层交换机可以向设备发送帧,也可以使用 IP 协议将数据包路由到其他设备上。
VLAN (Virtual local area network),虚拟局域网技术可以将网络中的特定设备虚拟分割开,这意味着它们都能连接到互联网上,但是被分开处理。这种技术提供了安全性。该技术可以使用交换机(二层、三层均可)来实现,如下图所示:
图中尽管主机都连接在同一个交换机上,但由于 VLAN 技术,它们之间无法直接连通。
此处讲讲二层交换机和三层交换机在 VLAN 上的区别。
二层交换机实际上就可以实现 VLAN 功能,但当不同 VLAN 的设备有通信需求时,二层交换机无法满足这一需求,需要添加额外的路由器才可以实现该功能。
而三层交换机由于可以履行路由器的部分职责,因此可以直接只使用一台三层交换机就可以实现不同 VLAN 之间的通信需求。