百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux系统相关防火墙iptables命令操作

ahcoder 2025-02-21 12:00 35 浏览

1.查看当前iptables策略

iptables -t nat -L -n --line-numbers

指令详解

-t

filter:用于过滤数据包的表。这是 iptables 默认的表,用于配置防火墙规则iptables 默认的表

nat:用于网络地址转换 (NAT) 的表。在此表中,可以配置用于修改数据包地址或端口的规则,实现网络地址转换。


mangle:用于修改数据包头的表。在此表中,可以配置用于修改数据包头部信息的规则,如修改 TTL(Time To Live)值等。


raw:用于配置原始数据包处理的表。在此表中,可以配置规则来指定哪些数据包应该绕过连接跟踪系统。

常用命令以及基本规则介绍

---prerouting 路由规则之前的动作---dnat (目的地址转换)

---postrouting(路由规则之后的动作) ---snat( 源地址转换)

a 查询路由规则命令

1.查看
iptables -t nat -L -n --line-numbers
2.删除
iptables -t nat -D POSTROUTING 1
3.常见保存命令文件
/etc/rc.loca
4.永久保存的方法
//ubuntu:
apt install iptables-persistent
配置规则
保存规则
iptables-save > /etc/iptables/rules.v4  
iptables-persistent 在启动时会自动加载保存的规则
//centos
iptables-save > /etc/sysconfig/iptables
[root@server-nginx2 openvpn]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Mon Feb 19 17:07:36 2024
*nat
:PREROUTING ACCEPT [241:27220]
:INPUT ACCEPT [12:690]
:OUTPUT ACCEPT [33:2171]
:POSTROUTING ACCEPT [33:2171]
-A POSTROUTING -s 111.10.0.0/16 -o eth0 -j SNAT --to-source 172.17.2.25
COMMIT
# Completed on Mon Feb 19 17:07:36 2024



filter策略的使用命令详解

配置 iptables 的过滤表(filter table)是实现网络安全的基础。以下是一些常见的 iptables 过滤表配置示例:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许传入的 SSH 连接(端口 22)。 -A INPUT 表示将规则附加到 INPUT 链, -p tcp 指定协议为 TCP, --dport 22 指定目标端口为 22, -j ACCEPT 表示接受匹配的连接
 iptables -A INPUT -s 192.168.1.100 -j ACCEPT
 #允许来自 IP 地址 192.168.1.100 的传入连接。
 iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 #允许已经建立的连接通过,通常用于允许对现有连接的回复。
 iptables -A INPUT -j DROP #拒绝所有未匹配到的传入连接
  iptables -A OUTPUT -j ACCEPT #允许系统上的所有传出连接。

nat类型策略的使用命令详解

iptables -t nat 命令用于操作 iptables 的 nat 表。nat 表主要用于配置网络地址转换 (NAT) 规则,允许你修改数据包的源或目标地址以及端口信息

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
#将 PREROUTING 链中接口 eth0 上目标端口为 80 的 TCP 数据包转发到内部网络中的地址 192.168.1.100 的 8080 端口
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
将 POSTROUTING 链中出口接口 eth0 的数据包源地址转换为出口接口的地址,通常用于实现 NAT 网络共享功能
MASQUERADE会自动读取eth0现在的ip地址然后做SNAT出去
iptables -t nat -A OUTPUT -d 10.0.0.1 -j DNAT --to-destination 192.168.1.100
# 将 OUTPUT 链中目标地址为 10.0.0.1 的数据包的目标地址修改为 192.168.1.100。
 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80
#将 PREROUTING 链中接口 eth0 上目标端口为 8080 的 TCP 数据包重定向到本地的端口 80。

mangle类型策略的使用命令详解

iptables -t mangle 命令用于操作 iptables 的 mangle 表。mangle 表用于修改数据包的头部信息,允许对数据包进行更底层的处理

iptables -t mangle -A PREROUTING -i eth0 -m ttl --ttl-lt 2 -j TTL --ttl-set 64
将 PREROUTING 链中进入接口 eth0 的 TTL 小于 2 的数据包的 TTL 设置为 64  ttl是路由的跳数(其TTL值会减1,当路由器收到一个TTL值为0的数据报时,路由器会将其丢弃,TTL字段的目的是就是为了防止1个IP数据报网络中循环的流动。)
iptables -t mangle -A PREROUTING -s 192.168.1.0/24 -j MARK --set-mark 1
将 PREROUTING 链中源地址为 192.168.1.0/24 的数据包标记为标记值 1
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400
将 FORWARD 链中 SYN 标志被设置的 TCP 数据包的最大报文段长度(MSS)设置为 1400 字节。
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
将 PREROUTING 链中进入接口 eth0 的所有数据包的 TTL 值增加 1

raw类型使用

iptables -t raw 命令用于操作 iptables 的 raw 表。raw 表是 iptables 中的一种特殊表,用于配置原始数据包的处理。通常,raw 表用于配置数据包的预处理,例如绕过连接跟踪机制或对数据包进行特定的处理

iptables -t raw -A PREROUTING -p tcp --sport 80 -j NOTRACK
#将 PREROUTING 链中源端口为 80 的 TCP 数据包绕过连接跟踪机制,即不进行连接跟踪。
 iptables -t raw -A PREROUTING -s 192.168.1.0/24 -j MARK --set-mark 1
将 PREROUTING 链中源地址为 192.168.1.0/24 的数据包标记为标记值 1
iptables -t raw -A PREROUTING -p icmp -j DROP
将 PREROUTING 链中所有 ICMP 数据包丢弃。



相关推荐

linux服务器--PVE(一)简介及安装(pve安装ifupdown2)

1.PVE(ProxmoxVirtualEnvironment)简介ProxmoxVirtualEnvironment基于debian,是一个完整的、开源的企业虚拟化服务器管理平台。它在一个平...

手把手教你!如何在 Linux 服务器中搭建 Sentinel 环境?

你在Linux服务器上搭建Sentinel环境时,是不是也遇到过各种报错,要么是启动失败,要么是配置后无法正常访问控制台?看着同事顺利搭建好,自己却一头雾水,别提多着急了!其实,很多互联网大厂...

Linux高性能服务器技术总结(linux高性能服务器编程怎么样)

1服务器简介服务器是提供计算服务的设备,由于服务器需要响应用户请求,因此在处理能力、稳定性、安全性、可扩展性、可管理性等方面提出了较高要求。随着虚拟化技术的进步,云服务器(ECS)已经快速的在...

从 0 到 1:使用 Ansible 自动化运维 Linux 服务器全流程

Ansible是一款强大的IT自动化工具,广泛用于服务器配置管理、软件部署和任务自动化。本文将带你从零开始,学习如何使用Ansible对Linux服务器进行自动化运维,涵盖Ansibl...

诡异!Win11 “此电脑” 莫名现 Linux 图标,啥情况?

我这电脑出了个怪事儿,“此电脑”下面莫名其妙多了个Linux的图标,可我压根儿就没装过Linux系统啊!琢磨了一下,估计是系统可选功能里那个“适用于Linux的Windows子系统”插件搞的鬼。实例系...

Linux基础运维篇:Linux 终端与 Shell 基础(第006课)

一、啥是终端?先搞懂「人和电脑对话的窗口」你可以把终端(Terminal)理解成一个「文字版的电脑操作台」。在Windows里,类似「命令提示符」或PowerShell;在Linux里,...

2025罗技大师系列智「简」大赛-罗技大师系列-MX KEYS S键盘评测

在2025罗技大师系列智「简」大赛中,MXKEYSS键盘凭借其卓越的设计与智能化体验,成为众多创作者的理想之选。本篇文章将深入评测这款键盘的核心功能、使用体验及创新亮点,帮助你了解它如何提升...

Linux编辑命令vim(linux使用vim编辑文件)

1、vi编辑器简介vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版,我们主要讲解的是vim编辑器。可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如:#定义别名...

全选是ctrl加什么?全选的快捷键是什么介绍

如何高效使用「全选」快捷键(Ctrl+A/A)提升工作效率在日常电脑操作中,"全选"是最基础却至关重要的功能之一。无论您是文字工作者、程序员还是普通用户,掌握全选快捷键都能极大提升操作...

Linux命令大全(linux命令大全书)

个人博客:https://chunyu.work/文章较长,可以收藏备用常用快捷键(1)ctrl+c:停止进程(2)ctrl+l:清屏(3)善于用tab键(4)上下键:查找执行过的命令文件目录类(...

Xshell是做什么用的?Xshell使用教程分享

Xshell是一款功能强大的终端模拟器,支持SSH1,SSH2,SFTP,TELNET,RLOGIN和SERIAL。通过提供业界先进的性能,Xshell包含了其他SSH客户端无法发现的功能和优势,作为...

Java 开发者线上问题排查常用的 15 个 Linux 命令

作为Java开发者,线上环境的问题排查是日常工作的重要组成部分。熟练掌握Linux命令能大幅提升排查效率,快速定位进程异常、日志错误、性能瓶颈等核心问题。本文结合Java应用特点,整理1...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

别再乱学 Linux 了!这 5 个核心技巧,让你效率飙升 10 倍!

在Linux学习的漫漫长路上,不少人犹如在黑暗中摸索的行者,四处碰壁,学习效果却不尽如人意。你是不是也曾在海量的Linux知识面前迷失方向,感觉自己投入了大量时间,却收效甚微?其实,掌握Li...

Linux终端神器Terminator时隔1年回归,2.1.5新版发布

IT之家5月23日消息,科技媒体linuxiac今天(5月23日)发布博文,报道称Terminator在沉寂一年后,最新发布了2.1.5版本,在分割终端窗格时支持克隆SSH...