linux系统--iptabels管理防火墙

什么是iptables

iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。
iptables有三张表五条链:
(1)filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)。
(2)nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。
(3)mangle 这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和OUTPUT(修改路由
之前本地的包)。

这个是用一张演示iptabels演示防火墙

linux系统--iptabels管理防火墙

1、在防火墙中firewall与iptabels两种工具不能同时存在,所以是需要关闭firewall的
  • 1.关闭firewalld
 systemctl stop firewalld.service   
 systemctl disable  firewalld.service

linux系统--iptabels管理防火墙

  • 2.打开iptables
systemctl start iptables.service 
systemctl enable  iptables.service

linux系统--iptabels管理防火墙

  • 3.查看iptables的策略
iptables -nL     默认查看filter的信息

linux系统--iptabels管理防火墙

  • 4.查看指定的策略
iptables -t filter -nL   查看指定filter的信息,
iptables -t nat  -nL     查看指定nat的信息,不做解析

linux系统--iptabels管理防火墙

linux系统--iptabels管理防火墙

  • 5.iptables的三种保存方式

iptables-save 保存
iptables-save > /etc/sysconfig/iptables 保存
service iptables save

linux系统--iptabels管理防火墙

  • 6.所有信息的删除
iptables -F   删除所有的信息

linux系统--iptabels管理防火墙

二.iptables策略的增删改

1.监控策略
[[email protected] ~]# watch  -n 1 iptables -nL              此读取有先后顺序的限制

linux系统--iptabels管理防火墙

2.策略的添加或删除

iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT 在fliter 表里面写入输入的所有 22端口全部允许访问

linux系统--iptabels管理防火墙

iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT 在 fliter表里面写入输入的所有22端口全部拒绝访问

linux系统--iptabels管理防火墙

iptables -t filter -A INPUT -p tcp --dport 22 -j DROP 在fliter表里边写入所有的22端口全部丢弃,丢弃的状体下还是会一直访问
linux系统--iptabels管理防火墙
iptables -N loko 创建一个和INPUT同类型的名称为loko

linux系统--iptabels管理防火墙

iptables -E loko lomo 将loko改名为lomo

linux系统--iptabels管理防火墙

iptables -X lomo 删除lomo

linux系统--iptabels管理防火墙

iptables -D INPUT 3 删除指定策略

linux系统--iptabels管理防火墙

linux系统--iptabels管理防火墙

修改指定策略

iptables -R INPUT 2 -p tcp --dport 22 -j ACCEPT

linux系统--iptabels管理防火墙

linux系统--iptabels管理防火墙

iptables  -P  INPUT  DROP   修改策略为DROP

linux系统--iptabels管理防火墙

linux系统--iptabels管理防火墙

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 输入的状态正在进行的或者已经进行的全部接受,当我是一个新的状态的时候。我这个主机第一次连接你,会传输慢点,当我第二次进入的时候,写入此条策略,我会加载的很快
linux系统--iptabels管理防火墙

iptables -A INPUT -m state --state NEW -i lo -j ACCEPT 输入的状态为新的全部接受
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT 输入的状态为22端口的全部接受
iptables -A INPUT -m state --state NEW -i REJECT 输入的为新的全部拒绝
service iptables save 保存
iptables -nL 查看已经建立成功

linux系统--iptabels管理防火墙

iptables的地址转换

1.SNAT就是改变转发数据包的源地址

–to-source:
POSTROUTING:可以在这里定义进行源NAT的规 则,系统在决定了数据包的路由以后在执行该链中的规则。

(1).iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.110
(2).iptables -t nat -nL

linux系统--iptabels管理防火墙

2.DNAT就是改变转发数据包的目的地址

–to-dest:
PREROUTING:(外部访问内部)可以在这里定义进行 目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;

这里是引用
(1).iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to-dest 172.25.4.110
(2).iptables -t nat -nL