linux防火墙——iptables

iptables是一个用于控制Linux内核网络包过滤的工具,它通过定义规则来判断数据包是否合法并决定其通行与否。文章介绍了iptables的四张表(filter、nat、mangle、raw)和五条链,以及如何在CentOS7中安装、启用和管理iptables,包括关闭firewalld服务以使用iptables,并提供了基本的iptables命令和规则配置示例。
摘要由CSDN通过智能技术生成

简介:

什么是防火墙:
        其实就是一个软件/硬件,在软件/硬件中提前定义一套规则,来判断数据包是否为合法数据包,如果是合法数据包,则允许数据包通过,如果是非法数据包,则禁止通行

防火墙分为两类

  • 网络防火墙:一般都是用硬件防火墙来实现的,工作在网络的边缘,它的作用是用来保护内部的主机
  • 主机防火墙:一般都是用软件防火墙来实现的,保护对象一般是当前安装了防火墙的主机

 

iptables基础理论

iptables是通过定义规则来判断收到的数据包是否合法,从而判断能否通过防火墙

iptables结构

四表:

        filter表

                作用:用于过滤数据包(禁止/允许通行),让合法的包通过,让非法的包禁止通过

                 链:INPUT

                        OUTPUT

                        FORWARD

        nat表

               作用:不能过滤数据包,但可以修改数据包的端口、ip

                链:PREROUTING

                       POSTROUTING

                       OUTPUT

        mangle表

                作用:不能过滤数据包,但可以修改数据包的tos、ttl

                链:INPUT

                       OUTPUT

                        FORWARD

                        POSTROUTING

                        PREROUTING

        raw表

                作用:可以设置对某些数据包不进行处理,这样做的好处是可以提高防火墙的工作效率

                链:OUTPUT

                        POSTROUTING

五链

        INPUT:保存的是,处理进入本机的数据包,所要检查的规则

        OUTPUT:保存的是,从本机向外发送的数据包,所要检查的规则

        FORWARD:保存的是,需要从本机进行转发的数据包,所要检查的规则

        PREROUTING:保存的是,在判断数据包目标之前,所要检查的规则

        POSTROUTING:保存的是,在判断数据包目标之后,所要检查的规则

iptables应用:

这里以centos7系统为例,centos7 的默认防火墙是 firewalld,要想使用 iptables,需要先关闭   firewalld

相关命令:

systemctl  disable  firewalld                #永久关闭firewalld防火墙(下次开机不自启)

systemctl  stop  firewalld                   #关闭firewalld防火墙(下次开机自启动)

systemctl  status  firewalld                 #查看firewalld防火墙状态

        出现 disabled 表示下次开机时,防火墙不会开机自启

        出现 inactive(dead) 表示防火墙以关闭

安装iptables组件

        centos7 中想要使用 iptables,需先安装组件 iptables-services,组件的作用是实现iptables的管理操作,如启动、关闭、重启等操作

        注:安装组件之前需要先配置好yum源

安装的命令:yum  install  iptables-services  -y

安装完成之后启动iptables防火墙

相关命令:       

systemctl  start  iptables              #启动iptables防火墙

systemctl  stop  iptables               #关闭iptables防火墙

systemctl  restart  iptables            #重启iptables防火墙

systemctl  enable  iptables             #永久开启iptables防火墙

systemctl  disable  iptables            #永久关闭iptables防火墙

systemctl  status  iptables             #查看iptables防火墙状态

         enabled表示开机自启动

        active(exited)表示已经开启

基础语法

查看规则:
    iptables  -L  -n  --line  -t  表名

清空规则 
    iptables  -F  -t  表名

添加规则
    iptables  -t  表名  -A  链名  规则内容  -j  执行的操作          (-A是在最后添加规则)
    iptables  -t  表名  -I  数字  链名  规则内容  -j  执行的动作    (-I是在指定位置添加规则)

删除规则
    iptables  -t  表名  -D  链名  规则编号

修改链的默认规则
    iptables  -t  表名  链名  -P  执行的动作

保存规则(默认是在内存中,如不保存,重启后,所有配置还原)
    service  iptables  save

        执行的动作:
 

ACCEPT:表示匹配到规则的数据包可以通行

DROP:表示匹配规则的数据包禁止通行,而且不会通知客户端

REJECT:表示匹配规则的数据包禁止通行,而且会通知客户端

DNAT:表示用nat来修改数据包中的目的地址信息

SNAT:表示用nat来修改数据包中的源地址信息

LOG:表示记录匹配到规则的数据包

         操作方法:

-A  链名:在链中,追加新规则

-I   链名:在链中指定位置插入新的规则

-D  链名  编号:在链中,删除指定编号的规则

-R  链名  编号:在链中,修改指定编号的规则

-P  链名  编号:修改默认规则

-j:执行的动作

-t  表名:指定查看那个表中的规则(默认是filter)

-L  :显示所有规则

-line:显示行号

-n:显示规则内容时,以数字方式显示(不用数字,显示速度慢)

-v:显示这个规则的详细信息

-vv:显示更详细信息

-vvv:显示更更详细信息

-F:清楚规则

基于地址写规则

-s:匹配数据包中的源ip

-d:匹配数据包中目的ip

-i:匹配数据包从那个网卡进入

-o:匹配数据包从那个网卡发出

        案例:

禁止让x.x.x.x访问主机
    ipconfig  -t  filter  -A  INPUT  -s  x.x.x.x  -j  DROP

允许x.x.x.x访问主机
    ipconfig  -t  filter  -A  INPUT  -s  x.x.x.x  -j  ACCEPT

禁止主机访问x.x.x.x
    ipconfig  -t  filter  -A  INPUT  -d  x.x.x.x  -j  DROP

允许主机访问x.x.x.x
    ipconfig  -t  filter  -A  INPUT  -d  x.x.x.x  -j  ACCEPT

禁止所有通过【网卡名】来访问的数据包
    ipconfig  -t  filter  -A  INPUT  -i  网卡名  -j  DROP

禁止所有通过【网卡名】来访问的数据包
    ipconfig  -t  filter  -A  INPUT  -i  网卡名  -j  ACCEPT

基于端口写规则

        其实就是匹配协议和端口、数据包的状态

        匹配协议和端口:

                匹配TCP协议:-p  tcp  --sport  源端口  --dport  目的端口

                匹配UDP协议:-p  udp  --sport  源端口  --dport  目的端口

禁止x.x.x.x访问【端口】
    iptables -t filter -A INPUT -s x.x.x.x -p tcp --dport 【端口】 -j DROP

允许x.x.x.x访问【端口】
    iptables -t filter -A INPUT -s x.x.x.x -p tcp --dport 【端口】 -j ACCEPT

禁止ping主机
    iptables -t filter -A INPUT -p icmp -j DROP

默认规则

        当所有的规则都无效时,就会检查默认规则

规则顺序

        进入到主机中的数据包,都会从上而下,依次来匹配规则,一旦匹配到某一条规则,则不在向下检查

                

要配置Linux防火墙iptables,您可以按照以下步骤进行操作: 1. 首先,关闭firewalld防火墙并取消其开机自启动: ``` systemctl stop firewalld.service systemctl disable firewalld.service ``` 2. 安装iptablesiptables-services: ``` yum -y install iptables iptables-services ``` 3. 启动iptables服务: ``` systemctl start iptables.service ``` 这样,您就成功配置了Linux防火墙iptables123 #### 引用[.reference_title] - *1* [Linux系统防火墙iptables](https://blog.csdn.net/weixin_58544496/article/details/126845679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [Linux iptables防火墙详解(二)——iptables基本配置](https://blog.csdn.net/weixin_40228200/article/details/121712224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [Linuxiptables防火墙配置](https://blog.csdn.net/asdfg___xiaobai/article/details/127651533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值