防火墙iptables

本文介绍了Linux系统的iptables和firewalld防火墙,重点讲解了iptables的工具和内核模块,以及firewalld作为iptables的上层封装。通过实例展示了iptables的规则管理,包括四表五链的概念、规则的添加、删除、修改等操作。同时,提到了自定义链的使用和管理,以及如何在实际操作中灵活运用iptables和firewalld。
摘要由CSDN通过智能技术生成

iptables由两部分组成

1.工具     iptables 面对用户 用户态

2.防火墙模块  netfilter 内核模块 内核态  

linux的防火墙现在有两种

1.iptables

2.firewalld  

这两个关系非常微妙,以前用的都是iptables,红帽7出来之后,红帽搞得新的防火墙用来替代iptables,在iptabels的基础上包了一次,更靠上层了,让操作更简单点,实际底层还是调用的iptables。看起来firewalld用的简单,实际上要记得东西更多。还不如直接用ipatables。这两个通用,用其中任意一个工具写的都规则用另外一个工具都能看,是互通的。在实现一些功能,用firewalld不如iptables方便。

安装iptables管理工具

 yum search iptables     有一个services,把它装上

# yum install iptables-services -y

启动防火墙

# systemctl start iptables

只要开了防火墙,所有被系统处理的数据包都会经过防火墙处理,除非没开防火墙。

查看防火墙规则

#iptables -nL    

-n不做解析,以数字形式显示协议和地址

-L list列出

#iptables -nl --line-numbers  给每一条规则加一个序列号(显示规则号)

可以用防火墙看服务器的流量

#iptables -nL --line-numbers -v     -v 显示详细信息,查看流量

# iptables -S      -S 以另外一种形式查看规则

四表五链

对应防火墙来讲表的查看顺序是从上到下查看

说明
raw     数据包追踪
mangle 数据包标记
nat    地址转换
filter  

数据包过滤

同一个链里的规则是从上到下按顺序访问,只要匹配到一条规则,就停止其他匹配

说明
PREROUTING路由之前
INPUT数据包进入
FORWARD 路过  经过
OUTPUT数据包出去
POSTROUTING 路由之后

 opt就是额外的选项,source原地址  destination目标地址

防火墙语法

#iptables -t 表名 动作 链名 匹配条件 -j 目标动作

清空规则  -F

#iptables -F

追加规则   -A  追加一条规则  

#iptables -t filter -A INPUT -p tcp --dport 80 -j REJECT

 测一下规则生效吗  直接被拒绝

删除规则  -D

#iptables -t filter -D INPUT -p tcp --dport 80 -j REJECT (不介意用这种)

#iptables -t filter -D INPUT 1   删除INPUT列里的第几条规则,这种比较简单,不用知道条件

清空计数 -Z

#iptables -Z

插入规则  -I

#iptables -t filter -I INPUT 1 -p tcp --dport 80 -j REJECT   放到第一条

修改规则(替换规则)   -R

#iptables -t filter -R INPUT 1 -p tcp --dport 80 -j DROP

修改默认规则 

#iptables -P INPUT DROP

  默认规则是ACCEPT,要把修改哪个列里的默认规则,要把它修改成什么规则,这里只能写两个,ACCEPT,DROP没有第三个选项,到了公司里面,如果对安全比较高,会把所有的默认规则全部都改成DROP,所有需要放行包,再单独写规则给它ACCEPT。

自定义链   -N    自定义链大小写自己定义

#iptables -N k    创建自定义链k

自定义链和系统链不一样,每一个系统链都有自己的功能,代表的不同的数据包的位置点。放在自定义链里的东西默认不会生效,就是用来保存规则的。

添加规则到自定义链

#iptables -t filter -R -A k -p tcp --dport 80 -j DROP

 

还是能访问

 这个链里的规则是不生效的,就是用来保存规则的,保存规则有什么用?哪天想用的时候,就直接可以调用链。iptables -A INPUT -j k我的目标直接变成自定义的名字,再去查看,这就是在系统链里调用自定义链,最终的结果就访问不了

 有什么好处?

可以写一堆规则,去完成你想的一个目标,一个功能,但这些规则可能哪一天不想要了,就把它删掉,过了两天又需要规则了,还得重新再写一遍,向这种东西一套规则可以先放在一个自定义链里边,想用直接调用这个链,不想用直接把自己定义的删掉就行了,没必要去删除所有的规则。就是用来保存规则。

使用自定义链   -A

#iptables -A INPUT -j k

改名自定义链  -E  系统链不可以改,自定义链可以改

#iptables -E wing K

删除自定义链   -X

自定义链不能被调用,并且是清空状态

#iptables -X K

 删除失败?设备资源忙,是被用着

iptables -D INPUT 1  把INPUT的第一条规则删掉,再删还忙,是因为没有把它清空,删除k链里的规则,iptables -D K 1

iptables -X K  

这些动作基本就是在 iptables --help 前面

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你是我的导航

谢谢您的打赏,您的鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值