防火墙

2019-08-05  本文已影响0人  不知道就

一、防火墙的类型

*  硬件类
          三层路由
           深信服
*  软件类
          iptables
          filewalld
*  云防火墙
          阿里云的安全组

二、 需要熟悉的几个名词

*  容器(但不是docker这种东西)是一种存放东西的东西
*  表 (也不是数据库的表)它是存放链的容器
*  链:存放规则的容器
*  规则(police):准许或拒绝规则

image.png

三、iptables 执行过程

1.防火墙规则是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2. 如果匹配的上的规则,即明确表示是阻止还是通过,数据包就不会再向下匹配到新的规则。
3. 如果规则中没有明确表示是阻止还是通过的,也就是没有匹配规则,向下进行匹配,
直到匹配默认规则的到明确的阻止还是通过
4. 防火墙的默认规则是所以的规则执行才执行的。
image.png

四、iptables的表和链

filter表: 强调和主机之身相关,真正负责主机防火墙功能的(过滤流入出主机的数据包)filter表示iptables默认使用的表,这个表第定义了三个链(chains)
企业工作场景:主机防火墙
INPUT: 负责过滤所有目标地址是本机地址的数据包,通俗的来说:就是过滤进入主机的数据包
FORWARD:负责转发主机的数据包。起转发的作用,和NAT模式。net。IPv4。ip_forward=0
OUTPUT:   处理所有的源地址是本机地址的数据包,通俗的来讲就是处理从主机发出去的数据包

NAT :负责网络地址装换的,即来源与目的ip地址和port的转换。
应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关。
工作场景:1.用于企业路由或网关,共享上网
2.做内部外部ip地址一对一映射,映射防火墙ip到内部的服务器,ftp服务
3. web,单个端口的映射,自己映射到80 的端口,这个表定义了3个链,nat功能相当于网络的acl控制,和网络机acl类似。

OUTPUT:和主机放出去的数据包有关,改变主机发出的数据包的目的地址。

PREROUTTING:在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址。目的端口等、、、、
就是收信时,根据规则重写收件人的地址。
例如::把公网ip:?映射到局域网的?的服务器上。如果web服务可以80转换为局域网的服务器9000端口

image.png
image.png
QQ图片20190819160351.png
QQ图片20190819162059.png

五、环境准备几命令

iptables的启动和关闭


yum install -y iptables-services 
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #防火墙的配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #防火墙服务配置文件(命令)


防火墙相关模块 加载到内核中
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state


[root@liqidefuwuqi ~]#  lsmod |egrep 'filter|nat|ipt'
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT
iptable_filter         12810  1 
ip_tables              27126  1 iptable_filter
br_netfilter           22256  0 
bridge                151336  1 br_netfilter

 systemctl  stop firewalld.service 
 systemctl  disable    firewalld.service
 systemctl  start  iptables.service 
 systemctl  enable  firewalld.service

[root@liqidefuwuqi ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

六、iptables的命令及参数

参数               含义
 - L           |   显示表中的所以规则
-n             |   不要把端口和ip反向解析为名字
-t             |   指定加载表
-A             |   append追加ACCEPT 
-D             |   删除
-I             |   insert拒绝的规则放在最上面
-P             |   protocal 协议 tcp/udp/icmp/all
--dport        |   目标端口
--sport        |   源端口
-s             |   --source 源ip
-d             |   --destination 目标ip
-j             |   满足条件后的动作 : DROP/ACCEPT/REJECT
-F             |   清除所有规则,不会处理默认的规则
-Z             |   链的计数器清零(数据包计数器与数据包字节计数器)
-X             |   删除用户自定义的链
-m             |  多端口连接

七、配置filter规则

[root@m01 ~]# iptables -F
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL

## 禁止访问22端口
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

## 禁止网段连入(禁止10.0.0.0网段访问 8080端口)
iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 8080 -j DROP

##只允许指定网段连入(允许10.0.0.0网段)
iptables -I INPUT ! -s 10.0.0.0/24 -j DROP

##指定多个端口
iptables -I INPUT -p tcp -m multiport ! --dport 80,443 -j
iptables -I INPUT -p tcp --dport 1024:65535 -j DROP

上一篇下一篇

猜你喜欢

热点阅读