《华为防火墙技术漫谈》04
读书笔记-《华为防火墙技术漫谈》04三、安全防范3、流量型攻击之SYN Flood攻击及防御DDoS(Distributed Denial of Service分布式拒绝服务)攻击指的是攻击者通过掌控大量僵尸主机(俗称“肉鸡”),向目标服务器发送精心构造的大规模攻击数据包,导致目标服务器所在网络链路的过载和系统资源的耗尽,从而使被攻击方无法为正常用户提供服务,产生拒绝服务的效果。
SYN Flood攻击是一种基于TCP协议栈的攻击,为了理解SYN Flood攻击及其防御机制,我们需要先从TCP连接的建立过程开始。在TCP/IP协议中,TCP协议负责提供可靠的连接服务。在数据从一方发送到另一方之前,必须首先建立一条连接通道,这就是著名的TCP三次握手过程。
SYN Flood攻击正是利用了TCP三次握手的机制。攻击者向目标服务器发送大量的SYN请求数据包,这些请求的源地址通常是虚构的或无法到达的。当服务器回应这些请求并发送SYN+ACK数据包后,却不会收到相应的ACK回应数据包,导致服务器上建立大量半开连接。这样,服务器的资源会被这些半开连接耗尽,无法应对正常请求。
在防范SYN Fl ...
《华为防火墙技术漫谈》03
读书笔记-《华为防火墙技术漫谈》03二、安全策略3、本地区域的安全策略在网络管理中,管理员通常需要登录到防火墙进行各项管理操作。同时,防火墙还需要建立虚拟专用网络(VPN)以与Internet上的设备或用户进行通信。此外,在网络中,防火墙和路由器之间还需要运行开放最短路径优先(OSPF)路由协议,以确保数据的顺畅传输。还有,防火墙通常需要与认证服务器进行连接以验证用户身份等等。
为了保证这些业务能够正常运行,必须在防火墙上配置相应的安全策略,以允许防火墙接收来自不同业务的数据包。具体来说,这涉及到在防火墙的本地区域和与各业务使用的接口相关的安全区域之间的安全策略配置。
(1)OSPF协议相关的本地区域安全策略配置
在这一实验中,我们将验证防火墙如何参与OSPF路由计算,也就是验证防火墙接口所在的安全区域与本地区域之间的安全策略配置。在某些情况下,防火墙不仅透传OSPF路由报文,而是参与了OSPF路由计算,接收和发送OSPF报文的两个接口可能位于不同的安全区域。在这种情况下,必须配置相应的安全策略以确保OSPF报文的正常传输。
通常情况下,单播报文受到安全策略的控制,因此需要配置相应的安 ...
《华为防火墙技术漫谈》02
读书笔记-《华为防火墙技术漫谈》02一、防火墙基础知识4、调试Current Total Sessions : 5icmp VPN: public --> public ID: c387fe127dddb48858634f7b51Zone: trust --> untrust TTL: 00:00:20 Left: 00:00:15Recv Interface: GigabitEthernet1/0/1Interface: GigabitEthernet1/0/0 NextHop: 172.16.0.1 MAC: 5489-985b-694f<--packets: 1 bytes: 60 --> packets: 1 bytes: 60192.168.10.1:20603 --> 172.16.0.1:2048 PolicyName: trust-untrust
Zone:表示报文在安全区域之间流动的方向,trust –> untrust表示报文是从Trust区域流向Untrust区域。
TTL:表示报文的老化时间,这条会话到期后,这条会话也将会 ...
《华为防火墙技术漫谈》01
读书笔记-《华为防火墙技术漫谈》01一、防火墙基础知识1、防火墙基本概念防火墙主要用于保护一个网络免受来自另一个网络的攻击和入侵行为。由于其隔离和防御性质,防火墙可以在不同位置进行灵活部署,例如网络边界、子网隔离等,例如在企业网络出口、大型网络内部子网隔离以及数据中心边界等地。
防火墙与路由器和交换机有着明显的区别。路由器用于连接不同的网络,通过路由协议确保网络之间的互联互通,以确保数据包能够被正确转发到目标地。交换机则用于构建局域网,作为局域网通信的关键中继点,通过二层和三层交换来快速转发数据包。相比之下,防火墙的主要部署位置是网络边界,其主要任务是对进出网络的访问行为进行严格控制,安全防护是其核心特点。而路由器和交换机的本质是数据包的转发,而防火墙的本质是流量的控制和审查。
防火墙的功能包括以下几个关键点:
包过滤:防火墙能够审查网络数据包的源地址、目标地址、端口号和协议等信息,并根据预定义的规则来决定是否允许数据包通过或将其丢弃。
状态检测:一些高级防火墙可以追踪网络连接的状态,以确保只有已建立的合法连接能够传输数据,而不允许未经请求的数据进入网络。
NAT(网络地址转换) ...
Java八股
Java面向对象有哪些特征,如何应用 面向对象编程是利用类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系。万物皆对象,对象是具体的世界事物,面向对象的三大特征封装,继承,多态。封装,封装说明一个类行为和属性与其他类的关系,低耦合,高内聚;继承是父类和子类的关系,多态说的是类与类的关系。
封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。属性的封装:使用者只能通过事先定制好的方法来访问数据,可以方便地加入逻辑控制,限制对属性的 不合理操作;方法的封装:使用者按照既定的方式调用方法,不必关心方法的内部实现,便于使用; 便于修改,增强 代码的可维护性;
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。在本质上是特殊~一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特 ...
算法DAY-07
算法总结 DAY_07链表专题一、反转链表LeetCode 206. reverse-linked-list
题目:
题解1. 迭代
在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */class Solution {public: ListNode ...
算法DAY-06
算法总结 DAY_06链表专题删除链表中的节点LeetCode 237. delete-node-in-a-linked-list
题目:
题解和下一个节点交换/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void deleteNode(ListNode* node) { node->val = node->next->val; node->next = node->next->next; }};
复杂度分析
时间复杂度:O(1)
空间复杂度:O(1)
删除链表的倒数第 N 个结点LeetCode 19. remove-nth ...
算法DAY-05
算法总结 DAY_05二分专题复杂度log(n):二分法的”代言词“
二分模板:
int l = 0; int r = nums.size() - 1; int mid; while(l <= r){ // 另一种模板 l <r mid = l + (r - l) / 2; //左中点 if(target == nums[mid]) return mid; if(target < nums[mid]) r = mid - 1; if(target > nums[mid]) l = mid + 1; } return l;
详细讲解文章链接:
关于二分法三个模板更详细的说明
第一个错误的版本LeetCode 278. first-bad-version
题目:
题解二分法// The API isBadVersion is ...
算法DAY-04
算法总结 DAY_04二分专题复杂度log(n):二分法的”代言词“
二分模板:
int l = 0; int r = nums.size() - 1; int mid; while(l <= r){ mid = l + (r - l) / 2; //左中点 if(target == nums[mid]) return mid; if(target < nums[mid]) r = mid - 1; if(target > nums[mid]) l = mid + 1; } return l;
详细讲解文章链接:
关于二分法三个模板更详细的说明
x 的平方根LeetCode 69. sqrtx
题目:
题解二分法
class Solution {public: int mySqrt(int x) { ...