Mangle

Linux iptables 详解

风流意气都作罢 提交于 2021-02-07 13:16:19
最近搭一个框架需要用到iptables做映射,学习了下iptables的原理,总结下方便以后查~。 <!-- more--> 参考并转载于以下链接: http://www.cnblogs.com/metoy/p/4320813.html http://www.ha97.com/4093.html 一、iptables介绍 iptables是Linux中对网络数据包进行处理的一个功能组件,就相当于防火墙,可以对经过的数据包进行处理,例如:数据包过滤、数据包转发等等,一般例如Ubuntu等Linux系统是默认自带启动的。 二、iptables结构 iptables其实是一堆规则,防火墙根据iptables里的规则,对收到的网络数据包进行处理。iptables里的数据组织结构分为:表、链、规则。 表(tables)## 表提供特定的功能,iptables里面有4个表: filter表、nat表、mangle表和raw表,分别用于实现包过滤、网络地址转换、包重构和数据追踪处理。 每个表里包含多个链。 链(chains)## 链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据

linux之iptables详解

时光怂恿深爱的人放手 提交于 2021-02-07 12:16:03
iptables/netfilter是一组工具 netfilter:是内核中的一个过滤框架,规则生效位置的框架 iptables:是一个能生防火墙规则,并能将规则附加在netfilter上的,真正实现数据报文过滤和规则生成的工具 网络:IP报文首部 ①ipv4(4bit) Hdr Len首步-长度(4bit) type of service(8bit) total lenght(16bit) ②Identification(Fragment ID 16bits)段标识:数据报文传在网络传输的时候,如果两个网络设备之间支持接收的数据报文大小不同的时候,要 实行分片机制,所以每个分片的报文都有一个标识符,从而实现在对端设备进行重组 MF:更多的分片;DF:不进行分片;R:返回错误信息; Fragment Offset:片偏移量 0表示第一个 ③Time-To-Live(TTL 8bits) 生存时间 Protocol(8bits)协议:tcp ucp icmp(互联网控制消息协议) Header首部校验和Checksum(16bits):存放报文首部检验码,接收方可通过首部校验码查看首部报文是否有问题 ④Source IP Address源IP地址(32bits): 源IP地址信息 ⑤Destination IP Address(32bits): 目的IP地址信息 ⑥Options

iptables介绍iptables和netfilter

≯℡__Kan透↙ 提交于 2020-12-26 17:39:19
随着互联网技术的方兴未艾,各种网络应用层出不穷,网络攻击、黑客入侵也成了网民畅游互联网的心头大患,互联网安全也愈加受到了人们的重视。网络防火墙,作为一种简单高效的互联网防御手段,逐渐成为了网民畅游网络世界的保护伞。下面笔者介绍下Linux系统的守卫者——iptables/netfilter。 一 兄弟齐心,其利断金 iptables/netfilter就像一对兄弟,netfilter是大哥,善使长钩;iptables是小弟,擅长书记。这两兄弟一武一文,掌握着守城重任。 netfilter大哥师承名门,身负五把长钩,每一个流经他的数据流都逃不过他的法眼,只见得五把长钩上下翻飞舞得水泄不通,将那不符合规则的数据包挑落马下。这五把长钩埋伏在城门的五个位置,分别是:NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORWARD、NF_IP_POST_ROUTING、NF_IP_LOCAL_OUT。他们分别对应了下图的五个位置。 iptables小弟学富五车,手拿生死簿,记载了乱臣贼子的具体情况,netfilter大哥就是按照生死簿的记载检查每个数据包,以辨忠奸。 二 四章生死簿 生死簿内所载内容分为四个章节:raw、mangle、nat、filter raw、mangle记载了极高深的内容,正所谓曲高和寡,平常极少用到。filter里记录了过滤规则

UglifyJS中文文档

烂漫一生 提交于 2020-12-16 10:36:12
UglifyJS是JavaScript解析器,缩小器,压缩器和美化器工具箱。 由于webpack本身集成了UglifyJS插件(webpack.optimize.UglifyJsPlugin),其命令 webpack -p 即表示调用UglifyJS来压缩代码,还有不少webpack插件如 html-webpack-plugin 也会默认使用UglifyJS。 与UglifyJS2相比API变动较大,简化较多,文档也增加了不少示例。 由于webpack本身集成了UglifyJS插件(webpack.optimize.UglifyJsPlugin),其命令 webpack -p 即表示调用UglifyJS来压缩代码,还有不少webpack插件如 html-webpack-plugin 也会默认使用UglifyJS。因此我们其实经常要用到它,但UglifyJS本身配置较复杂/选项繁多,又没有中文文档,使用起来如坠云雾。鉴于此特翻译此文,谬误甚多,敬请斧正。 词典: parse 解释 compress 压缩 mangle 混淆 beautify 美化 minify 最小化 CLI 命令行工具 sourcemap 编译后代码对源码的映射,用于网页调试 AST 抽象语法树 name 名字,包括变量名、函数名、属性名 toplevel 顶层作用域 unreachable 不可达代码

pandas-pd.read_csv

こ雲淡風輕ζ 提交于 2020-12-03 11:57:36
read_csv()接受以下常见参数 : 参数 中文名 参数类型 默认参数 参数功能 说明 filepath_or_buffer various :文件路径、URL、或者 是read()函数返回的对象 sep 指定分隔符 str 默认是',' delimiter 定界符 str 默认是None 指定该参数,sep失效 delim_whitespace boolean 默认是False 指定空格或者'\t'是否作为分隔符使用 如果该参数指定为True,则delimiter失效 header 指定行号用于列名,默认指定是第0行作为列名。如果没有列名,则显式指定header = None names 默认是None 如果表格中没有列名,就显式指定header = None,然后由names= ["xx","xx"]指定列名。 index_col int or sequence or False 默认是None 用作行索引的列编号或者列名 当设定index_col = False时,强制pandas不使用第一个列作为行名 usecols list-like 或者callable 默认是None 返回列的子集,就是你可以指定哪些列返回,比如usecols = [1,3,5]或者usecols = [' xx','xx'] xx是列名 输入0、1这种数字则顺序就没了,若想保留列的顺序

pandas读取csv

懵懂的女人 提交于 2020-12-03 11:57:10
参数 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见: http://pandas.pydata.org/pandas-docs/stable/io.html 参数: filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO) 可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中 本地文件读取实例:://localhost/path/to/table.csv sep : str, default ‘,’ 指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:'\r\t' delimiter : str, default None 定界符,备选分隔符(如果指定该参数,则sep参数失效) delim_whitespace : boolean, default False. 指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep='\s+'

高可用测试:iptables模拟机器断网

廉价感情. 提交于 2020-10-15 19:20:15
背景 具有HA(高可用)的软件服务在集群某节点出现断网的时候,整个集群依旧可以提供正常的服务。很多开源软件都有HA版本(比如rocketmq,kafka),如果现在有一个软件需要进行高可用测试,该如何模拟其中的断网场景呢? 比如3台机器A,B,C组成的一个集群环境,其中A机器断网,B和C依旧能够正常工作。 A:192.168.21.23 B:192.168.21.24 C:192.168.21.25 跳板机D:192.168.21.26 现在尝试模拟A机器断网,B和C机器无法访问A的情况。 步骤 1. 首先保证有机器(跳板机)可以ssh到A机器,以防止A机器设置断网后,无法再登陆到A机器上恢复A的网络。(如果跳板机D已经和A建立ssh互信,可以跳过此步骤) #如果跳板机D上有ssh公钥:~/.ssh/id_rsa.pub,则跳过下面命令执行;如果没有,执行如下命令生成一个。ssh-keygen -t rsa #拷贝跳板机D的~/.ssh/id_rsa.pub到A机器的信任文件末尾vi ~/.ssh/authorized_keys #测试互通,在跳板机D上执行如下,如果能执行说明互信建立成功ssh 192.168.21.23 true 2. 模拟断网:在A机器上执行iptables命令设置规则 登陆到A机器上执行如下命令,只让跳板机D能够访问A iptables -t raw -I

Linux防火墙之iptables

佐手、 提交于 2020-08-16 14:21:48
文章目录 防火墙的相关概念 四表五链 五链 四表 链表关系 规则 SUBCOMMAND 对链操作 对规则操作(后面必须加链的名称) 查看规则 匹配条件 通用匹配 扩展匹配 处理动作 保存规则 NAT实验 A主机配置 B主机配置 测试 防火墙的相关概念 按逻辑分类: 主机防火墙:针对单个主机进行防护,在主机上进行配置 网络防火墙:往往处于网络入口或边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网 网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人) 按物理分类: 硬件防火墙:在硬件级别实现部分防火墙功能,性能高、成本高 软件防火墙:应用软件处理逻辑运行于通用硬件平台上的防火墙,性能低、成本低 iptables 不是真正的防火墙,可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架“,这个”安全框架“才是真正的防火墙,叫做 netfilter netfilter(包过滤)是Linux内核中的一个数据包处理模块,具有如下功能: 网络地址转换(NAT) 数据包内容修改 数据包过滤的防火墙功能 虽然我们使用 service iptables start 或 systemctl start iptablse 来启动iptables,但是iptables并没有守护进程

ros 伪随机修改mac和ssid脚本,所谓的ros试玩脚本

情到浓时终转凉″ 提交于 2020-08-15 14:12:49
原文: http://bbs.routerclub.com/forum.php?mod=viewthread&tid=104819&extra=page%3D2&page=1 mirktotk route ROS 伪随机修改mac和ssid脚本,所谓的试玩脚本就是指这东西? mac.txt文件为 mac地址前缀,主要目的是尽量模拟 IEEE分配的真实mac范围 mac.txt可要可不要,看懂了的稍微改个注释就行了。 ============添加规则 { :for aa from=1 to=10 do={ /interface wireless { add disabled=no keepalive-frames=disabled master-interface=wlan1 multicast-buffering=disabled name=("v-wifi" . $aa) security-profile=profile1 ssid=("v-ssid" . $aa) } /ip address { add address=("192.168." . $aa . ".254/24") interface=("v-wifi" . $aa) network=("192.168." . $aa . ".0") } /ip pool { add name=("v-pool" . $aa)

公司的一个ros需求创建10个ssid,走10根pptp线路,同时更换mac

杀马特。学长 韩版系。学妹 提交于 2020-08-14 06:04:54
公司的一个ros需求创建10个ssid,走10根pptp线路,同时更换mac 红色的部分,是你要创建10个ssid的编号。从1到10一共10个。顺序不能变。 foreach y in={[/interface wireless find where interface-type=virtual]} do={/interface wireless remove $y}; foreach y in={[/ip address find address ~ "172.16"]} do={/ip address remove $y}; foreach y in={[/ip pool find ranges ~ "172.16"]} do={/ip pool remove $y}; foreach y in={[/ip dhcp-server find name ~ "A"]} do={/ip dhcp-server remove $y}; foreach y in={[/ip dhcp-server network find address ~ "172.16"]} do={/ip dhcp-server network remove $y}; foreach y in={[/certificate scep-server otp find]} do={/certificate scep