linux 的防火墙 ufw、firwalld、iptables 、

防火墙综述

linux 防火墙,常用的包括三种:ufwfirewalldiptables。学习难度依次递增。

常见的防火墙分为两种,一种是3层防火墙,另一种是 7 层防火墙。

在 TCP/IP 的七层网络中,第三层是网络层,三层防火网会在这层对源地址和目标地址进行检测。但七成防火墙会对 源端口、目标端口、源ip、目标ip 全都进行检测。

ufw

因为原生的 iptable 配置麻烦,学习成本较高。 ufw全称 Uncomplicated Firewallubuntu提供的一个 iptables 的接口。同时支持 ipv4ipv6

最新版的UFW默认启用了IPV6配置,你也可以通过以下命令进行检查:

# cat /etc/default/ufw | grep -i ipv6
IPV6=yes

默认策略

默认情况下,UFW 设置了:禁止所有流量转入,允许所有流量转出。(这点和 iptable 的默认允许所有流量转入不同)。
我们也可以更改此默认配置:

cat /etc/default/ufw |grep -i default_input  # 加 -i 是关闭大小写区分。
DEFAULT_INPUT_POLICY="DROP"

规则设置

允许 80 端口的 tcp 流量包进入

sudo ufw allow 22/tcp

拒绝 88 端口的 tcp 流量包进入与流出

sudo ufw deny 88/tcp

允许特定的 ip 源的访问

sudo ufw allow from 192.168.1.1

firewall

Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

关于 firewall 防火墙配置,需要注意的是:

这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。

规则配置

  1. 默认域的配置
firewall-cmd --list-all
  1. 应急命令
firewall-cmd --panic-on     # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
firewall-cmd --panic-off    # 取消应急模式,但需要重启firewalld后才可以远程ssh
firewall-cmd --query-panic  # 查看是否为应急模式
  1. 端口
firewall-cmd --add-port=<port>/<protocol>    # 添加端口/协议(TCP/UDP)
firewall-cmd --remove-port=<port>/<protocol> # 移除端口/协议(TCP/UDP)
firewall-cmd --list-ports                    # 查看开放的端口
  1. 开放指定端口,并重新加载
firewall-cmd --add-port=443/tcp --permanent # 开放端口
firewall-cmd --reload                       # 重新加载
firewall-cmd --query-port=443/tcp           # 查询是否放开

iptables

iptables 的结构

iptables -> Tables -> Chains -> Rules

简单地讲,tables由chains组成,而chains又由rules组成。iptables 默认有四个表Filter, NAT, Mangle, Raw,其对于的链如下图。

具体使用参考如下文献:
https://wangchujiang.com/linux-command/c/iptables.html

参考文献

https://zhuanlan.zhihu.com/p/98880088
https://www.cnblogs.com/stulzq/p/9808504.html
https://wooyun.js.org/drops/Iptables入门教程.html

posted @ 2023-03-03 08:50  沧海一声笑rush  阅读(3275)  评论(0编辑  收藏  举报