iptables

镇楼图

 

 

 

防火墙种类:

硬件防火墙:整个企业的入口
    三层路由
    深信服
软件防火墙:开源软件,网站内部 封ip  封端口
    iptables:写入内核
    firewalld
云防火墙:
    阿里云安全组
 
 
必须熟悉的名词:
  • 容器:瓶子、管子、存放东西
  • 表(table):存放链的容器
  • 链(chain):存放规则的容器
  • 规则(policy):准许或拒绝规则
 
 
 
Netfilter 表(tables) 链( chains) 规则(policy)
一栋楼 楼里的房子 房子里的柜子 柜子里的衣服,摆放规则
 

四表五链:

 

iptables 是 4表五链

注:大写是链、小写是表

4表:filter表、nat表、raw表、mangle表
 

归类:

INPUT链——进来的数据包应用此规则链中的规则
OUTPUT链——外出的数据包应用此规则链中的规则
FORWARD链——转发数据包时应用此规则链中的规则
PREROUTING链——对数据包作路由选择前应用此链中的规则
POSTROUTING链——对数据包作路由选择后应用此链中的规则
 
 

nat表:

  • 实现nat功能
    • 实现共享上网
    • 端口映射
    • ip映射
负责网络地址转换的,即源与目的ip地址和port的转换
应用:和主机本身无关,一般用于局域网共享上午或者特殊端口转换服务相关
工作场景:
1.用于企业路(zebra)由或网关(iptables),共享上网(POSTROUTING)
2.做内部外部ip地址一对一映射(dmz),硬件防火墙映射ip到内部服务器。ftp服务器。
3.web,单个端口的映射,直接映射80端口,这个表定义了三个链,net功能相当于网络的acl控制,和网络交换机acl类似
 
链:
OUTPUT:
和主机放出去的数据包有关,改变主机发出数据包的目的地址。
 
 
PREROUTING:
数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址,目的端口等
就是收件是,根据规则重写收件人的地址。
例如:
把公网ip xxx.xxx.xxx.xxx映射到局域网的xxx.xxx.xxx.xxx服务器上
如果是web服务器,可以把80转换为局域网的服务器9000端口上
10.0.0.61 8080(目标端口)-----nat-----10.0.0.7 22
 
POSTROUTING:
在数据离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。
写好发件人的地址,要让家人回信时能够有地址可回。
例如:
默认笔记本和虚拟机都是局域网地址,在出外网的时候呗路由器将源地址改成了公网地址。
生产应用:局域网共享上网
 
 
 

filter表:屏蔽或允许端口 

强调和主机自身相关,真正负责本机防火墙功能的过滤流入流出数据包filter表示iptables默认使用的表,这个表定义了三个链,企业工作场景主机防火墙
 
INPUT
负责过滤所有目标地址是本机地址的数据包,通俗来说就是过滤进入主机的数据包
 
 
FORWARD
负责转发流经主机的数据包,起转发的作用,和nat关系很大,后面会详细介绍LVS NAT模式,
net.ipv4.ip_forward=0
 
OUTPUT
处理所有源地址是本机地址的数据包,通俗的来说:就是处理本机发出去的数据包
 
 

实操:

 
查:
-L ,--list 列出当前的规则
            [root@web01]# iptables -L
                    -n,禁止反向解析
                    -v,显示数据包详情
                    -t,指定操作的表(默认的表是:filter)
 
增加:
#追加
    -A.--append 追加一条规则到链中
 
-j  : 指定动作,转发模式
ACCEPT :允许通过
DROP:不允许通过
 
    -s 源地址
    -d 目标地址
    --sport 源端口
    --dport 目标端口
 
注意:链的匹配规则是从上到下的,一旦匹配上了就无法往下匹配了
 
    案例1:不允许访问本机
        iptables -t filter -A INPUT -p ALL -j DROP
    
    案例2:要求172.16.1.0可以访问web01,其他的请求全部拒绝
        iptables -t filter -A INPUT -p ALL -s 172.16.1.0/20 -j ACCEPT
        iptables -t filter -A INPUT -p ALL -j DROP
 
 
    # 插入
        -I, --insert 插入一条规则,插入到顶部
    案例3:要求在案例2的基础上,允许192.168.15.66可以访问?
        iptables -t filter -I INPUT -p ALL -s 192.168.15.66 -j ACCEPT
 
 
    案例4:只允许其他网络ping web01
    
        iptables -t filter -I INPUT -p ICMP -s 192.168.15.7 -j ACCEPT
 
 
 
#删
    -F,--flush 清空
    iptables -F 清空所有的防火墙规则
 
-D,--delete 删除链中的规则
-R,--replace 修改
-S,--list-rules 列出所有的规则
-Z,--zore清空计数器(包数量,包大小)
-N,--new-chain 创建一个自定义链
-X,--delete-chain 删除一个自定义链
-P,--policy 指定链的默认策略
 
-i 进来的网卡
-o 出去的网卡
-m 指定的模块
-j 转发模式

 

posted @ 2021-11-03 20:09  念长卿  阅读(125)  评论(0)    收藏  举报