一、防火墙概述

1、防火墙分类

a、硬件防火墙:

如思科的ASA防火墙,H3CSepath防火墙等

(物理机器就是个防火墙,自带操作系统)

b、软件防火墙:

iptables

二、iptables匹配流程

入站:input    目标是网关

出站:output    源是网关

转发:forword  目标不是网关

路由选择前:Prerouting  进路由前

路由选择后:Postrouting  出路由后

 

 

链是什么??

防护墙一共有四表五链,五个链就是防火墙。

链就是一堆规则组名;

INPUT里面也有防火墙规则,控制的就是入站这段的防火墙规则。

出站:OUTPUT,控制的就是出站这段的防火墙规则

转发:FORWARD,控制的就是转发网关这段的防火墙规则

路由选择前:PREROUTING,控制的就是进网关前这段的防火墙规则

路由选择后:POSTROUTING,控制的就是出网关后这段的防火墙规则

规则就是如何处理数据包。

链就是代表这每一段,而这段链包含一组规则,规则就是当数据包经历这一段的时候我如何控制它;总共有五个链,就有五个规则。

防火墙无法卸载

因为防火墙不在应用层,而是在kernel

我们使用service iptables status不是关闭防火墙,而是把规则清了,没有任何限制了。

三、查看防火墙规则命令

iptables -L          #默认是看filter表,里面只有INPUT  FORWARD  OUTPUT

iptables -t filter -L    #指定看filter

iptables -n

iptables -nv

 

查看路由网关:route -n

 

nat

iptables -t nat -L

PREROUTING  POSTROUTING  OUTPUT

#一般只有对路由前和路由后操作,才动NAT表;OUTPUTfilter表里限制

 

 

 

 

 

 

 

 

 

 

 

 

 

 

四、链表结构关系图

 

 

五、封锁命令

iptables -I INPUT -p icmp -j DROP  #INPUT链插入限制所有的icmp协议都丢包

 

所有的协议都是icmp规则;

 

iptables -F  #清空规则

 

iptables -I OUTPUT -p icmp -j DROP   #OUTPUT链插入限制所有的icmp协议都丢包

 

iptables -I FORWARD -p icmp -j DROP  #FORWARD链插入限制所有的icmp协议都丢包

 

上面链默认都允许通过,下面做限制通过

上面链默认都拒绝通过,下面做允许通过

 

iptables -P FORWARD DROP   #直接修改链规则,直接所有拒绝

 

关闭大链,xshell不掉

iptables -I OUTPUT -s 192.168.154.133 -d 192.168.154.1 -p tcp --sport 58888 -j ACCEPT

#OUTPUT限制源没有意义,都是从自己这发出去。OUTPUT只能限制目标的端口。

#-p是协议, --sport定端口

iptables -I INPUT -s 192.168.154.1 -d 192.168.154.133 -p tcp --dport 58888 -j ACCEPT

#INPUT限制目标没有意义,都在找自己的。

#-p是协议,--dport定端口;别人来找我,源端口是随机的,只能限制目标端口。

限制端口的前提,要先限制协议。

 

 

 

六、常见的匹配条件汇总表

service iptables stop 清空所有规则

 

 

 

 

 

LINUX /etc/sysctl.conf

sysctl -p重启配置文件

 

 

七、隐现匹配

 

 

八、显示匹配

 

 

 

 

 

 

netstat -rn

ip route

route -n

看网关

 

SNAT 对源做NAT(源网络地址转换)  在出路由口做

在出网段做SNAT  为的是让对方能从公网转发回来。

 

SNAT是私网能上公网,从一个网关出去数据包;SNAT做转换为的是让百度发回来;因此我们家庭数据包出家庭出完的一霎那,加个家庭公网IPSNAT

iptables -t nat -A POSTROUTING -s 192.168.200.0/24(左边进的网段) -o eth1 -j SNAT --to-soutce 右(出)网卡地址

-i eth0 入网卡  -o eth1出网卡

 

 

 

##目标地址转换用DNAT  ##是在进路由口做DNAT

要在进目标之前做DNAT转换,-d为百度公网路由IP  --dport 找自己的端口号, -jDNAT类型  --to-destination 百度web服务器的私网IP   冒号(:)后加端口号

iptables -t nat -A PREROUTING -i eth1 -d 百度公网IP -p tcp --dport 80 -j DNAT --to-destination 私网ip8080