iptables简单介绍

1. iptables介绍

防火墙分类:

从逻辑上分类:

    主机防火墙:仅针对单个主机进行防护。

    网络防火墙:处于网络入口或边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网

从物理上分类:

    硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现。性能高且成本高

    软件防火墙:应用软件逻辑运行与通用硬件平台之上的防火墙,性能低,成本低。

    iptables不是真正意义上的防火墙,是一个内核防火墙netfilter 的管理工具,是将用户的安全设定执行到相应的“安全框架”中,这个安全框架才是真正的防火墙。叫做netfilter---位于内核空间。

    netfilter / iptables(简称iptables)是linux平台下的包过滤防火墙。

    内核空间:也叫做内核态,操作系统占据的内存区域(硬件驱动代码和kernel运行在内核空间)

    用户空间:也叫做用户态,用户进程所在的内存区域

2. iptables 四表五链

四表:

说明
filter负责过滤功能,防火墙:内核模块;iptable_filter
natnetwork address translation,网络地址转换功能;内核模块;iptable_nat
mangle拆解报文,修改并重新封装;iptable_mangle
raw关闭nat表上穷的连接追踪级制;iptable_raw

 

五链:

PREROUTING(路由前)

raw,mangle,nat

INPUTmangle,filter,(centos7中还有nat)
FORWARD(转发)

mangle,filter

OUTPUTraw,mangle,nat,filter
POSTROUTING(路由后)mangle,nat

优先级顺序:raw --> mangle --> nat --> filter      :高-->低

报文的流向:到本机某进程的报文:

PRETOUTING(判断是否为目标主机)-->(是)-->INPUT-->OUTPUT--> POSTROUTING

                                                               -->(否)-->  FORWARD(转发地址)--> POSTOUTING-->访问目标主机

3. iptables 基本用法

[root@host ~]# iptables --help
iptables v1.4.21

Usage: iptables -[ACD] chain rule-specification [options]        #追加(加在最后)
       iptables -I chain [rulenum] rule-specification [options]  #添加(需指定,否则最前)
       iptables -R chain rulenum rule-specification [options]    #修改
       iptables -D chain rulenum [options]                       #删除
       iptables -[LS] [chain [rulenum]] [options]                #查看
       iptables -[FZ] [chain] [options]                          #清理,删除
       iptables -[NX] chain                                      #创建|删除 用户自定义链
       iptables -E old-chain-name new-chain-name                 #更改 用户自定义链
       iptables -P chain target [options]                        #为指定链设置默认规则

iptables -t 表 -I(选项) 链 [n] -j 动作[RDPL] -p 协议     --dport 目的端口 -s 源地址 |  (--sport 源端口 -d 目的地址)

匹配条件:

基本匹配条件

扩展匹配条件

源地址 Souece_IP源端口 Source Port
目标地址 Destination IP目标端口 Destination Port

处理动作:

动作含义
ACCEPT允许数据包通过
DROP直接丢弃数据包,不会给任何回应
REJECT拒绝数据包通过,必要时会给数据发送端一个响应信息
SNAT

源地址转换,解决内网用户用同一个公网地址上网的问题

MASQUERADE是SNAT的一种特殊形式,适用于形态的,临时会便的IP上
DNAT目标地址转换
REDIRECT在本机做端口映射
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一个规则,对数据包不做其他任何操作

常用命令:

-A :在指定链尾部添加规则     #追加

-D :删除匹配到的规则

-R :替换匹配到的规则            #修改

- I :在指定位置插入规则         #需在链后指定位置,若不指定位置则会添加在第一条上

-L/S :列出指定链或所有链的规则

-F :删除指定链或所有链的规则

-N :创建用户自定义链       # iptables -N allowed

-E :更改自定义链的名称    # iptables -E allowed allow

-X :删除指定的用户自定义链

-P :为指定链设置默认规则策略,对自定义链不起作用

-Z :将指定链或所有链的计数器清零

-n :ip地址和端口号以数字的形式显示

常用规则匹配器:

-p tcp/udp/icmp/all    :匹配协议,all则会匹配所有

-s addr[/mask] :匹配源地址

-d addr[/mask] :匹配目标地址

-sport port1[:port2] :匹配源端口

-dport port1[:port2] :匹配目标端口

-o interface :匹配出口网卡,只适用于FORWARD, POSTROUTING, OUTPUT

-i  interface :匹配入口网卡,只适用于PREROUTING, INPUT, FORWARD

--icmp -type :匹配icmp类型 

--tcp -flags mask comp :匹配TCP标记,mask表示检查范围,comp标识匹配mask中的那些标记

                                      如:iptables -A FORWARD -p tcp --tcp-flags ALL SYN , ACK -j ACCEPT  匹配SYN和ACK标记的数据包

实际操作:

首先先将firewalld关闭
[root@host ~]# systemctl stop firewalld       
[root@host ~]# yum install iptables -y
[root@host ~]# iptables -F
[root@host ~]# iptables -nL      
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        #此时显示已经没有规则

1. 增加规则,拒绝所有来自192.168.0.1的所有报文
[root@host ~]# iptables -t filter -I INPUT -p tcp -s 192.168.0.1 -j DROP
[root@host ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  192.168.0.1          0.0.0.0/0     

2. 增加规则,允许所有来自192.168.0.2的所有报文
[root@host ~]# iptables -t filter -I INPUT -p tcp -s 192.168.0.2 -j ACCEPT
[root@host ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.0.2          0.0.0.0/0
DROP       tcp  --  192.168.0.1          0.0.0.0/0

3. 删除规则:允许所有192.168.0.2
[root@host ~]# iptables -t filter -D INPUT 1
[root@host ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  192.168.0.1          0.0.0.0/0

4. 删除规则:拒绝所有的192.168.0.1的报文
[root@host ~]# iptables -D INPUT -p tcp -s 192.168.0.1 -j DROP   #-D前加-t filter 会报错
[root@host ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

5. 增加规则:将来自于192.168.42.11的80所有请求drop
[root@host ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  192.168.42.11        0.0.0.0/0            tcp dpt:80

6. 修改规则:将192.168.42.11的80所有请求ACCEPT
[root@host ~]# iptables -t filter -R INPUT 1 -p tcp --dport 80 -s 192.168.42.11 -j ACCEPT
[root@host ~]# iptables -nL INPUT        #上述命令中-R INPUT 后面需要指定修改的规则序号
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.42.11        0.0.0.0/0            tcp dpt:80

规则保存:

安装服务
[root@host ~]# yum install iptables-services -y
两种办法保存用户规则(临时保存):
1. [root@host ~]# service iptables save
   iptables: Saving firewall rules to /etc/sysconfig/iptables:[  确定  ]
2. [root@host ~]# iptables-save > /root/iptables  #规则(导出)保存到/root/iptables文件中
   [root@host ~]# iptables-restore < iptables     #规则导入iptables模板中
永久保存:
[root@host ~]# cat /etc/sysconfig/iptables    #写入此文件中,下面列出的是系统默认的
# Generated by iptables-save v1.4.21 on Sat Apr 25 21:36:32 2020
*filter
:INPUT ACCEPT [203:12086]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [103:8128]
-A INPUT -s 192.168.42.11/32 -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Sat Apr 25 21:36:32 2020

                                                                                                                                                                             返回目录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值