当前位置: 首页 > news >正文

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

相关文章:

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

背景介绍 在前几天,于工发现我们内部的150服务器7554端口被外网访问了。该应用提供着内部的摄像头资源。为了避免被入侵,于是我添加了一些iptables规则,防止外网的访问。 解决方式 解决方式有两种: 关闭公司公网路由器对150服务…...

原码、反码、补码在汇编中的应用

原文章:知乎 原码和二进制类似,不过它有符号位。正数符号位为0,负数为1 。 例:40000 0100 ,-41000 0100 原码是人脑最容易理解和计算的表示方式。 但是这在计算机中计算就出了问题,这两个(4…...

【红日靶场】vulnstack5-完整渗透过程

系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 【红日靶场】vulnstack4-完整渗透过程 文章目录 系列文章目录描述虚拟机密码红队思路 一、环境初始化二、开始渗透外网打点上线cs权限提升域信息…...

嵌入式平台的电源总结

本文引注: https://mp.weixin.qq.com/s/PuSxHDFbJjjHEReukLSvyg 1.AC的定义 Alternating Current(交流)的首字母缩写。AC是大小和极性(方向)随时间呈周期性变化的电流。电流极性在1秒内的变化次数被称为频率,以Hz为单位…...

@Binds methods must be abstract 报错指南

bindings方法必须是抽象的 Binds使用错误...

自定义反序列化类将LocalDate时间格式转为 LocalDateTime

从前端接收数据反序列化成类,如果时间格式不一致可能会反序列化失败 public class StorageDTO implements Serializable {private static final long serialVersionUID 1L;......//实体类中格式为JsonFormat(pattern "yyyy-MM-dd")JsonDeserialize(using CustomL…...

MySQL JSON_TABLE() 函数

JSON_TABLE()函数从一个指定的JSON文档中提取数据并返回一个具有指定列的关系表。 应用:数据库字段以JSON 存储后,实际应用需要对其中一个字段进行查询 语法 JSON_TABLE(json,path COLUMNS(column[,column[,...]]))column:name参数 json必需的。一个 …...

【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型

【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型 SKRR这是Gustau Camps-Valls等人在“用深度结构核回归检索物理参数”中提出的结构核岭回归(SKRR)方法。 参考文献: Camps-Valls,Retrieval of Physical Pa…...

Qt消息对话框的使用

本文介绍Qt消息对话框的使用。 QMessageBox类是Qt编程中常用到的一个类,主要用来进行一些简单的消息提示,比如:问题对话框,信息对话框等,这些对话框都属于QMessageBox类的静态方法,使用起来比较简单&#…...

spring的Ioc、DI以及Bean的理解

文章目录 什么是Ioc?Spring和这有什么关系Spring是怎么做的?如果service层对dao层有依赖该怎么办?什么叫做依赖注入Spring这样做的目的是什么参考文献 什么是Ioc? Ioc(Inversion of Control) 控制反转,就是使用对象时…...

倒计时 天时分秒

shijian() {const EndTIME new Date(开始时间变量); // 截止时间const NowTime new Date(); // 开始时间const usedTime EndTIME - NowTime; // 相差的毫秒数const days Math.floor(usedTime / (24 * 3600 * 1000)); // 计算出天数const leavel usedTime % (24 * 3600 * 1…...

Spring篇---第六篇

系列文章目录 文章目录 系列文章目录一、Spring 框架中的单例 Bean 是线程安全的么?二、Spring 是怎么解决循环依赖的?三、说说事务的隔离级别一、Spring 框架中的单例 Bean 是线程安全的么? Spring 框架并没有对单例 Bean 进行任何多线程的封装处理。 关于单例 Bean 的线程…...

【unity小技巧】适用于任何 2d 游戏的钥匙门系统和buff系统——UnityEvent的使用

文章目录 每篇一句前言开启配置门的开启动画代码调用,控制开启门动画 新增CollisionDetector 脚本,使用UnityEvent ,控制钥匙和门的绑定多把钥匙控制多个门一把钥匙控制多个门 BUFF系统扩展参考源码完结 每篇一句 人总是害怕去追求自己最重要…...

爬虫ip如何加入到代码里实现自动化数据抓取

以下是一个使用HTTP:Tiny和www.weibo.com的音频爬虫程序的示例。这个示例使用了https://www.duoip.cn/get_proxy来获取爬虫IP。请注意,这个示例可能需要根据你的实际需求进行调整。 #!/usr/bin/perluse strict; use warnings; use HTTP::Tiny; use LWP::UserAgent; …...

在win10上安装配置Hadoop的环境变量

一、背景 在windows10系统中运行seatunnel 二、安装部署 2.1. 下载 Hadoop包 从 Apache Hadoop 官网下载最新版本的 Hadoop,版本号保持与服务端的Hadoop版本一致。 https://hadoop.apache.org/releases.htmlIndex of /apache/hadoop/core/hadoop-3.2.3/ 2.2. 解…...

MAX插件CG Magic怎么云渲染?操作方法已整起!

小编这里会收到不少网友的反馈是关于3ds max插件CG Magic怎么云渲染? 3d max的这款插件CG MAGIC的出现就是为了设计师使用过程中,可以省时又省心的完成工作。 同时,大家要了键下,现阶段CG MAGIC有18个板块,118个模块…...

尝试使用jmeter-maven-plugin

前提准备 1、maven项目 2、已安装JMeter、Jenkins、maven、jdk 环境要求: jmeter>5.6.2 maven >3.9 jdk>1.8 Jenkins ? 备注:jmeter-maven-plugin 无需下载,可查阅相关地址:GitHub - jmeter-maven-plugin/jmete…...

navigator.userAgent.toLowerCase区分设备,浏览器

navigator.userAgent.toLowerCase区分设备,浏览器 navigator.userAgent.toLowerCase()区分设备是pc还是移动端在确认是移动端的基础上,判断是Android、ipad、iphone内置的浏览器,比如新浪微博、腾讯QQ(非QQ浏览器&…...

防火墙操作:开放端口ICMP时间戳请求漏洞修复

响应ICMP时间戳请求漏洞修复 firewall-cmd --permanent --zonepublic --add-icmp-blocktimestamp-reply firewall-cmd --permanent --zonepublic --add-icmp-blocktimestamp-request firewall-cmd --reload --防火墙状态 systemctl status firewalld --打开防火墙 systemctl …...

MySQL配置环境变量和启动登录

如果不配置环境变量,每次登录 MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任…...

UCIe 1.0 实战笔记:当PCIe 6.0 Flit遇上Chiplet,这10个字节的改动意味着什么?

UCIe 1.0 技术解析:PCIe 6.0 Flit与Chiplet互连的10字节优化设计 在芯片设计领域,UCIe(Universal Chiplet Interconnect Express)标准的出现为异构集成提供了全新的互连解决方案。作为PCIe 6.0的扩展,UCIe 1.0特别针对…...

手机拍照太暗有救了!深入浅出解读Zero-DCE低光增强算法

手机拍照太暗有救了!深入浅出解读Zero-DCE低光增强算法 你是否曾在昏暗的餐厅、夜晚的街头或光线不足的室内,用手机拍下一张照片,却发现画面漆黑一片、细节全无?这种令人沮丧的体验即将成为过去。今天,我们要介绍一项革…...

K8s集群里Nginx和Traefik怎么和平共处?一个真实场景下的双Ingress Controller配置实战

Kubernetes集群中Nginx与Traefik双Ingress Controller共存实践 在Kubernetes生产环境中,我们经常会遇到需要同时运行多个Ingress Controller的场景。比如,一个已经稳定运行Nginx Ingress Controller的集群,现在希望引入Traefik来管理特定Nam…...

打卡信奥刷题(3180)用C++实现信奥题 P8015 [COCI 2013/2014 #4] GUMA

P8015 [COCI 2013/2014 #4] GUMA 题目描述 给出一个 N 1 N1 N1 列的矩形,第 i i i 列必须通过水平切割 A i − 1 A_i-1 Ai​−1 次被等分成 A i A_i Ai​ 份,请你求出最少需要几次切割才能按要求分割完。 T i p s : Tips: Tips: 一次切割一次可以…...

别再手动画图了!用evo工具箱5分钟搞定SLAM轨迹评估与可视化(保姆级命令详解)

别再手动画图了!用evo工具箱5分钟搞定SLAM轨迹评估与可视化(保姆级命令详解) 当你完成SLAM算法的初步开发后,最头疼的问题往往不是算法本身,而是如何快速、准确地评估轨迹质量。传统的手动计算误差、用Matlab或Python画…...

计算机组成原理知识问答系统:基于LiuJuan20260223Zimage的实现

计算机组成原理知识问答系统:基于LiuJuan20260223Zimage的实现 最近在尝试一些AI应用时,我发现了一个挺有意思的镜像,叫LiuJuan20260223Zimage。它不是一个通用的大模型,而是专门针对计算机组成原理这个领域做了深度优化。简单来…...

Windows也能拥有高效终端:WSL2 + Windows Terminal配置

Windows也能拥有高效终端:WSL2 Windows Terminal配置 长期以来,Windows的终端体验一直被开发者诟病,尤其是与Linux和macOS相比。随着微软推出WSL2(Windows Subsystem for Linux 2)和Windows Terminal,这一…...

wxauto:告别微信消息焦虑,5分钟搭建你的专属智能助手

wxauto:告别微信消息焦虑,5分钟搭建你的专属智能助手 【免费下载链接】wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 项目地址: https://gitcode.com/g…...

Windows上直接安装APK文件的终极指南:告别笨重模拟器

Windows上直接安装APK文件的终极指南:告别笨重模拟器 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否厌倦了在Windows电脑上使用安卓模拟器时遇到的卡…...

AMD显卡驱动终极瘦身指南:Radeon Software Slimmer完全教程

AMD显卡驱动终极瘦身指南:Radeon Software Slimmer完全教程 【免费下载链接】RadeonSoftwareSlimmer Radeon Software Slimmer is a utility to trim down the bloat with Radeon Software for AMD GPUs on Microsoft Windows. 项目地址: https://gitcode.com/gh_…...