linux 防火墙介绍以及iptables的使用

背景介绍

        在前几天,于工发现我们内部的150服务器7554端口被外网访问了。该应用提供着内部的摄像头资源。为了避免被入侵,于是我添加了一些iptables规则,防止外网的访问。

解决方式

解决方式有两种:

  • 关闭公司公网路由器对150服务器进行端口映射
  • 在150服务器上进行iptables的规则设置,只允许内部网段进行访问。

对于第一种方式,只要将路由器上对应的端口映射关闭即可,不需要做其他操作。

第二种方式,需要在150上进行设置:

iptables -I INPUT -p tcp --dport 7554 -j DROP 
iptables -I INPUT -s 192.168.18.0/24 -p tcp --dport 7554 -j ACCEPT
iptables -I INPUT -s 180.168.172.70 -p tcp --dport 7554 -j ACCEPT
service iptables save

第一条命令:在INPUT链中,将所有TCP协议,目的端口是7554的数据包,全部丢掉
第二条命令:在INPUT链中,将源IP为192.168.18.0/24网段,传输协议为TCP,目标端口是7554的数据包接收
第三条命令:和第二条类似,只不过接受的是某一个具体源IP。
第四条命令:保存设置,否则重启之后就不再生效。

iptables可通过 -t 来选择表,内建的规则表有三个,分别是:nat、mangle 和 filter。若没有指定,则默认为filter表。

至此,问题就解决了。但是在过程中,发现自己对netfilter表不熟悉了,iptables命令使用的也不熟练。顺便回顾一遍。

netfilter的四表五链

linux的防火墙其实就是netfilter。它主要包含以下四表五链:
filter表:过滤数据包
Nat表: 用于网络地址转换
Mangle表: 修改数据包的服务类型,TTL,并且可以配置路由器实现QOS
RAW表: 决定数据包是否被状态跟踪器机制处理

四张表的由优先级:raw>mangle>nat>filter

INPUT链:进来的数据包应用此规则链中的策略
OUTPUT链:外出的数据包应用此规则链中的策略
FORWARD链: 转发数据包时应用此规则链中的策略
PREROUTING链:对数据包做路由选择前应用此链中的规则
POSTROUTING链: 对数据包作路由器选择后应用此链中的规则

netfilter图可参考以下:

由图可知:
RAW(conntrack)表在PREROUTING和OUTPUT链中
mangle表在五链中都有
nat表存在PREROUTING和OUTPUT和POSTROUTING链中
filter表存在FORWARD和INPUT,OUTPUT链中。

iptables介绍

iptables只是一个应用工具。通过对netfilter的介绍,我们知道linux的防火墙框架就是netfilter。但是它是处于内核空间的,我们无法直接去控制。而iptables就是应用层的工具。

由于iptables内容较多,我这里主要通过几个例子来介绍。能够达到看懂命令,根据需求去搜索资料即可。

iptables的命令格式如下:

iptables command chain rule-specification [options]
//chain 指哪一条链 

command

-APPEND (-A):表示附加,它会将规则添加到已有防火墙链中的末尾。规则在防火墙链中的位置很重要,因为在一般情况下,防火墙链中的最后一条是丢弃所有包。很可能导致新建规则无效

-DELETE (-D):表示删除规则。一般使用iptables -D chain rulenum,删除chain中编号是rulenum的规则

-INSERT (-I):表示插入规则。一般使用iptables -I chain [rulenum] firewall-rule,在chain中的添加规则为第rulenum条。后面的规则全都加1.若没有指定rulenum,默认是第一条

-LIST (-L):列出规则,一般使用iptables -L --line-numbers

-FLUSH (-F):清空规则。一般使用iptables -F [chain],清空chain中的规则。若没有指定chain,则全部清空。

options

-P 代表协议。若不指定定协议,则默认为all。/etc/protocols文件包含了所支持的协议和值。

-S 代表源地址。可以是ip,网路地址或主机名。若不指明源地址,则匹配所有源地址

-D 代表目的地址。和-S相似。

-J 表示跳转。指当某个数据包满足该规则时就跳转到写一个处理规则。不再继续顺序处理后面的规则判断。处理规则一般有:ACCEPT,DORP,QUEUE,RETURN。分别表示接受,丢弃,进入队列,返回。

-I 表示进入的网络接口。比如:-I eth0,表示该规则主要针对eth0接口进入的数据包。

-O 代表出站网络接口,和-I相似。

-SPORT 表示源端口。可以指定端口号或端口名称。在/etc/service文件中包含了所有允许的端口和对应的端口号(内容很多)。

-DPOT 表示目的端口。和-SPORT相似。

练习

基本的iptables的语法已经介绍完了,通过几个例子,更快的上手。

  1. 删除现有规则。iptables -F
  2. 阻止一个特定的IP地址。iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP
  3. 允许所有传入SSH。
iptables -A INPUT  -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

4.将来自422端口的流量全部转到22端口。

iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22

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

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

相关文章

论文阅读-多目标强化学习-envelope MOQ-learning

introduction 一种多目标强化学习算法,来自2019 Nips《A Generalized Algorithm for Multi-Objective Reinforcement Learning and Policy Adaptation》 总体思想 待补充 算法 虽然论文中用的是Q-learning的架构,但是在提供的代码中,采用…

神经网络量化----为了部署而特别设计

引言:一般神经网络量化有两个目的: 为了加速,在某些平台上浮点数计算比较耗费时间,替换为整形可以加快运算为了部署,某些平台上只支持整形运算,比如在芯片中 如果是第1个目的,则使用常规的量化手…

算法通关村第二关|青铜|链表反转

1.建立虚拟头结点辅助反转 1.1 反转链表:使用虚拟头结点辅助反转。 public ListNode reverseList(ListNode head) {ListNode ans new ListNode(0);ListNode cur head;while (cur ! null) {ListNode next cur.next;cur.next ans.next;ans.next cur;cur next;…

笙默考试管理系统-MyExamTest----codemirror(34)

笙默考试管理系统-MyExamTest----codemirror(34) 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 笙默考试…

运行 `npm install` 时的常见问题与解决方案

运行 npm install 时的常见问题与解决方案 问题一:网络连接问题 描述: 运行 npm install 时,可能会遇到网络连接问题,导致无法正常下载依赖包。 报错示例: npm ERR! network connection timed outnpm ERR! connect…

【Rust基础④】Rust中的集合类型(Vector与HashMap)

文章目录 8 集合类型8.1 动态数组 Vector8.1.1 创建动态数组8.1.2 从 Vector 中读取元素8.1.3 迭代遍历 Vector 中的元素8.1.4 存储不同类型的元素 8.2 KV 存储 HashMap8.2.1 创建 HashMap使用 new 方法创建使用迭代器和 collect 方法创建 8.2.2 查询 HashMap8.2.3 更新 HashMa…

【财政金融】全国各地区财政收入与支出面板数据合集(2000-2022年)

数据简介:2000年到2022年中国经历了快速的经济发展和城市化进程,各地区的财政收入和支出也呈现出显著的增长和变化,全国各地区财政收入与支出的面板数据可用于评估经济发展水平和区域差距,通过比较不同地区之间的财政收入和支出水…

来来来,降温啦给女儿这么穿,好看又保暖

家人们谁懂啊!!! 时尚百搭有气质的羽绒服 小编强烈推荐哦! 防风保暖设计加三防工艺 简直不要太哇塞 怎么穿都好看哦

Java设计模式之亨元模式(Flyweight Pattern)

亨元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来最大限度地减少内存使用和提高性能。该模式适用于需要创建大量相似对象的情况,其中许多对象具有相同的状态。通过共享相同的状态,亨元模式可以减少…

decltype关键字

获取表达式的类型 auto用于通过一个表达式在编译时确定待定义的变量类型,auto所修饰的变量必须被初始化,编译器需要通过初始化来确定auto所代表的类型,即必须要定义变量。若仅希望得到类型,而不需要(或不能&#xff09…

机器人制作开源方案 | 行星探测车概述

1. 功能描述 行星探测车(Planetary Rover)是一种用于进行科学探索和勘测任务的无人车辆,它们被设计成能够适应各种复杂的地形条件和极端环境,以便收集数据、拍摄照片、采集样本等。行星探测车通常包含以下主要组件和功能&#xff…

抖音小程序制作源码系统 带完整搭建教程

在当今社交媒体时代,抖音作为一款备受欢迎的短视频应用,已经拥有了庞大的用户群体。与此同时,抖音小程序也成为了商家和开发者们关注的热点。今天小编就来给大家介绍一款抖音小程序制作源码系统,五分钟确实创建一个小程序。 系统特…

音乐播放器VHDL蜂鸣器数码管显示简谱,视频/代码

名称:音乐播放器数码管显示简谱蜂鸣器 软件:Quartus 语言:VHDL 代码功能: 设计音乐播放器,播放一首歌,使用开发板的蜂鸣器播放音乐,使用Quartus内的ROM IP核存储音乐文件,使用数…

为什么要做数据可视化

在当今信息爆炸的时代,数据已成为个人和企业最宝贵的资产之一。然而,仅仅拥有大量的数据并不足以支持明智的决策。数据可视化,作为一种将数据转化为图形形式的技术和方法,可以帮助我们更好地理解和分析数据,从而更准确…

《golang设计模式》第三部分·行为型模式-01-责任链模式(Chain of Responsibility)

文章目录 1 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1 概念 责任链(Chain of Responsibility)是指将客户端请求处理的不同职责对象组成请求处理链。 客户端只需要将请求交付到该链上,而不需要关心链上含有哪些对象。请求…

首次建站用香港服务器有影响没?

​  对于首次租用香港服务器的朋友来说,难免会对它没有一个很清晰的认知。因此,本文就从香港服务器适用人群,以及建站影响,选择技巧上做一个全方位的解答。 1. 哪一类人群适合使用香港服务器建站? 做外贸业务的网站。香港走的国…

时间序列预测 Graph-WaveNet:Graph WaveNet for Deep Spatial-Temporal Graph Modeling

Graph-WaveNet Graph WaveNet for Deep Spatial-Temporal Graph Modeling1.概述2.提出问题 & 解决策略 & 模型结构3.实验结果 ** Graph WaveNet for Deep Spatial-Temporal Graph Modeling ** 1.概述 时空图建模是分析系统中各组成部分的空间关系和时间趋势的一项重…

上海市教委产学研教师沙龙成功举办,共研大模型AI人才培养与插件生态

10月15日,百度飞桨携手上海市教育委员会、上海市学位委员会、上海物联网行业协会联合举办的“AI大模型产学研融合创新”上海研究生导师沙龙,在百度飞桨(张江)人工智能产业赋能中心顺利召开。来自上海地区20位高校及科研机构在聘研…

正向代理与反向代理

正向代理 客户端想要直接与目标服务器连接,但是无法直接进行连接,就需要先去访问中间的代理服务器,让代理服务器代替客户端去访问目标服务器 反向代理 屏蔽掉服务器的信息,经常用在多台服务器的分布式部署上,像一些大型…

C#快速排序算法

快速排序实现原理 快速排序(Quick Sort)是一种常用的排序算法,它基于分治的思想,通过将一个无序的序列分割成两个子序列,并递归地对子序列进行排序,最终完成整个序列的排序。 其基本思路如下: 选…