Iptables小总结

Iptables小总结

大家好,又见面了,我是全栈君。

信息包过滤过程:

wKiom1M3dgzBMlSoAADC2j3VMHw577.jpg

wKioL1mU5Ouyz6LzAAB1SlLylrY598.png


1、iptables四表五链

四个表:

filter:用于过滤

nat:用于nat功能(端口映射,地址映射等)

mangle:用于对特定数据包的修改

raw:一般不让iptables做数据包的链接跟踪处理

五个链:

INPUT:匹配目的地址为本机的

OUTPUT:向外转发的

FORWARD:需要经过本机的数据包

PREROUTING:路由前,用于修改目的地址(DNAT)

POSTROUTING:路由后,用于修改源地址(SNAT)

2、常用操作命令

wKioL1lp42KhaevBAAA0SlPEJVg531.png

命令格式:iptables  [-t表]  -命令  匹配  操作

-A(append):追加一条规则

-I(insert):插入一条规则

-D(delete):删除一条规则,例如:iptables –D INPUT 3,删除第三条规则

-F(flush):清空规则

-L(list):列出规则,使用-vnL来显示比较好

-P(policy):设置某链默认规则

3、匹配条件

-i:进入接口

-o:出去接口

-s:来源地址,例如:-s 192.168.1.0/24,可单IP

-d:目的地址

-p:协议类型(tcp、udp、icmp)

–sport:来源端口,例如:–sport 1000:,匹配源端口1000以上的,也可以1000:3000指定范围

–dport:目的端口

4、动作

ACCEPT:允许数据包通过

DROP:阻止数据包通过

REJECT:拒绝数据包通过,并返回报错信息

SNAT:应用nat表的POSTROUTING链,进行源地址转换,可单个、一组IP

DNAT:应用nat表的PREROUTING链,进行目的地址转换,可单个、一组IP

MASQUERADE:动态源地址转换,动态IP时使用

例如ADSL拨号上网:iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –o pppo –j MASQUERADE

5、附加模块

state:包状态匹配,例如:iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

NEW 第一个数据包状态,RELATED 该数据包已经或将启动新的连接,当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就是RELATED状态,像FTP连接。ESTABLISHED 已建立连接的状态,INVALID 该数据包与已知的连接都不相关联)

mac:来源MAC地址匹配

limit:包速率匹配

multiport:多端口匹配,端口以逗号分隔

6、防止小量攻击

预防CC、DOS攻击,限制每个IP的并发连接数:

#允许已经建立连接的访问 

iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT   

#–connlimit-above 30  限制并发连接数

iptables -I INPUT -p tcp –syn –dport 80 -m connlimit –connlimit-above 30 -j REJECT  

预防DDOS攻击,限制每个IP每秒并发连接数:

iptables -A INPUT -p tcp –syn -m limit –limit 1/s –limit-burst 3 -j ACCEPT

iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT  

7、配置NAT映射

先开启路由转发:

echo “1” > /proc/sys/net/ipv4/ip_forward  #临时生效

内网访问外网(SNAT):

iptables –t nat -A POSTROUTING -s [内网IP或网段] -j SNAT –to [公网IP]

#内网服务器要指向防火墙内网IP为网关

公网访问内网(DNAT)(公网端口映射内网端口):

iptables –t nat -A PREROUTING -d [对外IP] -p tcp –dport [对外端口] -j DNAT –to [内网IP:内网端口]

#内网服务器要配置防火墙内网IP为网关,否则数据包回不来。另外,这里不用配置SNAT,因为系统服务会根据数据包来源再返回去。

将本机80端口转发到本地8080端口:

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8080

8、用户基本配置示例

iptables -F

iptables -t nat -F

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp -m multiport –dports 22,80,8080 -j ACCEPT

iptables -A INPUT -p udp -m multiport –dports 53 -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -p icmp -j DROP

iptables -A INPUT -i lo -j ACCEPT   #允许来自于lo接口的数据包,如果没有此规则,你将不能通过127.0.0.1访问本地服务

iptables -P INPUT DROP



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1372481,如需转载请自行联系原作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107917.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月12日 上午7:35
下一篇 2022年3月12日 上午7:35


相关推荐

  • STM32—串口通讯详解

    STM32—串口通讯详解串口通讯目录物理层协议层 USART 简介代码讲解串口通讯 SerialCommun 是一种设备间非常常用的串行通讯方式 因为它简单便捷 因此大部分电子设备都支持该通讯方式 其通讯协议可分层为协议层和物理层 物理层规定通信协议中具有机械 电子功能的特性 从而确保原始数据在物理媒体的传播 协议层主要规定通讯逻辑 统一双方的数据打包 解包标准 通俗的讲物理层规定我们用嘴巴还是肢体交流 协

    2026年3月19日
    2
  • 戴尔g3数字键盘失灵的情况解决

    戴尔g3数字键盘失灵的情况解决

    2021年10月2日
    79
  • SDIO接口WiFi驱动浅析[通俗易懂]

    SDIO接口WiFi驱动浅析[通俗易懂]SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。   对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时候还是先以sdio的卡的

    2022年10月4日
    4
  • Substance Painter 画高度贴图

    Substance Painter 画高度贴图SP可以画出来高度图,而省去了建模的流程。很方便!然后用默认的画笔和Alpha可以得到很细腻的效果,最后导出法线贴图就可以了

    2022年5月26日
    95
  • python装饰器(详解)

    python装饰器(详解)大家好 我是 J 哥 今天我们介绍一下 python 中的装饰器首先我们要了解什么是装饰器 1 什么是装饰器器指的是工具 可以定义成成函数装饰指的是为其他事物添加额外的东西点缀合到一起的解释 装饰器指的定义一个函数 该函数是用来为其他函数添加额外的功能就是拓展原来函数功能的一种函数 2 为何要用装饰器开放封闭原则开放 指的是对拓展功能是开放的封闭 指的是对修改源代码是封闭的装饰器就是在不修改被装饰器对象源代码以及调用方式的前提下为被装饰对象添加新功能 3 如何用 需求

    2026年3月19日
    3
  • mysql 列式存储_[转]几张图看懂列式存储

    mysql 列式存储_[转]几张图看懂列式存储最近看到一篇很好资料 里面三言两语配上几个图就把列式存储 Column basedStorage 讲明白了 牛啊 最喜欢的就是这种浅显易懂就把背景知识讲得明明白白 而不是长篇大论的讲概念 1 为什么要按列存储列式存储 Columnarorco based 是相对于传统关系型数据库的行式存储 Row basedstorage 来说的 简单来说两者的区别就是如何组织表 翻译不好 直接抄原

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号