首页 > 系统相关 >iptables

iptables

时间:2024-02-13 15:11:08浏览次数:37  
标签:iptables ipset 数据包 -- 钩子 本机

iptables 是一个基于内核空间 netfilter 的用户空间工具,用于配置 Linux 内核的防火墙规则。

钩子函数

img

PREROUTING: 在进入 IP 路由之前触发,就意味着只要接收到的数据包,无论是否真的发往本机,也都会触发这个钩子。它一般是用于目标网络地址转换(Destination NAT,DNAT)。

INPUT: 报文经过 IP 路由后,如果确定是发往本机的,将会触发这个钩子,它一般用于加工发往本地进程的数据包。

FORWARD: 报文经过 IP 路由后,如果确定不是发往本机的,将会触发这个钩子,它一般用于处理转发到其他机器的数据包。

OUTPUT: 从本机程序发出的数据包,在经过 IP 路由前,将会触发这个钩子,它一般用于加工本地进程的输出数据包。

POSTROUTIN: 从本机网卡出去的数据包,无论是本机的程序所发出的,还是由本机转发给其他机器的,都会触发这个钩子,它一般是用于源网络地址转换(Source NAT,SNAT)

规则表

raw 表: 用于去除数据包上的连接追踪机制(Connection Tracking)。

mangle 表: 用于修改数据包的报文头信息,比如服务类型(Type Of Service,ToS)、生存周期(Time to Live,TTL)。

nat 表: 用于修改数据包的源或者目的地址等信息,典型的应用是网络地址转换(Network Address Translation)。

filter 表: 用于对数据包进行过滤,控制到达某条链上的数据包是继续放行、直接丢弃或拒绝(ACCEPT、DROP、REJECT),典型的应用是防火墙。

security 表: 用于在数据包上应用SELinux,这张表并不常用。

img

命令格式

iptables -t 表 命令 规则链 规则

iptables命令 -L 代表查看 -A 代表插入到尾部, -D 删除规则 -F 清空规则

  • DROP:直接将数据包丢弃。
  • REJECT:给客户端返回 Connection Refused 或 Destination Unreachable 报文。
  • RETURN:跳出当前链,该链里后续的规则不再执行。
  • ACCEPT:同意数据包通过,继续执行后续的规则。
  • JUMP:跳转到其他用户自定义的链继续执行。
  • REDIRECT:在本机做端口映射。
  • MASQUERADE:地址伪装,自动用修改源或目标的 IP 地址来做 NAT。
# snat
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
# dnat
iptables -t nat -A PREROUTING -p tcp -d 80 -j DNAT --to-destination 容器ip:port
#  过滤
iptables -t filter -A INPUT -p tcp -s 192.168.10.0/24 -j DROP
# 查表
iptables --table filter --list --line-numbers
# 删除规则
iptables -t filter -D INPUT 1

ipset

ipset 把众多ip地址段单独汇集为一个集合,生成唯一的hash值

#!/bin/bash
ipset create asan hash:net -exist
# ipset list asan
ipset flush asan

[-f "in-aggregated.zone"] && rm in-aggregated.zone
wget https://www.ipdeny.com/ipblocks/data/aggregated/in-aggregated.zone

if [ $? -eq 0 ]
then
    echo "************download*****************"
    for address in `cat in-aggregated.zone`
    do
        ipset add asan $address
    done
else
    echo "*******Failed to download************"
fi

iptables --table filter --append INPUT --match set --match-set asan src --jump DROP


ipset save > /etc/rules.ipset
iptables-save > /etc/rules.iptables
ipset restore < /etc/rules.ipset  -exist
iptables-restore < /etc/rules.iptables -n

标签:iptables,ipset,数据包,--,钩子,本机
From: https://www.cnblogs.com/cheng-sir/p/18014601

相关文章

  • 使用iptables拒绝某IP连接本机
    背景在开发工作中,经常遇到需要验证网络策略相关问题。例如是否具有自动重连机制,需要将网络策略先断开,然后放开看服务是否正常运行。在linux系统中可以使用iptables来实现该效果。使用路由规则查看当前系统路由规则iptables-L添加禁止ip访问策略,例如访问ip:192.168.1.......
  • 在K8S中,kube-proxy iptables 原理是什么?
    在Kubernetes(K8s)中,kube-proxy组件使用iptables模式时,其主要原理是利用Linux内核的iptables工具动态管理节点上的网络规则,以实现服务(Service)到后端Pod之间的透明网络代理和负载均衡。以下是kube-proxy在iptables模式下工作的大致步骤:监听APIServer:kube-proxy在每个集群节点上......
  • 在K8S中,kube-proxy ipvs 和 iptables 有何异同?
    在Kubernetes(K8s)中,kube-proxy作为集群网络代理组件,可以配置为使用iptables或IPVS模式来实现服务的负载均衡和网络代理功能。下面是kube-proxy在iptables模式和IPVS模式下的异同点:相同点:目标:无论是iptables还是IPVS模式,kube-proxy的目标都是将流入集群的服务请求透明地转发到后......
  • 从iptables过渡到nftables
    精彩文章免费看立即下载从iptables迁移到nftablescloudFans简书作者2022-06-1610:12IP属地:吉林基于iptables-save为文件,然后导入即可%iptables-save>iptables.txt%iptables-nft-restore<iptables.txt%iptables-nft-save#Generated......
  • iptables 简单命令
    禁止与指定IP的主机进行连接iptables-IINPUT-s10.0.28.15-jDROP解除与指定IP的主机进行连接iptables-DINPUT-s10.0.28.15-jDROP禁止与指定IP段地址段的主机进行连接iptables-IINPUT-s10.0.28.15/24-jDROP禁止与指定IP和端口的主机进行连......
  • CentOS7中禁用firewall,安装iptables
    ​ CentOS7中,firewalld是默认的防火墙管理工具,但若更熟悉或者更喜欢使用iptables,可以按照以下步骤禁用firewalld并安装iptables。 参考文档:CentOS7中禁用firewall,安装iptables-CJavaPy1、禁用firewall需要停止firewalld服务,并将其设置为在启动时不自动启动。1)检......
  • Linux-监控IP频繁登录服务器脚本------------------iptables脚本
    该脚本的作用是监控IP登录失败次数,如果某个IP的登录失败次数超过设定的最大次数,则阻止该IP的进一步登录尝试。通过iptables防火墙阻止连接,当一个IP尝试登录次数超过5次时,iptables会阻止来自该IP的所有连接。#!/bin/bashfunction secrity(){# 设置要监控的登录失败次数,超过......
  • linux下iptables学习
    iptables的结构iptables由上而下,由tables、chains、rules组成四表iptables有filter、nat、mangle、raw四种内置表Filter表filter是iptables的默认表,有一下三种内建链:INPUT链-处理来自外部的数据OUTPUT链-处理向外发送的数据FORWARD链-将数据转发到本机的其他网......
  • iptables
    目录简介使用简介iptables是Linux系统中的防火墙程序,用于监控服务器的网络流量并根据规则进行过滤。它通过表和链的方式来管理规则,决定数据包的处理方式。iptables有四个默认表:Filter、NetworkAddressTranslation(NAT)、Mangle和Raw。它还有一些特殊值,如ACCEPT(允许数据包通......
  • DockerCompose中重启某个服务时提示: (iptables failed: iptables --wait -t nat -A D
    场景DockerCompose修改某个服务的配置(添加或编辑端口号映射)后如何重启单个服务使其生效:DockerCompose修改某个服务的配置(添加或编辑端口号映射)后如何重启单个服务使其生效_docker-compose修改端口映射基于docker-compose的方式,如果只是要单纯的重启某个服务,则可以通过docker-c......