linux 防火墙管理工具-- iptables基础知识

1、iptables与netfilter

1: iptables是操作防火墙的一个工具,netfilter是防火墙的"安全框架",这个“安全框架”是真正的防火墙。
2:netfilter位于内核空间。
iptables位于用户空间
3内核空间:也叫做内核态,操作系统占据的内存区域
用户空间:也叫做用户态,用户进程所在的内存区域
4:为什么要将两者隔离开?
将用户空间与内核空间隔离开,可减少系统崩溃的可能,提高系统的稳定性。

2、iptables有什么作用呢?

iptables组成Linux平台下的包过滤防火墙,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

3、四表五链

防火墙的作用就在于对经过的报文匹配"规则",然后执行对应的"动作"。当报文经过这些关卡时,必须匹配这个关卡上的规则,这个关卡上可能有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了"链"。每个经过这个"关卡"的报文,都要将这条"链"上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。

五链以及链上匹配的规则如图所示:

在这里插入图片描述

把具有相同功能的规则的集合叫做“表”,不同的规则放置于不同的表中工作,在iptables中定义了四种表,每种表对应不同的功能。

filter表过滤功能
nat表网络地址转化功能
mangle表拆解报文,做出修改,并重新封装
raw表关闭nat表上启用的链接追踪机制,不再让iptables对数据包进行跟踪,提高性能

表与链的关系

PREROUTINGraw表,mangle表,nat表
INPUTmangle表,filter表,(centos7中还有nat表,centos6中没有)
FORWARDmangle表,filter表
OUTPUTraw表,mangle表,nat表,filter表
POSTROUTINGmangle表,nat表
  • 四张表处于同一条链时,执行优先级
    raw–>mangle–>nat–>filter
  • 下图介绍了在整个数据传输过程中,防火墙的表和链的功能体现。
    在这里插入图片描述

4、iptables基本用法

iptables规则

根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理。
(匹配条件和处理动作共同组成了规则)

匹配条件

基本匹配条件扩展匹配条件
源地址源端口
目标地址目标端口

处理动作

动作含义
ACCEPT接收数据包,允许数据包通过
DROP丢弃数据包,不给任何回应信息
REJECT拒绝数据通过,必要时发出拒绝信息
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

常见选项

-A将一个规则添加到链末尾
-D删除匹配的规则
-F删除指定链或所有链的规则
-R替换匹配的规则
-P修改链的默认规则,如iptables -P INPUT DROP,(将INPUT链设置为DROP)
-v列出详细信息
-I在指定链的指定编号位置插入一个规则则(例:iptables -I INPUT 1 --dport 80 -j ACCEPT(将规则插入到filter表INPUT链中的第一位上)
-L列出指定链中的所有规则

常用规则

-p tcp/udp/icmp/all匹配协议,all会匹配所有协议
-s addr匹配源地址
-d addr匹配目标地址
-o interface匹配出口网卡,只适用FORWARD、POSTROUTING、OUTPUT(例:iptables -AFORWARD -o eth0)
-i interface匹配入口网卡,只使用PREROUTING、INPUT、FORWARD。
- -sport匹配源端口
- -dport匹配目标端口

5、iptables实例

服务器A : 192.168.119.5 , [root@li ~]
服务器B: 192.168.119.132 , [root@liyu ~]

增加规则

  • 拒绝所有来自192.168.119.132的报文
[root@li ~]# iptables -t filter -I INPUT -s 192.168.119.132 -j DROP
[root@li ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 384 bytes)
 pkts bytes target     prot opt in     out     source               destination
    8   672 DROP       all  --  *      *       192.168.119.132      0.0.0.0/0  




[root@liyu ~]# ping 192.168.119.5
PING 192.168.119.5 (192.168.119.5) 56(84) bytes of data.
^C
               此时表示已无法ping通
  • 允许所有来自192.168.119.132的报文
[root@li ~]# iptables -t filter -I INPUT -s 192.168.119.132 -j ACCEPT
[root@li ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 384 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       192.168.119.132      0.0.0.0/0
   13  1092 DROP       all  --  *      *       192.168.119.132      0.0.0.0/0





[root@liyu ~]# ping 192.168.119.5
PING 192.168.119.5 (192.168.119.5) 56(84) bytes of data.
64 bytes from 192.168.119.5: icmp_seq=1 ttl=64 time=0.516 ms
64 bytes from 192.168.119.5: icmp_seq=2 ttl=64 time=1.51 ms
^C
                此时表示可以ping通

删除规则:-D

方法一:iptables -t filter -D INPUT 1
方法二:iptables -D INPUT -s 192.168.119.132 -j ACCEPT

[root@li ~]# iptables -t filter -D INPUT 1     
[root@li ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 384 bytes)
 pkts bytes target     prot opt in     out     source               destination
   13  1092 DROP       all  --  *      *       192.168.119.132      0.0.0.0/0

                 方法一:删除第一条



[root@li ~]# iptables  -D INPUT -s 192.168.119.132 -j DROP
[root@li ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 384 bytes)
 pkts bytes target     prot opt in     out     source               destination
                方法二:指定一个删除

修改规则:-R


[root@li ~]# iptables -t filter -I INPUT -s 192.168.119.132 -j ACCEPT
[root@li ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 384 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       192.168.119.132      0.0.0.0/0

             可以查看原来的规则为ACCEPT

[root@li ~]# iptables -t filter -R INPUT 1 -s 192.168.119.132 -j DROP
[root@li ~]# iptables -nvL
Chain INPUT (policy ACCEPT 8 packets, 512 bytes)
 pkts bytes target     prot opt in     out     source               destination                                           
    0     0 DROP       all  --  *      *       192.168.119.132      0.0.0.0/0                                             
               修改之后的规则为DROP

修改默认规则:-P

# iptables -t filter -P INPUT DROP

保存规则

Centos 6中: service iptables save

[root@li ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]     保存的文件存在此处
[root@li ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Thu Nov 26 03:04:25 2020
*filter
:INPUT ACCEPT [59:3768]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [33:3144]
-A INPUT -s 192.168.119.132/32 -j DROP   已经保存的规则
COMMIT

或者也可使用 iptables-save >/etc/sysconfig/iptables

使用iptables-save并不能保存规则,但可以将已经写好的规则输出到屏幕,用重定向输出到指定文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值