末学者笔记--Firewalld 防火墙,iptables指令

 

Firewalld防火墙

一.firewalld简述                                                                          

                firewalld:防火墙        

其实就是一个隔离工具:工作于主机或者网络的边缘

对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测
对于能够被规则所匹配的报文做出相应处理的组件(这个组件可以是硬件,也可以是软件):

主机防火墙

网络防火墙

 

1.四表五链

四个功能(也叫表)

filter:过滤,防火墙

nat:network address translation,网络地址转换

mangle:拆分报文,做出修改,在封装起来

raw:关闭nat表上启用的连接追踪功能

(内置):

PREROUTING:

INPUT

FORWARD

OUTPUT

POSTROUTING

2.必备概念

1数据报文的流向

流入:PREROUTING --> INPUT

流出:OUTPUT --> POSTROUTING

转发:PREROUTING --> FORWARD --> POSTROUTING

2各功能可以在哪些链上实现

filter: INPUT,FORWARD,OUTPUT

nat:PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT)

mangle: PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

raw:PREROUTING,OUTPUT

3路由发生的时刻(PREROUTING,POSTROUTING

报文进入本机后:

    判断目标主机    

报文发出之前:

    判断经由哪个借口送往下一跳

4添加规则时的考量点

1)要实现什么功能:判断添加在哪张表上;

2)报文流经的路径:判断添加在哪个链上;

5firewalld优先级

策略应用优先级:raw, mangle, nat, filter

策略常用优先级:filter,nat,mangle,raw

 

二.操作参数:                                                               

1.链管理

-F: flush,清空规则链:省略链,表示清空指定表上的所有的链

-N: new,  创建新的自定义规则链:

-X: drop, 删除用户自定义的空的规则链

-P: Policy, 为指定链这是默认策略,filter表中的链而言,默认策略通常有ACCEPT,DROP,REJECT;

2.规则管理

-A:append,将新规则追加于指定链的尾部

-I:insert,将新规则插入至指定链的指定位置

-D:delete,删除指定链上的指定规则

3.查看防火墙策略

-L: list, 列出指定链上的所有规则

-n: number,以数字格式显示地址和端口号

-v: verbose,显示详细信息

-vv,-vvv--line-numbers:显示规则编号

4. 匹配条件

-s, source:检查报文中源ip地址是否符合此处指定的地址范围

-d, destination:检查报文中ip地址是否符合此处指定的地址范围

-p, protocol(udp|tcp|icmp):检查报文中的协议

-i, input-interface:数据报文的流入接口包括网卡:仅能用于PREROUTING,INPUT,FORWARD链上

-o, out-interface:数据报文的流出接口:仅能用于POSTROUTING,OUTPUT,FORWARD链上

-ttype,指定哪个表

-j target:jump至指定的target
 ACCEPT:接受
 DROP:丢弃
 REJECT:拒绝
 RETURN:返回调用链
 REDIRECT:端口重定向
 LOG:记录日志
 MARK:做防火墙标记
 DNAT:目标地址转换
 SNAT:源地址转换
 MASQUERADE:地址伪装
 ....
 自定义链:由自定义链中的的规则进行匹配

三.实际操作                                                              

1.filter:

清空所有策略:                                       - iptables -F

清空自定义链:                                       - iptables -X

自定义一个链                                        - iptables -N old_forward

修改自定义链的名字                                    -iptables -E old_forward new_forward

filterforward链的默认策略打成drop                 - iptables -P FORWARD DROP                

查看filter表中的策略并且显示行数:                      -iptables -L -n   #line-number    

删除filter表中forward链中的第9条策略:                 -iptables -t filter -D FORWARD 9

限制所有主机(0.0.0.0)拒绝ping本主机                    -iptables -t filter -A INPUT -s 0.0.0.0 -d 192.168.254.24 -p icmp -j REJECT    #icmpping独有的协议

显示所有主机(0.0.0.0)拒绝通过ens33网卡ping本主机       -iptables -t filter -A INPUT -d 192.168.254.24 -i ens33 -p icmp -j REJECT

2.nat:

1源地址转换

    #源地址为192.168.250.0网段的ip地址经过防火墙都转换成192.168.31.100这个ip地址(SNAT:源地址转换)

    iptables -t nat -A POSTROUTING -s 192.168.250.0/24  -j SNAT --to-source 192.168.31.100

    

2目标地址转换

    #访问目标地址为192.168.31.200这个机器并且是tcp协议80号端口的都转发给192.168.250.1DNAT

    iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.250.1:80

    #访问目标地址为192.168.31.200这个机器并且是tcp协议80号端口的都转发给192.168.31.1009999号端口(DNAT目标端口地址转换)

    iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.31.100:9999

原文地址:https://www.cnblogs.com/feige2L/p/10885054.html