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 以外的协议。

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

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

相关文章

大功率Boost升压电路实例设计

项目介绍及参数要求 指标参数光伏额定功率: 4000W光伏最大输入电压: 350V光伏最小输入电压: 150V母线电压(Boost电路输出电压): 600V电流纹波率

野生动物保护视频AI智能监管方案,撑起智能保护伞,守护野生动物

一、背景 在当今世界,野生动物保护已经成为全球性的重要议题。然而,由于野生动物生存环境的不断恶化以及非法狩猎等活动的盛行,保护野生动物变得尤为迫切。为了更有效地保护野生动物,利用视频智能监管技术成为一种可行的方案。 …

Java springboot使用EasyExcel读Excel文件,映射不到属性值,对象属性值都是null

如果你的类上有这个注解,去掉火或注释掉就可以了 Accessors(chain true)解决方法

IO流高级流

前言 缓冲区能够提升输入输出的效率 虽然FileReader和FileWriter中也有缓冲区 但是BufferedReader和BufferWriter有两个非常好用的方法. 缓冲流 字节缓冲流 import java.io.*;public class BufferedStreamDemo {public static void main(String[] args) throws IOExceptio…

「JavaEE」线程

🎇个人主页:Ice_Sugar_7 🎇所属专栏:JavaEE 🎇欢迎点赞收藏加关注哦! 线程 🍉线程🍌多线程🍌线程与进程的联系&区别🍌多线程编程🍌创建线程&a…

02_对象树

#include "mypushbutton.h" #include <QDebug>MyPushButton::MyPushButton(QWidget *parent): QPushButton(parent) {qDebug()<<"我的按钮类构造调用"; }MyPushButton::~MyPushButton() {qDebug()<<"我的按钮类析构调用"; }交…

若依从0到1部署

服务器安装 MySQL8 Ubuntu 在 20.04 版本中&#xff0c;源仓库中 MySQL 的默认版本已经更新到 8.0&#xff0c;因此可以直接使用 apt-get 安装。 设置 apt 国内代理 打开 https://developer.aliyun.com/mirror/ 阿里云镜像站&#xff0c;找到适合自己的系统&#xff1a; 找…

轻松查询车辆信息的全能接口

在当今社会&#xff0c;车辆已经成为人们出行的重要工具之一。当我们在二手车买卖、事故处理或者其他需要查询车辆详细信息的情况下&#xff0c;我们通常需要耗费大量时间和精力去收集相关的资料。幸好&#xff0c;有了车辆信息查询接口&#xff0c;我们可以通过输入车架号vin来…

SSH协议的优缺点

SSH&#xff08;Secure Shell&#xff09;是一种用于在计算机网络上进行安全远程访问和执行命令的协议。提供加密通信通道&#xff0c;防止敏感信息在传输过程中被窃听或篡改。SSH还支持文件传输和端口转发等功能&#xff0c;使其成为广泛使用的安全远程管理工具。 1. 安全远程…

【设计模式】聊聊观察者设计模式原理及应用

原理 观察者模式属于行为模式&#xff0c;行为模式主要解决类和对象之间交互问题。 含义&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变时&#xff0c;所有依赖的对象会自动通知。 被依赖的对象被观察者(Observable) &#xff0c;依赖的对象观察…

Go: 理解 Sync.Pool 的设计

sync 包提供了一个强大且可复用的实例池&#xff0c;以减少 GC 压力。在使用该包之前&#xff0c;我们需要在使用池之前和之后对应用程序进行基准测试。这非常重要&#xff0c;因为如果不了解它内部的工作原理&#xff0c;可能会影响性能。 池的限制 我们来看一个例子以了解它…

【电控笔记3.5】三相逆变器

基础 大小调变指标ma 频率调变指标mf 载波频率:pwm频率

日本极致产品力 | 井村屋红豆棒冰如何年销2.5亿根

《极致产品力》日本深度研学是一个顾问式课程,可以帮助企业找产品、找方向、找方法,在日本终端市场考察中洞悉热销产品背后的成功逻辑&#xff0c;了解最新最前沿的产品趋势和机会。结合日本消费趋势中国转化的众多经验,从品牌、包装、卖点、技术和生产艺等多方面寻找中国市场的…

MoCo v2 论文解读

paper&#xff1a;Improved Baselines with Momentum Contrastive Learning official implementation&#xff1a;https://github.com/facebookresearch/moco 这篇文章的内容只有2页&#xff0c;不能称之为paper&#xff0c;作者本人也称之为note。主要内容就是将SimCLR中的两…

1.5MHz,1.2A COT 架构同步降压变换器只要0.16元,型号:LN3435

推荐原因 1.5MHZ的开关频率&#xff0c;可以使用小电感&#xff0c;1.2A满足多数应用&#xff0c;价格感人&#xff0c;只要0.16元 产品概述 LN3435是一款电流模COT架构同步降压开关稳压器。 输入范围为 2.7V-6.0V&#xff0c;可提供 1.2A 的连续输出电流。 内部集成了低内阻…

学习Rust的第4天:常见编程概念

基于Steve Klabnik的《The Rust Programming Language》一书。昨天我们做了一个猜谜游戏 &#xff0c;今天我们将探讨常见的编程概念&#xff0c;例如&#xff1a; Variables 变量Constants 常数Shadowing 阴影Data Types 数据类型Functions 功能 Variables 变量 In layman ter…

C语言入门第四天(数组)

一、C语言数组的基本语法 1.数组的定义 数组是 C 语言中的一种数据结构&#xff0c;用于存储一组具有相同数据类型的数据。数组中的每个元素可以通过一个索引&#xff08;下标&#xff09;来访问&#xff0c;索引从 0 开始&#xff0c;最大值为数组长度减 1。 2.定义语法格式 …

4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频

摘要/导言 在本文中&#xff0c;我们将探讨如何使用 SwiftSoup 库和爬虫代理技术来获取网站上的视频资源。我们将介绍一种简洁、可靠的方法&#xff0c;以及实现这一目标所需的步骤。 背景/引言 随着互联网的迅速发展&#xff0c;爬虫技术在今天的数字世界中扮演着越来越重要…

Python也可以合并和拆分PDF,批量高效!

PDF是最方便的文档格式&#xff0c;可以在任何设备原样且无损的打开&#xff0c;但因为PDF不可编辑&#xff0c;所以很难去拆分合并。 知乎上也有人问&#xff0c;如何对PDF进行合并和拆分&#xff1f; 看很多回答推荐了各种PDF编辑器或者网站&#xff0c;确实方法比较多。 …

支持向量机模型pytorch

通过5个条件判定一件事情是否会发生&#xff0c;5个条件对这件事情是否发生的影响力不同&#xff0c;计算每个条件对这件事情发生的影响力多大&#xff0c;写一个支持向量机模型pytorch程序,最后打印5个条件分别的影响力。 示例一 支持向量机&#xff08;SVM&#xff09;是一种…