Linux:iptables防火墙

目录

绪论

1、防火墙

1.1 保护范围

1.2 网络协议划分

1.3 协议:tcp

1.4 四表

1.5 五链

1.6 iptables的规则

1.7 匹配顺序

流入本机:prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返回用户流出本机:httpd----------->响应--------->output--------------->postrouting-(地址转换)------------>用户转发:数据包进来,肯定不是同一网段,路由转发-------->forward--------->数据包出去,不允许转发,数据包直接丢弃。1.8 命令格式及管理选项

1.9 匹配条件以及控制类型

1.10 修改规则

1.11 隐藏拓展模块

 1.12 iptables的备份和还原

1.13 自定义链

1.13.1 创建自定义链

1.13.2 自定义链改名

1.13.3 给链添加规则

1.13.4 添加到默认链

1.13.5 删除

1.14 SNAT和DNAT

1.15 linux怎么抓包


绪论

防火墙:隔离功能

部署在网络边缘或者主机边缘。在工作找那个防火墙的主要作用是决定那些数据可以被外网访问以及那些数据可以进入内网访问。在网络层。分为软件防火墙和硬件防火墙

1、防火墙

1.1 保护范围

· 主机防火墙:服务范围就是当前自己的主机

· 网络防火墙:必经之路

实现方式:

· 硬件防火墙:既有专业的硬件来实现防火墙功能,又有软件来进行配给

· 软软件防火墙:代码实现判断

1.2 网络协议划分

网络层:包过滤防火墙

应用层(代理服务器):设置数据的进出

linux防火墙:

firewalld centos7:自带的

iptables:包过滤防火墙

selinux:自带的安全工具

集成在一个内核中:netfilter

iptables:包过滤防火墙,针对数据包进行过滤和限制,属于用户态

过滤数据包:ip地址端口、协议都可在iptables进行配置,可以限制,也可以放行

1.3 协议:tcp

iptables的构成和工作机制

iptables的组成部分:

四表五链组成,(selinux也是一个表,不在讨论范围内)

1.4 四表

· raw表:链接跟踪机制,加快封包速度和穿过防火墙的速度。主要是数据包跟踪

·mangle表:数据标记

· nat:地址转换表

· filter(默认表):过滤规划表,根据规则来定义或者过滤符合条件的数据包

四表的优先级 security----->raw----->mangle---->nat----->filter

表用来存放链,链用来存放规则

1.5 五链

INPUT:处理数据包进入本机的规则

OUTPOT:处理数据包发出的规则,一般不作处理

PREROUTING 处理数据包进入的规则

POSTROUTING 处理数据包离开本机之后的规则  结合地址转换使用

FORWARD 处理数据转发的规则

1.6 iptables的规则

表里面由链,链里面有规则,规则就是自定义的对于数据包的控制命令

1.7 匹配顺序

· 根据表的优先级匹配,在表中从上到下进行检查,找到匹配规则立即停止,不在表中向下继续查找,如果匹配不到规则,按照链的默认规则进行处理

· 报文流向

流入本机:prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返回用户
流出本机:httpd----------->响应--------->output--------------->postrouting-(地址转换)------------>用户
转发:数据包进来,肯定不是同一网段,路由转发-------->forward--------->数据包出去,不允许转发,数据包直接丢弃。
1.8 命令格式及管理选项

rpm  -q  iptables

yum  -y  install  iptables  iptables-services

关防火墙安全机制

格式:iptables [ -t 表明](不指定表名,默认是filter)管理选项 [链名] [匹配条件] [-j 控制类型]

管理选项:

-A 在链的末尾追加一条,添加

-I 在链中插入一条新的规则,可以指定序号(后面跟上数字,表示序号)

-P 修改链的默认策略

-D 删除

-R 修改替换规则

-L 查看链中的规则

-vnL

v:显示详细信息  n:把规则以数字形式进行展示

-F 清空链中的所有规则,慎用
 

1.9 匹配条件以及控制类型

匹配条件:

-p 指定匹配的数据包协议类型

s 指定匹配的数据包源ip地址

-d 指定匹配数据包目的ip地址

-i 指定数据包进入本机的网络接口

-o 指定数据包离开本机使用的网络接口

--sport 指定源端口号

--dport 指定目的端口号

控制类型:

ACCEPT:允许数据包通过

DROP: 拒绝,直接丢弃,不给出任何信息回应

REJECT:拒绝,会给个响应信息

SNAT: 修改数据包的源ip地址

DNAT: 修改数据包的目的地址

iptables  -vnl  详细查看链中的规则,默认filter

iptables  -t  nat  -vnl  查看nat表

iptables  -F  清空filter的所有链的规则

eg:iptables  -t  filter  -A  INPUT -p  icmp  -j  REJECT

往filter表中的INPUT链添加icmp的拒绝

eg:

1.10 修改规则

 iptables  -A  INPUT  -p  icmp  -j  ACCEPT

iptables  -R  INPUT  1  -p  icmp  -j  REJECT

在生产中,iptables所有的链的默认规则都是DROP:iptables  -P  input  DROR  此时shell也会挂掉,只能进虚拟机进行恢复

iptables  -vnl  --line-number

iptables  -D  INPUT  1

iptables  -A  INPUT  -p  tcp  --dport  22  -j  ACCEPT:临时策略,禁止22端口传输,重启失效

iptables  -A  INPUT  -s  192.168.233.0/24  -p  tcp  --dport  80  -j  REJECT:整个网段禁止80端口的服务

1.11 隐藏拓展模块

既拒绝22又拒绝80:

iptables  -A  INPUT  -p  tcp  --dport  22:80  -j  REJECT

-p:指定协议时,tcp和udp指明了什么是协议,就不需要再用-m指明扩展模块了,指定多端口可以用冒号的形式,也可以-m隐藏模块来实现

-m:可以用明确的形式指出类型:多端口,mac地址,ip地址数据包的状态

-m multiport指定多端口,使用多端口,多个端口用,隔开 

eg:iptables  -A  INPUT  -p  tcp  -m  multiport  --dp  ort  22,20,443,80  -j  REJECT

-m multiport --dport :指定多端口,多个端口号逗号分开

-m multiport --sport 

ip范围:

-m iprange --src-range 源ip地址的范围

-m iprange --dst-range 目的ip地址的范围

eg:

mac地址:

-m mac --mac-source

 1.12 iptables的备份和还原

· 写在命令行当中的都是临时配置

· 把规则,配置在服务的文件当中形成永久生效

iptables-save   >  /opt/ky30.bak:把当前iptables的全部配置保存到ky30.bak中

 默认配置文件:cat  /etc/sysconfig/iptables  

systemctl  restart  iptables  重启之后还在

1.13 自定义链

1.13.1 创建自定义链

没有-t指定表,默认在filer表中添加一个自定义链

iptables  -N  custom

1.13.2 自定义链改名

iptables  -E  custom  ky30   custom为原链名,ky30为新名

1.13.3 给链添加规则

iptables  -I  ky30  -p  icmp  -j  ACCEPT

1.13.4 添加到默认链

iptables  -I  INPUT  -p  icmp  -j  ky30:把ky30添加到系统的input链中

1.13.5 删除

iptables  -D  INPUT  1

然后还要在自定义链中删除

iptables  -x  ky30  

1.14 SNAT和DNAT

SNAT :源ip地址转换(内网到外网)

DNAT:目标地址转换(外网到内网)

内网到外网转换的是源,从外网到内网转换的是目的

客户端发起请求---> 网关服务器(地址转换)---->网关服务器----->web服务器

web服务器响应请求---->网关服务器----->网关服务器----->客户端

/etc/sysctl.conf中可以修改配置,内核参数永久生效

iptables  -t  nat  -A  PREROUTING  -d  11.0.0.11  -i  ens33  -p  --dport  80  -j  10  NAT  --to  192.168.233.10:80

解释:

-t  nat  :指定表名

-d  :指定目的ip

-p  :指定tcp协议

--dport  80  :指定端口号

-j:控制条件

-j  DNAT  :控制条件做的目标地址转换

--to  192.168.233.10:80  :所有外部来的访问IP地址都变成11.0.0.11来访问内网,目标端口为80,协议是tcp,协议的流量转发到192.168.233.10:80的端口

1.15 linux怎么抓包

tcpdump来实现linux抓包,自带的

 

sz  target.cap

不指定抓包动态处理:

tcpdump  tcp  -i  ens33  -s0  -w  ./ens33.cap  ./表示保存到当前位置

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66802.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何做好一名网络工程师?具备的技能有哪些?

支持属于网络工程师的工作范围的企业网络,此网络与支持它的铜或光纤基础架构一样性能良好。网络工程师及其布线厂区需要为支持最新网络技术做好准备。网络工程师作为任何性能问题的解决者,需要拥有必要的工具来确定问题所在 — 在网络中还是在其他地方。…

ABeam×Startup丨德硕管理咨询(深圳)创新研究团队前往灵境至维·既明科技进行拜访交流

近日,德硕管理咨询(深圳)(以下简称“ABeam-SZ”)创新研究团队一行前往灵境至维既明科技有限公司(以下简称“灵境至维”)进行拜访交流,探讨线上虚拟空间的商业模式。 现场合影 &…

PHP原生类

什么是php原生类 原生类就是php内置类&#xff0c;不用定义php自带的类&#xff0c;即不需要在当前脚本写出&#xff0c;但也可以实例化的类 我们可以通过脚本找一下php原生类 <?php $classes get_declared_classes(); foreach ($classes as $class) {$methods get_clas…

JZ38 字符串的排列

题目地址&#xff1a;字符串的排列_牛客题霸_牛客网 题目回顾&#xff1a; 解题思路&#xff1a; 这里用到了全排列和剪枝。 首先我们来说全排列&#xff0c;设置一个vis数组来记录当期元素是否被使用过&#xff0c;然后dfs遍历整个数组&#xff0c;列出所有符合条件的路径就是…

SCSS的基本用法

1、声明变量 $ 声明变量的符号 $ 下面这张图左半部分是scss的语法&#xff0c;右半部分是编译后的css。&#xff08;整篇文章皆是如此&#xff09; 2、默认变量 !default sass 的默认变量仅需要在值后面加上 !default 即可。 如果分配给变量的值后面添加了 !default 标志…

【MySQL】MySQL 数据类型

目录 1. tinyint 类型 2. bit 类型 3. 小数类型 1、float 类型 2、decimal 类型 3. 字符串类型 1、char 类型 2、varchar 类型 4. 日期类型 5. enum和set 1、枚举和集合类型语法 2、枚举和集合类型的查找 6、find_in_set 函数 写在最后&#xff1a; 1. tinyint …

2004-2021年全国31省市场分割指数数据(原始数据+计算过程+最终结果+方法说明)

2004-2021年全国31省市场分割指数数据&#xff08;原始数据计算过程最终结果方法说明&#xff09; 1、时间&#xff1a;2004-2021年 2、来源&#xff1a;统计年鉴和国家统计局 3、指标&#xff1a;市场分割指数、食品类商品零售价格指数&#xff08;上年100&#xff09;、饮料、…

2023年国赛数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&#xff0c…

Kafka基本概念

文章目录 概要整体架构broker和集群ProducerConsumer和消费者组小结 概要 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、分区的、多副本的、多生产者、多订阅者&#xff0c;基于 zookeeper协调的分布式日志系统&#xff08;也可以当做MQ系统&#xff09;&#xff…

一文解析超标量处理器

一、引言 处理器&#xff08;central process unit,简称CPU&#xff09;是手机的核心部件&#xff0c;其主要功能是取指令并译码执行。CPU主要包括控制器和运算器两个部件&#xff0c;它对在手机中的所有硬件资源&#xff08;如存储器&#xff0c;输入输出单元&#xff09;进行…

设计师常用的UI设计软件推荐

如今&#xff0c;随着互联网时代设计岗位的演变&#xff0c;近年来出现了一位新兴而受欢迎的专业UI设计师。对于许多对UI设计感兴趣或刚刚接触UI设计的初学者来说&#xff0c;他们不禁想知道&#xff0c;成为一名优秀的UI设计师需要掌握哪些UI软件&#xff1f;今天&#xff0c;…

Docker自动化部署安装(十)之安装SonarQube

这里选择的是&#xff1a; sonarqube:9.1.0-community (推荐使用) postgres:9.6.23 数据库(sonarqube7.9及以后便不再支持mysql&#xff0c;版本太低的话里面的一些插件会下载不成功的) 1、docker-sonarqube.yml文件 version: 3 services:sonarqube:container_name: sonar…