linux系统中iptables防火墙(4表5链)

admin 2024年5月18日10:26:36评论14 views字数 3020阅读10分4秒阅读模式

1、Linux系统自带的软件防火墙:

    • iptables:Centos 5/6 系统默认防火墙
    • firewalld:Centos 7/8 系统默认防火墙

2、iptables 概述:

    Iptables 是一个用户空间程序,可以用于设置和管理 Linux 操作系统的内核级防火墙。它通过表、链和规则组成,可以灵活地根据不同的需求进行配置。

3、iptables 具有以下特点:

    • Iptables 作为内核级别的防火墙,具有高效、稳定、安全等优点。

    • Iptables 的表、链、规则结构非常灵活,可适应各种不同的网络环境和应用场景。

    • Iptables 相对于其他防火墙工具而言比较容易学习和掌握,并且拓展性非常强。

4、iptables四表五链是什么:

四表:

表名 作用
raw 确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUT、PREROUTING
mangle 修改数据包内容,用来做流量整形,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING
nat 负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、 PREROUTING、 POSTROUTING
filter 负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT、 FORWARD、 OUTPUT

数据包到达防火墙时,规则表之间的优先顺序:raw >mangle > nat > filte

五链:

链名 作用
INPUT 处理入站数据包,匹配目标IP为本机的数据包。
OUTPUT 处理出站数据包,一般不在此链上做配置。
FORWARD 处理转发数据包,匹配流经本机的数据包。
PREROUTING 在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上。
POSTROUTING 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网。
5、iptables 命令:
service iptables start

开启iptables

service iptables stop

关闭iptables

service iptables restart
重启iptables
service iptables status 查看iptables 状态
chkconfig iptables on 添加开机自启动

iptables-save

保存已有配置文件,保存的方式是可以重定向到某个文件中,例如iptables-save > /etc/sysconfig/iptables。

iptables-restore

启动 iptables 服务后会默认读取 /etc/sysconfig/iptables 中的配置文件,用户可以通过此命令将已有规则重新装入 iptables。

iptables -L --line-numbers

列出默认 filter 表中所有规则,并显示它们的行号,这对于添加和删除规则很有帮助。

iptables -A

在指定的链 CHAIN 上创建一条新规则,以限制指定的端口(dport)上使用指定协议(protocol)的数据包流量。TARGET 可以是 ACCEPT、REJECT 或 DROP。例如:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 表示当访问本机的 80 端口时,可以通过。

iptables -D

从指定链 CHAIN 中删除一条现有规则,规则编号由 iptables -L 命令输出的行号指定。

iptables -N

在 iptables 中创建一个新的用户自定义链。例如:iptables -N LOG_DROP 创建新链 LOG_DROP。

iptables -I

插入一条规则到指定链(CHAIN)的特定位置(INDEX)处。此命令的其余部分与先前介绍的相同。

iptables -F

该命令用于清除所有iptables的规则,策略和计数信息。

iptables -P chain target

该命令可以修改一个特定链的默认策略。默认情况下,策略是ACCEPT,可以更改为DROP或REJECT。

6、iptables 规则的语法格式:

    在使用 iptables 时,需要遵循一定的规则语法。iptables 规则主要由以下几个部分构成:
    • 匹配条件:必须符合匹配条件才能被命中。
    • 操作选项:当匹配成功时执行的动作,比如 ACCEPT、DROP 和 REJECT 等等。
    • 目标地址:当匹配成功后,将流量引导到哪个目标地址。
    • 下面是 iptables 规则的语法格式:
iptables [-t table] [-A chain] [-I chain [rulenum]] [-D chain rulenum] [-R chain rulenum] [-j target] [match-expression]
-t --table 表示指定要操作哪个表。iptables 默认使用 filter 表,如果没有明确指定,则会被当作 filter 表来处理。
-A

--append 是添加规则,向指定链中增加一条新规则,默认放在链尾。

-I

--insert 是插入规则,可以将规则插入到链的任意位置。

-D

--delete 是删除规则,可以删除指定链中的规则。

-R

--replace 是替换规则,可以直接替换当前规则。

-j

--jump 是动作选项,表示需要执行的操作,比如 ACCEPT、DROP 或 REJECT 等。

iptables 规则的匹配条件 match-expression 由多个关键字组成,各个关键字的含义如下:

-p指定协议,可以是 all、tcp、udp、icmp 等。
–sport 和--dport 分别指定源端口和目的端口。

-s 和 -d 分别指定源地址和目的地址。

-i 和 -o 分别指定数据包的输入接口和输出接口。

–state 状态匹配条件,可以是 NEW、ESTABLISHED 或 RELATED。

-m 按照数据包的类型进行匹配,如 tcp、udp、icmp 等。

7、iptables 配置实例:
设置默认策略
iptables 共有三个默认策略:DROP、REJECT 和 ACCEPT。
    • DROP 表示直接拒绝,不回应;
    • REJECT 表示直接拒绝,并返回一个 ICMP 错误信息;
    • ACCEPT 表示直接接受数据包。
我们需要设置默认策略为 DROP,这样任何不符合规则的流量都将被丢弃。
iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP
    • -P 选项表示设置默认策略,后面跟着需要设置的链名。

    • INPUT 链指向来自外部的包、传入本地机器的包以及因为非法转发被丢弃的包。

    • FORWARD 链指向转发包。

    • OUTPUT 链指向离开本地机器的包。

7.1、允许http连接:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-A 选项表示添加规则,-p tcp 表示协议为 TCP,--dport 80 表示目的端口为 80。最后的 -j 将匹配的流量引导到 ACCEPT 规则。
7.2、允许ssh连接:
iptables -A INPUT -p tcp -s 允许的ip地址/网段 --dport 22 -j ACCEPT

-A 选项表示添加规则,-p tcp 表示协议为 TCP,-s 指定ip或网段,--dport 22 表示目的端口为 22。最后的 -j 将匹配的流量引导到 ACCEPT 规则。

原文始发于微信公众号(小白摸坑学网安):linux系统中iptables防火墙(4表5链)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月18日10:26:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   linux系统中iptables防火墙(4表5链)https://cn-sec.com/archives/2198318.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息