iptables四表五链

2024-09-03 11:12
文章标签 iptables 四表五链

本文主要是介绍iptables四表五链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

netfilter/iptables

netfilterLinux内核中的一个框架,工作在网络层,用于处理ip数据包,iptables 则是一个命令行工具,通过与netfilter框架交互,实现对数据包的过滤和转发等操作

常见的UFW防火墙、firewalld防火墙都是基于iptables的,它们提供了更简单的管理iptablesrules的命令

Tables 表

filter

过滤本机数据包

管理INPUTFORWARDOUTPUT三个链

nat

网络地址转换

管理PREROUTINGPOSTROUTINGOUTPUT三个链

mangle

修改数据包的TOS(``Type Of Service,服务类型)、TTLTime To Live,生存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service`,服务质量)调整以及策略路由等

管理PREROUTINGPOSTROUTINGINPUTOUTPUTFORWARD五个链

raw

决定数据包是否被状态跟踪机制处理

管理OUTPUTPREROUTING两个链

Chain 链

  • PREROUTING:预路由,所有数据包进入路由前由此链负责
  • INPUT:进站,数据包目标是本机由此链负责
  • OUTPUT:出站,数据包从本机发送由此链负责
  • FORWORD:转发,数据包的目标地址是其它外部地址由此链负责
  • POSTROUTING:后路由,所有数据包离开本机时由此链负责

在这里插入图片描述

Rules 规则

  • ACCEPT:允许数据包通过
  • DROP:直接丢弃数据包
  • REJECT:拒绝数据包通过,必要时给数据发送端一个响应信息
  • SNAT:源地址转换
  • DNAT:目标地址转换
  • REDIRECT:重定向

命令

命令解释
iptables --table filter --listoriptables -t filter -Loriptables -L查看当前规则,不指定表默认查看filter
iptables -L --line-number查看当前规则并显示行号
iptables -A <chain> <options>添加规则
iptables -I <chain> <rule_number> <options>插入规则
iptables -D <chain> <rule_number>删除规则
iptables -F清除规则
iptables-save > /etc/iptables/rules.v4保存规则
iptables-restore < /etc/iptables/rules.v4从文件中加载规则
echo 1 > /proc/sys/net/ipv4/ip_forward启动转发

加载iptables模块

modprobe iptable_filter 
modprobe iptable_nat 
modprobe iptable_mangle 
modprobe iptable_raw ip_tables

设置每次开机自动加载vim /etc/modules

cat > /etc/modules-load.d/iptables.conf << EOF 
iptable_filter
iptable_nat
iptable_mangle
iptable_raw
ip_tables
EOF

验证

lsmod | grep iptable_filter
lsmod | grep iptable_nat
lsmod | grep iptable_mangle
lsmod | grep ip_tables

指定源ip192.168.1.4到本机的所有协议的数据包都拒绝

iptables --table filter --append INPUT --source 192.168.1.4 --jump REJECT

查看当前规则

iptables -L

指定源ip192.168.1.4到本机的所有协议的数据包都直接丢弃

iptables --table filter --append INPUT --source 192.168.1.4 --jump DROP

查看当前规则并显示行号

iptables -L --line-number

删除INPUT链的第一个规则

iptables --table filter --delete INPUT 1
or
iptables -t filter -D INPUT 1

iptables开放端口

开放 SSH 端口(22)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

开放 HTTP 端口(80)

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

开放 HTTPS 端口(443)

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

开放 MySQL 端口(3306)

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

端口转发/映射

将所有公网ip84.100.100.111的数据包都映射到私网ip172.27.225.55

iptables -t nat -A PREROUTING -d 84.100.100.111 -j DNAT --to-destination 172.27.225.55

将所有公网ip84.100.100.111:6443的数据包都映射到私网ip172.27.225.55:6443

iptables -t nat -A PREROUTING -p tcp -d 84.100.100.111 --dport 6443 -j DNAT --to 172.27.225.55:6443

查看规则

iptables -t nat -L

拒绝某个国家的ip

在https://www.ipdeny.com/ipblocks/右键复制链接,然后wget下载文件

使用ipsetapt install ipset

创建一个拒绝阿富汗ip的网络号集合

ipset create afuhan hash:net

查看集合

ipset list afuhan

保存ipsetiptables规则

ipset save > /etc/rules.ipset
iptables-save > /etc/iptables/rules.v4

加载ipsetiptables规则

ipset restore < /etc/rules.ipset
iptables-restore < /etc/iptables/rules.v4

清除规则(flush:清除所有规则,delete:删除所有自定义链,zero:将所有链的计数和流量统计清零)

iptables -F & iptables -X & iptables -Z

这篇关于iptables四表五链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132803

相关文章

iptables持久化命令:netfilter-persistent save

在Linux上,使用netfilter-persistent命令可以保存iptables防火墙规则,确保它们在系统重启后仍然有效。以下是如何使用netfilter-persistent来保存iptables规则的步骤: 打开终端:首先,你需要打开Linux系统的终端。保存规则:使用netfilter-persistent save命令可以保存当前的iptables规则。这个命令会调用所有插件,将

Netfilter学习之NAT类型动态配置(六)全锥型NAT用户空间iptables命令行实现

本文主要实现全锥型NAT的用户空间iptables命令行扩展的实现,实现思路见上文,具体可以模仿MASQUERADE的源码进行改写。 1.关键部分实现代码   由于fullcone类型并不需要输入参数,因此parse可以为空,print和save也很简单,只需要help和结构注册两部分保证正确即可。   help如下: static void FULLCONE_help(void){

Linux运维--iptables防火墙命令以及端口号等详解(全)

Linux之iptable防火墙命令以及端口号等详解(全) 在Linux系统中,你可以使用firewalld和iptables来管理和设置防火墙规则。Firewalld是一个动态管理防火墙的工具,而iptables是一个更底层的工具,可以直接配置Linux内核的防火墙规则。 在RHEL 6.9及更早版本中,使用的是iptables作为防火墙管理工具,而在RHEL 7及更新版本中则使用Fire

iptables官方手册整理

1. 简介 2. 首先,什么是包过滤? 3. 快速入门指南 4. 数据包过滤流程 5. 具体如何使用 Iptables 命令实现过滤功能 6. 地址转换(NAT) 7. 排除建议 1. 简介   ———————————————————————————————————————————————— 读者们,大家好:   在这里我们假设你已经有一定的 IP 地址、网络地址、子网掩码、路由、DNS 基

iptables四个表五条链

iptables四个表五条链     其实关于iptables的使用网上的资料和教程也比较多,主要是要理解其中的路由前和路由后每个表和链所处的位置和作用,明白了也就简单了,以下是我转载的觉得写的比较详细的一篇博客,有时间我将写一篇关于这些表和链的实质性的配置例子。 一、netfilter和iptables说明:     1、   netfilter/ip

linux防火墙iptables详细教程

2.1 框架图 -->PREROUTING-->[ROUTE]-->FORWARD-->POSTROUTING-->  mangle     |     mangle     ^ mangle    nat       | & 2.1 框架图  -->PREROUTING-->[ROUTE]-->FORWARD-->POSTROUTING-->   mangle

CentOS 7告iptables防火墙提示Unit iptables.service failed to load

使用CentOS 7时发现使用iptables防火墙时提示错误Unit iptables.service failed to load,意思是防火墙运行启动失败了,那么要如何处理呢。 一直用CentOS 6 习惯了,一下没适应过来。防火墙配置后执行service iptables save 出现”Failed to restart iptables.service: Unit iptables.

centos7.5防火墙(iptables和firewall)的相关操作命令

iptables防火墙 1、基本操作 #查看防火墙状态 # ​service iptables status   # 停止防火墙 # service iptables stop  # 启动防火墙 # service iptables start   # 重启防火墙 # service iptables restart   # 永久关闭防火墙 # chkconfig iptab

iptables笔记汇总

iptables笔记汇总 一、基础概念 iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilternetfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。iptables其实是一个命令行工具,位

Iptables快速上手

Iptables firewall 防火墙Iptables简述一、Iptables的四表五链1.filter表2.nat表3.raw表4. mangle表5.数据包的流通过程 二、快速上手1. 查看规则2. 规则详细3. 添加规则4. 自定义链 三、关于iptables和docker1. 背景2. 解决方案3. Demo firewall 防火墙 从逻辑上讲,可以分为服务器防火