CentOS8 iptables 防火墙配置

CentOS8 iptables配置防火墙

  • iptables 防火墙简介
    • iptables匹配规则
      • 规则链依据数据包处理位置的不同分类
      • 针对策略规则类型采取不同动作
    • iptables常用命令参数
    • iptables 实践
      • 将INPUT默认策略改为DROP
      • 向某种类型中添加允许某种协议进入
      • 删除某条规则
      • 设置指定网段的主机访问本机某端口,拒绝其他所有主机的流量
      • 保存iptables 配置设置

iptables 防火墙简介

  1. 在操作系统中防火墙在内网和外网中充当保护的屏障,防火墙有软件防火墙和硬件防火墙之分。
  2. 在Linux系统中有多种防火墙管理工具,例如:iptables、firewall-cmd、 firewall-configTCP-Wrapper防火墙管理工具。这些都只是定义防火墙策略的防火墙管理工具。iptables服务将配置好的防火墙策略交由内核中的netfilter网络过滤器处理。firewalld配置好的防火墙策略交由内核中的nftables包过滤框架来处理。
  3. 防火墙策略可以基于流量的原目的地址、端口号、协议、应用等信息来定制。

iptables匹配规则

  1. 防火墙从上至下顺序读取配置的策略规则,在找到匹配项之后立即结束匹配工作并执行匹配项中定义的行为。
  2. iptables中用于处理或过滤流量的策略条目称之为规则。多条规则组成一个规则链。
  3. 基于以上原因,应当把规则按重要性的顺序配置,同时把允许动作放到拒绝动作之前。
  4. 如果防火墙默认策略是"放行(阻止)",则设置规则为“阻止(放行)”

规则链依据数据包处理位置的不同分类

类型 含义
PREROUTING 在进行路由选择之前处理数据包
INPUT 处理流入的数据包
OUTPUT 处理流出的数据包
FORWARD 处理转发的数据包
POSTROUTING 在进行路由选择后处理数据包

一般从内网向外网发送的流量一般都是可控且良性的,所以使用最多的就是配置 INPUT 规则链

针对策略规则类型采取不同动作

类型 含义
ACCEPT 允许流量通过
REJECT 拒绝流量通过
LOG 记录日志信息
DROP 拒绝流量通过

REJUECT和DROP的区别:

  • REJECT在拒绝流量后再回复一条“您的信息已收到,但是被扔掉了”
  • DROP直接将流量丢弃且不响应。
  • 规则链默认拒绝动作只能是DROP,而不能是REJECT。个人猜测:当黑客想要探明是否某个主机是否在线时,如果使用REJECT则即使信息被拒绝了,也能知道主机是在线的。但是如果使用DROP则,无法探出是真的不存在该主机还是该主机将信息DROP了没有回应。

iptables常用命令参数

参数 作用
-P 设置默认策略
-F 清空规则链
-L 查看规则链
-A 在规则链末尾加入新规则
-I num 在规则链头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加"!"表示除这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如TCP、UDP、ICMP
–dport num 匹配目标端口号
–sport num 匹配来源端口号

iptables 实践

将INPUT默认策略改为DROP

[root@MyCentOS ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
[root@MyCentOS ~]# iptables -P  INPUT DROP
[root@MyCentOS ~]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

向某种类型中添加允许某种协议进入

[root@MyCentOS ~]# iptables -I INPUT -p icmp -j ACCEPT
[root@MyCentOS ~]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     icmp --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

第一条命令中的含义是

  • -I INPUT在INPUT头部添加一条规则
  • -p icmp匹配ICMP协议
  • -j ACCEPT 跳转执行ACCEPT操作,因为INPUT的默认操作时DROP

删除某条规则

[root@MyCentOS ~]# iptables -D INPUT 1
[root@MyCentOS ~]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

设置指定网段的主机访问本机某端口,拒绝其他所有主机的流量

[root@MyCentOS ~]# iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
[root@MyCentOS ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT
[root@MyCentOS ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.10.0/24      anywhere             tcp dpt:ssh
REJECT     tcp  --  anywhere             anywhere             tcp dpt:ssh reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
  • 上述第一条命令含义是:
  1. -I INPUT 在INPUT规则链中头部添加规则
  2. -s 192.168.10.0/24 匹配192.168.10.0-192.168.10.24中的所有主机IP地址
  3. -p tcp 匹配tcp协议
  4. --dport 22 匹配访问本机端口号为22的流量
  5. -j ACCEPT 跳转至执行ACCEPT操作
  • 上述第二条命令含义是:
  1. -A INPUT 在INPUT规则链末尾添加规则
  2. -p tcp匹配tcp协议
  3. --dport 22 匹配访问本机端口号为22的流量
  4. -j REJECT 跳转至执行REJECT操作

根据上述iptables匹配规则中所说,需要把匹配规则中允许规则放置在拒绝规则之前。

保存iptables 配置设置

iptables的防火墙设置感觉还行,再多的实践就不再写了。但是配置的防火墙策略默认会在系统下一次重启时生效,永久生效还要执行保存命令

 [root@MyCentOS ~]# service iptables save

你可能感兴趣的:(Linux学习笔记,linux,iptables,运维)