一、防火墙的类型
* 硬件类
三层路由
深信服
* 软件类
iptables
filewalld
* 云防火墙
阿里云的安全组
二、 需要熟悉的几个名词
* 容器(但不是docker这种东西)是一种存放东西的东西
* 表 (也不是数据库的表)它是存放链的容器
* 链:存放规则的容器
* 规则(police):准许或拒绝规则

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

四、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端口




五、环境准备几命令
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
网友评论