iptables和firewalld是火墙管理的两个工具

iptables规则永久保存 iptables 保存命令_链表


默认的三张表:

filter(经过本机内核的数据)

nat(不经过本机内核的数据)

mangle(前两个表不够用的时候,用这个)

一、iptables 基本指令

参数

含义

-t

指定表名称(nat,filter,mangle),不加-t,默认是filter

-n

不做解析(速度稍快一点)

-L

查看

-p

协议

--dport,--sport

指定目的端口,来源端口

-s

来源

-j

动作(ACCEPT,DROP,REJECT,DNAT,NAT)

-F

临时清除策略,只是清除内存上的,重启服务后规则又会出现

实质都是保存到文件/etc/sysconfig/iptables

永久保存方式1:
iptables-save > /etc/sysconfig/iptables
永久保存方式2:
service iptables save
[root@node1 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

iptables规则永久保存 iptables 保存命令_数据_02


iptables规则永久保存 iptables 保存命令_NAT_03

新建链表操作

参数

含义

-N

新建链表

-E

给新建链表改名字

-X

删除新建链表

iptables规则永久保存 iptables 保存命令_链表_04


iptables规则永久保存 iptables 保存命令_iptables规则永久保存_05

规则操作:

参数

含义

-A

新建规则

-I

插入规则,后可跟数字,插入到指定位置

-R

更改规则

-P

更改默认规则,-j后面只能是ACCEPT或者DROP

-D

删除规则

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_06


iptables规则永久保存 iptables 保存命令_数据_07


iptables规则永久保存 iptables 保存命令_链表_08


iptables规则永久保存 iptables 保存命令_链表_09


iptables 表里的规则是从上往下读的,如如果匹配到规则就不再继续向下匹配了。

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_10

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_11


将都接受规则(第二条)插入到拒绝80访问之前,就能正常访问了

iptables规则永久保存 iptables 保存命令_链表_12


iptables规则永久保存 iptables 保存命令_数据_13


由于是按着顺序访问的,因此在企业中若有几万条规则,逐一读取会造成网速的延迟,因此,读取规则的时候先读状态。对于状态是establishd,related的直接过。

数据包的三种状态:

  1. RELATED 建立过连接
  2. ESTABLISHED 正在建立连接
  3. NEW 尚未建立过连接

二、目的地地址转换(DNAT)

环境:

ip

主机名

192.160.1.1

s1

192.160.1.2 & 172.25.26.2

s2

172.25.26.3

s3

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_14


iptables规则永久保存 iptables 保存命令_NAT_15


iptables规则永久保存 iptables 保存命令_iptables规则永久保存_16

tu

默认s3不能ssh s1,因为不是一个网段

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_17


做DNAT之后:

iptables规则永久保存 iptables 保存命令_NAT_18

s3 连接s2(双网卡中与s3同网段),跳到s1

iptables规则永久保存 iptables 保存命令_链表_19


在s1端看到的就是真实连接它的机器ip

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_20

三、源地址转换(SNAT)

默认s1(192.160.1.1连接s3[172.25.26.3]连不上),做完SNAT之后

iptables规则永久保存 iptables 保存命令_NAT_21


可以连接上了

iptables规则永久保存 iptables 保存命令_链表_22


在s3上看下是谁连的它:

iptables规则永久保存 iptables 保存命令_iptables规则永久保存_23

注:一定要指定-o -i

iptables规则永久保存 iptables 保存命令_数据_24