Linux命令学习—Iptables 防火墙(上)

1.1、防火墙

1、防火墙的定义

        所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上 构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使 Internet 与 Intranet 之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火 墙主要由服务访问规则、验证工具、包过滤和应用网关 4 个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件(其中硬件防火墙用的较少,例如国 防部以及大型机房等地才用,因为它价格昂贵)。该计算机流入流出的所有网络通信均要经过此防火墙。 

2、防火墙的功能

       防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙 还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自 特殊站点的访问,从而防止来自不明入侵者的所有通信。

3、以设备划分防火墙的种类

1):软件防火墙

        软件防火墙就是保护计算机的一套软件,装在计算机里面,以提供保护计算机的功能。如用 Linux 主机 架设一个防火墙。

2):硬件防火墙

        硬件防火墙主要是由厂商设计好的硬件,里面有自己的操作系统,以提供封包过滤机制,故性能较佳。

4、以技术划分防火墙

1):包过滤型

       主要依据是网络中的分包传输技术。包过滤技术的优点是简单实用,实现成本较低

2):网络地址转换

       将封包中的来源或者目的 IP 进行更改,可以使私有网络连上互连网

3):代理性防火墙

       可以代理客户端将需要的资料进行查找并返回给客户端,安全性较高,但是性能要求较高

4):监测型防火墙

       可以对各个网络层进行主动的数据分析,安全性极高,但性能要求很高

5、Linux 下的防火墙软件

       Linux 防火墙直接由内核进行处理,安全性高,不同的 Linux 内核使用的防火墙机制 内核版本 使用的软件

2.0 ipfwadm
2.2 ipchains 
2.4 与 2.6 iptables

1.2、iptables

1、iptables 介绍

        iptables 是建立在 netfilter 架构基础上的一个包过滤管理工具。

        用户通过 /sbin/iptables 命令来管理 iptables,和 route 命令相同,iptables 命令的效果在重新启动以后就不再有效。

        可以使用 /etc/rc.d/init.d/iptables save 将当前 iptables 规则写到 /etc/sysconfig/iptables 文 件中,那么每次开机时/etc/rc.d/init.d/iptables start 命令会使 /etc/sysconfig/iptables 中的规 则生效。

2、iptables 防火墙框架图

3、表

       iptables 是由几张表所组成,每张表又由几条链组成,每张表负责不同的封包处理机制,每条链负责不 同的封包走向,具体采取的策略由链里的规则设定

filter 表: 用于过滤封包
Nat 表 : 用于做地址转换
mangle 表: 允许改变包的内容来进一步矫正包

4、链

INPUT 链: 存在于 filter 表,主要用于处理进入本机的封包
OUTPUT 链: 存在于 filter 表,主要用于处理离开本机的封包
FORWARD 链: 存在于 fileter 表,主要用于处理穿过本机的封包
PREROUTING 链: 存在于 nat 表,主要用于修改目的地址(DNAT)
POSTROUTING 链: 存在于 nat 表,主要用于修改来源地址(SNAT)

1.3、iptebles 文件

1、防火墙配置保存文件

/etc/sysconfig/iptables

2、防火墙配置保存命令

service iptables save

3、防火墙的启动/停止/重启

service iptables start
service iptables stot
service iptables restart

1.4、iptables 的配置

1、iptables 的标准语法

iptables [-t table] 命令 [chain] [rules] [-j target]

table——指定表名
NAT 和一般的 mangle 用 -t 参数指定要操作哪个表。filter 是默认的表,如果没有 -t 参数,就默认对
filter 表操作。
命令——对链的操作命令
chain——链名
rules——规则
target——动作如何进行

example:

             iptables -A INPUT -p icmp -j DROP

             设置 INPUT 规则,将所有基于 icmp 协议的数据包全部丢弃

2、对链的操作

2、对链的操作
-L 列出当前的 iptables 的规则
-vnL 列出所有 iptables 相关规则的详细参数
-A 追加一条规则(默认添加道最后) 
iptables -A INPUT -s 200.200.200.200 -j DROP  追加一条 INPUT 记录,将源目的地址为200.200.200.200 的数据包丢弃
-I 插入一条规则
iptables -I INPUT 1 -s 200.200.200.200 -j DROP  插入一条 INPUT 记录,将源目的地址为200.200.200.200 的数据包丢弃
-D 删除一条规则
iptables -D INPUT 1
iptables -D INPUT -s 200.200.200.200 -j DROP
-P 设置某条链的默认规则
iptables -P OUTPUT DROP    设置所有发送的数据包丢弃
-F 清空规则
iptables -F    清空所有 iptables 规则

3、操作命令

按网络接口匹配:

-i eth0 匹配数据进入的网络端口
-o eth0 匹配数据流出的网络端口

按来源目的地址匹配:

-s ip 匹配来源 IP
-d ip 匹配目的 IP

example:

               iptables -A INPUT -i eth0 –s 200.200.200.200 –j DROP

在 INPUT 链里追加一条规则,所有从 eth0 口进入的源地址为 200.200.200.200 的数据包全部丢弃

按协议匹配:

 协议可以是 TCP,UDP,ICMP,也可以不加

example:

              iptables –A INPUT -p tcp -s 200.200.200.200 -j ACCEPT

在 INPUT 链里追加一条规则,所有源地址为 200.200.200.200 的基于 tcp 协议的数据包允许通过

动作处理:

-j ACCEPT 允许封包通过而不拦截
-j DROP 不允许封包通过

指定碎片:

       在 TCP/IP 通讯中,每个网络接口都有一个最大的传输单元(MTU),用来定义了通过数据包大小的最大范 围,如果数据大于 MTU 时,系统会将大数据包分割成多个小数据包来传输(我们把这些包称为 IP 碎片), 接收方再对数据进行重组,来还原整个包。

       在进行包过滤的时候,IP 碎片会导致一个问题,第一个数据包会包含完整的包头信息,而后续的数据包 只有部分包头信息,当存在这样一条规则的时候

iptables -A FORWARD -p tcp -s 200.200.200.200/24 -d 200.200.200.1 –dport 80 -j ACCEPT
iptables -P FORWARD DROP

系统会把第一个以后的包过滤掉

我们可以添加一条规则来解决这个问题

iptables -A FORWARD -f -s 200.200.200.200/24 -d 200.200.200.1 -j ACCEPT 

指定非:

在某些选项前加上!来表示非指定值

example: -s -!200.200.200.1/24 代表除 200.200.200.1 以外的 IP 地址
-p -!icmp 代表除了 icmp 以外的协议。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode216:组合总和Ⅲ

题目描述 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 解题思想 使用回溯算法 代码 class So…

代理IP对网络爬虫有什么影响?

代理IP对网络爬虫的影响深远且多方面,主要体现在以下几个方面: 第一点,代理IP能有效防止爬虫IP被封禁:在爬虫工作过程中,如果频繁访问同一目标网站,很容易被该网站的服务器识别为恶意行为,导致…

【大数据】Apache Knox 概述

Apache Knox 概述 1.概述1.1 Kerberos 封装1.2 简化客户端证书的管理1.3 Apache Ranger 集成1.4 Hadoop URLs VS Knox URLs 2.自定义 Apache Knox2.1 Topology2.2 Provider2.3 Services2.4 Personalized services 3.Tips3.1 Setting up SSL3.2 常见问题3.2.1 Bulky answer3.2.2…

【JavaSE】JDK17的一些特性

前言 从springboot3.0开始,已经不⽀持JDK8了 选⽤Java17,概括起来主要有下⾯⼏个主要原因 JDK17是LTS(⻓期⽀持版),可以免费商⽤到2029年。⽽且将前⾯⼏个过渡版(JDK9-JDK16) 去其糟粕,取其精华的版本JDK17…

hbase基础(二)

HBase第二天 名称空间 namespace:名称空间默认hbase有两个名称空间,default、hbasedefault名称空间是默认创建表的位置,hbase是专门存放系统表的名称空间(namespace、meta)管理命名空间指令 create_namespace 命名空…

qt tcp 连接 秒断连,求助

问题: tcp连接总是秒成功后断连 debug会出现下面这些 onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll!00007FFDA2A1D93D: (caller: 00007FFDD8BEACF6) LogHr(1) tid(336c) 8007277C ¡£¡£ one…

小型企业网络优化加速方案

随着数字化经济蓬勃发展,小型企业的网络基础设施变得尤为重要。在这一浪潮中,建立一个稳定、高效的企业网络成为支撑业务发展的关键。本文将深入研究针对小型企业设计的网络优化加速方案,助力企业主了解如何规划和实施适合自身业务需求的网络…

Spring Boot 统一功能处理(三)

本篇主要介绍Spring Boot的统一异常处理。 目录 一、统一异常处理的使用 二、测试统一异常处理效果 三、浅析原理 ControllerAdvice简析 统一处理异常简析 一、统一异常处理的使用 在前面介绍统一数据返回时,我们在程序发生异常时会把整个报错信息都封装在da…

BRC20铭文铭刻解析

BRC20铭文铭刻的出现对于智能制造无疑是一个重要的里程碑。随着科技的飞速发展,智能制造已经成为制造业发展的必然趋势!智能制造是指通过运用人工智能、物联网、大数据等先进技术,实现生产过程的自动化、智能化和高效化。 1. BRC20铭文的概念…

Docker了解及命令行使用

一、了解Docker 1、什么是Docker Docker为应用程序的开发、发布和运行提供了一个基于容器的标准化平台。容器运行的是应用程序,Docker平台用来管理容器的整个生命周期 2、虚拟机与容器 2.1、虚拟机是什么 虚拟机(Virtual Machine)是一种软…

PostgreSQL 免费的对象-关系数据库

目录 一、什么是数据库 二、ORDBMS 的一些术语 三、PostgreSQL 概述 四、PostgreSQL数据库优点和缺点 4.1PostgreSQL数据库的优点 4.2PostgreSQL数据库的缺点 4.3PostgreSQL 特征 五、Linux 上安装 PostgreSQL 5.1Yum 安装 PostgreSQL 5.1.1安装postgreSQL的官方yum仓…

华火电燃灶:重拾烹饪艺术的黄金法则,打造家庭美食的温馨记忆

记得在饭店给客户人炒菜的时候,炉灶下的每一道菜都透着诱人的香气。无论是炒肉还是炖汤,那股鲜香总让人回味无穷。然而,回到家,用上自家的燃气灶,发现同样的食材、同样的配方,味道却平淡无奇,仿…

记录一个hive中因没启yarn导致的spark引擎跑insert语句的报错

【背景说明】 刚在hive中配置了Spark引擎,在进行Hive on Spark测试时报错, 报错截图如下: [atguiguhadoop102 conf]$ hive which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_212/bin:/opt/mod…

一个简单的java递归下降语法分析器例子

import parser.Parser; import parser.RecursiveDescentParser;import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class Main {public static void main(String[] args) {// 关键词List<String> keyList new ArrayList<>(Arra…

npm i 依赖下载失败

git config --global url."https://".insteadOf git://解决npm install 报错 npm ERR code 128 Permission denied_please make sure you have the correct access right-CSDN博客

Apache Answer 开源问答社区安装体验

Answer 是由 SegmentFault 思否团队打造的一款问答平台软件,后端使用 Go 语言编写,于2022年10月24日(程序员节)正式开源。你可以免费使用 Answer 高效地搭建一个问答社区,并用于产品技术问答、客户支持、用户交流等场景。 2023年10月9日,Answer 顺利通过投票,以全票通过…

【Python】函数基础(纯干货版)

目录 什么是函数 函数定义 函数的文档说明 局部变量和全局变量 综合案例&#xff1a;模拟实现ATM界面 什么是函数 函数是组织好的&#xff0c;可重复使用的&#xff0c;用于实现特定功能的代码段&#xff0c;将功能封装在函数内&#xff0c;可供随时随地重复利用&#xff…

BTP连接cloud connector中配置的SAP

登录地址 登录之后可以看到我们已经配置成功的后端系统SAP。 从cloud connector中获取location ID ,然后在BTP中配置Destination 选择目标标签页&#xff0c;点击‘新建目标’&#xff0c;如下图&#xff1a; 新建连接 暂时不知道错误原因 创建目标-HTTP  新建目标&…

(五)STM32F407 cubemx定时器PWM驱动舵机

这篇文章主要是个人的学习经验&#xff0c;想分享出来供大家提供思路&#xff0c;如果其中有不足之处请批评指正哈。 废话不多说直接开始主题&#xff0c;本人是基于STM32F407VET6芯片&#xff0c;但是意在你看懂这篇文章后&#xff0c;不管是F1,F4,H7等一系列系统定时器PWM配置…

动态IP与静态IP的区别,你选对了吗?

在互联网世界中&#xff0c;IP地址是每台设备在网络上的唯一标识。这些地址可以是动态的&#xff0c;也可以是静态的。对于非专业人士来说&#xff0c;理解这两者之间的区别可能会有些困难。本文旨在深入探讨动态IP和静态IP的主要差异&#xff0c;帮助读者根据自己的需求做出明…