Linux 防火墙工具--iptables

本文涉及的产品
公网NAT网关,每月750个小时 15CU
云防火墙,500元 1000GB
简介:

iptables介绍

iptables是基于内核的防火墙,功能非常强大,iptables内置了“三表五链”

    三张表

    1.filter     定义允许或者不允许的

    2.nat       定义地址转换的 

     3.mangle     修改报文原数据

    五个规则链

    1.PREROUTING (路由前)

    2.INPUT (数据包流入口)

    3.FORWARD (转发管卡)

    4.OUTPUT(数据包出口)

    5.POSTROUTING(路由后)

  对于filter来讲只能做在3个链上:INPUT ,FORWARD ,OUTPUT

  对于nat来讲只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING

  对于mangle来讲5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING


iptables写法及参数

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 动作或跳转]

所有链名必须大写,表名必须小写,动作必须大写,条件匹配必须小写

常用参数:

    -A    向规则链中添加一条规则,默认被添加到末尾

     -T    指定要操作的表,默认是filter

    -D    从规则链中删除规则,可以指定序号或者匹配的规则来删除

    -R    进行规则替换

    -I    插入一条规则,默认被插入到首部

    -F    清空所选的链,重启后恢复

    -N    新建用户自定义的规则链

    -X    删除用户自定义的规则链

    -p    用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,

    -s    指定源地址

    -d    指定目的地址

    -i    进入接口(网卡)

    -o    流出接口(网卡)

    -m    多状态

    -j    采取的动作,accept,drop,snat,dnat,masquerade

    --sport  源端口

    --dport  目的端口,端口必须和协议一起来配合使用

触发动作:(-j后面)

    ACCEPT    允许数据包通过

    DROP      丢弃数据包

    REJECT    拒绝数据包通过

    LOG      将数据包信息记录到syslog日志

    DNAT      目标地址转换

    SNAT      源地址转换

    MASQUERADE    地址欺骗

     REDIRECT    重定向


iptables示例

基本操作

    iptables -L      列出iptables规则
    iptables -F      清除iptables内置规则
    iptables -X      清除iptables自定义规则

配置ssh登录规则

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

只允许192.168.0.100的机器进行SSH连接

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

目的地址转换,映射内部地址

iptables -t nat -A PREROUTING -i eth0 -p tcp --dprot 81 -j DNAT --to 192.168.0.2:80

源地址转换,隐藏内部地址

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1

开启转发功能

iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT 只允许已建连接及相关链接对内转发
ptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 允许对外转发

过滤某个MAC

iptables -A FORWARD -m mac --mac -source MAC地址 -j DROP

数据包整流

iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT
iptables -A FORWARD -d 192.168.0.1 -j DROP

一次匹配多个端口

iptables -A INPUT -p tcp -m muliport --dport 21,22,25,80,110 -j ACCEPT

丢弃非法连接

iptables -A INPUT  -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables-A FORWARD -m state --state INVALID -j DROP


实例

1 将192.168.0.1主机发送给本机22端口的所有数据记录到messages日志中

iptables -I INPUT -s 192.168.0.1 -p tcp --dport 22 -j LOG

2 允许任何机器通过eth1访问本机80端口

iptables -I INPUT -i eth1 -p tcp --dport 80 -j ACCEPT

3 公司192.168.0.0/24网段通过128.166.122.1连接外网

echo "net.ipv4.ip_forward = 1" /etc/sysctl.conf

sysctl -p 加载配置

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 128.166.122.1

4 一个公有IP128.166.122.1对外开放,要求内部web服务器192.168.0.1可以被访问

iptables -t nat -I POSTROUTING -d 128.166.122.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1

5 数据包过大,被分切为多个片发送,保证数据接收后可以组合在一起用-f

iptables -A OUTPUT -f -d 192.168.1.2 -j DROP (丢弃发送到192.168.1.2上)

6 限制某个时间段内数据包的个数,超过则拒绝

iptables -I INPUT -m limit --limit 500/sec -j ACCEPT

iptables -P INPUT DROP

7 拒绝转发含有某些关键字的数据连接 --string 拒绝qq的数据包

iptables -I FORWARD -m string --algo bm --string "qq" -j REJECT

8 转发某个IP段的数据包

iptables -A FORWARD -m iprange --src-range 192.168.0.1-192.168.0.10 -p tcp --dport 80 -j ACCEPT












本文转自super李导51CTO博客,原文链接: http://blog.51cto.com/superleedo/1886999,如需转载请自行联系原作者




相关文章
|
2月前
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
370 3
|
6月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
2月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
180 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
2月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
270 16
|
4月前
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
148 1
Linux系统性能调优技巧和相关工具
|
4月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
514 16
|
3月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
|
6月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
375 32
|
8月前
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
598 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具