accept

Linux iptables 防火墙详解

≡放荡痞女 提交于 2019-12-19 00:01:41
0x00 iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。 netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。 iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易。 0x01 iptables的结构 iptables的结构: iptables -> Tables -> Chains -> Rules 简单地讲,tables由chains组成,而chains又由rules组成。iptables 默认有四个表Filter, NAT, Mangle, Raw,其对于的链如下图。 0x02 iptables工作流程 0x03 filter表详解 1. 在iptables中,filter表起过滤数据包的功能,它具有以下三种内建链: INPUT链 – 处理来自外部的数据。 OUTPUT链 – 处理向外发送的数据。 FORWARD链 – 将数据转发到本机的其他网卡设备上。 2. 数据流向场景 访问本机:在INPUT链上做过滤 本机访问外部:在OUTPUT链上做过滤 通过本机访问其他主机:在FORWARD链上做过滤 3. Iptables基本操作 启动iptables: service

iptables

家住魔仙堡 提交于 2019-12-17 15:08:57
iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。 filter负责过滤数据包,包括的规则链有,input,output和forward; nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output; mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING; input匹配目的IP是本机的数据包,forward匹配流经本机的数据包,prerouting用来修改目的地址用来做DNAT,postrouting用来修改源地址用来做SNAT。 iptables主要参数 -A 向规则链中添加一条规则,默认被添加到末尾 -T指定要操作的表,默认是filter -D从规则链中删除规则,可以指定序号或者匹配的规则来删除 -R进行规则替换 -I插入一条规则,默认被插入到首部 -F清空所选的链,重启后恢复 -N新建用户自定义的规则链 -X删除用户自定义的规则链 -p用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号, -s指定源地址 -d指定目的地址 -i进入接口 -o流出接口 -j采取的动作,accept,drop,snat,dnat,masquerade

使用ASP.NET Core 3.x 构建 RESTful API - 3.4 内容协商

廉价感情. 提交于 2019-12-16 22:38:24
现在,当谈论起 RESTful Web API 的时候,人们总会想到 JSON 。但是实际上, JSON 和 RESTful API 没有半毛钱关系,只不过 JSON 恰好是 RESTful API 结果的表述格式。也就是说 RESTful API 还可以使用其它的表述格式,例如 xml 或私有的格式。这也就意味着,我们需要让 RESTful API 知道我们想要返回的格式。而这就是 HTTP 请求和响应的核心内容之一: Content Negotiation 内容协商 内容协商是这样一个过程:针对一个响应,当有多种表述格式可用的时候,选取最佳的一个表述。 当我们的 RESTful API 只面向一个 API 消费者的时候,也许只使用 JSON 一种格式是没有什么问题的。但是如果需要面向各种形式的多个 API 消费者,那么很有可能少数 API 消费者无法很好的解析 JSON ,它们可能更习惯于 xml 或者其它格式。 那么如何解决这个问题呢? HTTP 请求的 Accept Header 就是用来解决这个问题的, API 的消费者在发送请求的时候,在 Accept Header 里面填写好 Media Type (媒体类型),例如 application / json 或者 application / xml 等等。 如果请求里填写的是 application /j son ,那么

Linux系统防火墙firewall和iptables策略管理

吃可爱长大的小学妹 提交于 2019-12-13 00:07:44
1.1.2.1 Linux系统-防火墙策略管理 文章目录 1.1.2.1 Linux系统-防火墙策略管理 一、防火墙策略介绍 二、firewall防火墙 三、iptables防火墙 一、防火墙策略介绍 作用: 提供一道保护性的安全屏障,起到保护隔离作用,隔离公网和私网之间 分类:硬件防火墙 软件防火墙 程序:RHEL6以下iptables命令,RHEL7以上firewalld命令 firewalld底层是调用包过滤防火墙iptables 包过滤防火墙:工作在3层,对ip包进行过滤处理 二、firewall防火墙 (一)firewall防火墙介绍 1.firewall防火墙安装 yum install firewalld #安装服务 systemctl start firewalld #开启服务 systemctl enable firewalld #开机自启 systemctl status firewalld #查看状态 firewall-cmd命令操作 firewall-config图形化操作 2.防火墙预设安全区域 规则:根据所在的网络场地区分,预设保护规则集,匹配即停止 public #仅允许访问本机sshd dhcp ping trusted #允许任何访问 block #阻塞任何来访请求,明确居拒绝,给客户端回应 drop #丢弃任何来访的数据包,直接丢弃

socket通信的原理与实践

孤人 提交于 2019-12-11 20:29:37
主要参考了以下几篇博客,学到了很多,在这里总结一下 socket通信原理 TCP网络编程中connect()、listen()和accept()三者之间的关系 socket编程accept函数返回值的理解 TCP/IP协议是我们熟知的传输层协议,socket与TCP/IP协议模型的关系如下: Socket 是什么呢? Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据,以符合指定的协议。 简介Socket通信的全过程: 1.从服务器端说起,服务器端先初始化一个socket,调用bind()函数绑定一个端口 2.然后调用listen()函数监听端口,(相当于服务器的 客服是等待着客户(相当于客户端)电话的到来),listen() 函数的主要作用就是将套接字( sockfd )变成被动的连接监听套接字(被动等待客户端的连接),TCP 三次握手也不是由这个函数完成,listen()的作用仅仅告诉内核一些信息。 这里需要注意的是,listen()函数不会阻塞,它主要做的事情为,将该套接字和套接字对应的连接队列长度告诉 Linux 内核,然后,listen()函数就结束。 这样的话

Java实现一个hello/hi的简单的网络聊天程序

房东的猫 提交于 2019-12-10 20:02:07
实验介绍   本次实验使用Java语言,使用Java Socket以tcp协议实现客户端和服务器端的通信。 什么是socket通信?   在网络编程中,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket通信是基于应用服务与TCP/IP通信之间的一个抽象,它将TCP/IP协议里面复杂的通信逻辑进行分装,对用户来说,只要通过一组简单的API就可以实现网络的连接。 Socket套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。Socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。 套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。 1、服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。 2、客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 3、连接确认

使用Java实现hello/hi的简单网络聊天程序

浪子不回头ぞ 提交于 2019-12-10 19:12:24
Socket又称套接字,是基于应用服务与TCP/IP通信之间的一个抽象,将TCP/IP协议里面的通信逻辑进行分装,只要通过一组简单的API就可以实现网络的链接。 分别开两个线程,一个作为服务端,一个作为客户端。客户端主要监听端口上的信息,并以字节流读取并显示,同时在Server类里面,还需要同时开启监听和发送信息的线程。每连上一个客户端,就需要对应开启一个监听信息的线程。 服务器端: import java.io.*; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Server extends Netutil { public static void main(String[] args) { new Server().Get(); } /*进入的方法*/ public void Get() { try { ServerSocket serverSocket = new ServerSocket(4432); InetAddress inetAddress = InetAddress.getLocalHost(); // System.out.println("开启服务器");

Socket通信原理

我的梦境 提交于 2019-12-10 18:36:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们经常听说TCP/IP、UDP、Socket,这些到底是什么,之间有什么关系?我们通过本文弄清楚四个问题: 什么是TCP/IP、UDP? Socket处于协议的哪一层? Socket是什么? 如何使用它们? 1,什么是TCP/IP、UDP? TCP/IP (Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP (User Datagram Protocol,用户数据报协议) 是与TCP相对应的协议,是面向无连接的传输协议。它是属于TCP/IP协议族中的一种。 这里有一张图,表明了这些协议的关系。 TCP/IP协议族包括运输层、网络层、链路层。现在你知道TCP/IP与UDP的关系了吧。 2, Socket处于协议的哪一层? 3, Socket是什么呢? 从操作系统层面来看,Socket起源于Unix,而Unix/Linux基本哲学之一就是“ 一切皆文件 ”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作,所以可以把Socket看成是一种特殊的文件,socket函数可以对其进行各种操作(读/写IO、打开、关闭),从这个层面来讲,我们可以说

防火墙和系统安全防护和优化

半世苍凉 提交于 2019-12-09 17:12:31
Web应用防火墙 云盾Web应用防火墙(Web Application Firewall,简称 WAF)基于云安全大数据能力,用于防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免您的网站资产数据泄露,保障网站的安全与可用性。 把域名解析到Web应用防火墙提供的CNAME地址上,并配置源站服务器IP,即可启用Web应用防火墙。 启用之后,网站所有的公网流量都会先经过Web应用防火墙,恶意攻击流量在Web应用防火墙上被检测过滤,而正常流量返回给源站IP,从而确保源站IP安全、稳定、可用。 使用iptables 停止Firewall systemctl stop firewalld 关闭firewall自动启动 systemctl disable firewalld.service 安装IPtables防火墙 yum install -y iptables-services 修改iptables配置文件,开放8080端口、3306端口和80端口,8080 为Apache默认端口,3306为MySQL的默认端口,80端口为主机默认端口 输入以下命令,编辑iptables文件 vi /etc/sysconfig/iptables 添加下面内容到默认的22端口这条规则的下面 -A INPUT -m

第二十三讲 JDK8的foreach与Consumer接口、四大核心函数式接口、Stream接口、队列与栈

╄→гoц情女王★ 提交于 2019-12-09 05:27:47
导读 JDK8的foreach方法是可以直接遍历集合的,是一个新特性。 四大核心函数式接口:熟悉并会使用来解决实际开发中的项目问题。 Stream接口:处理业务接口。 队列与栈:必须要懂,因为包含了很多内存分配和处理的知识点。 一、JDK8的foreach循环: int i = 0;// 自变量 // 创建一个集合来保存自变量数据 List<Integer> list = new ArrayList<>(); // 把生成的数据添加到集合中—— list.add(++i); list.add(++i); list.add(++i); list.add(++i); // 采用JDK8的foreach增强方法来遍历—— list.forEach(cc -> System.out.println(cc)); list.forEach(System.err :: println); list.add(++i); // 把数组转换为集合并输出—— Integer[] ints = new Integer[]{}; ints = list.toArray(ints); System.out.println(Arrays.asList(ints)); 小结: 新线程 —— 根据打印顺序显示,forEach 方法开启了一个新的线程 线程异步安全 —— 因为交替打印,所以线程为异步