Linux 防火墙
Posted geyiwei-suzhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 防火墙相关的知识,希望对你有一定的参考价值。
zones
防火墙能够根据用户设置的信任级别把网络划分成许多的区域,一个网络连接只能归属于一个区域
系统默认的所有区域存储在 /usr/lib/firewalld/zones
- block : 对于外部主动主动发起的连接,主机会返回一个 icmp 包来拒绝,但主机可以向外部主动发起连接
- dmz: 非军事区域内的计算机可以公开访问,但是对于内部网络,只接受指定的连接
- drop:对于传入的网络数据包,主机直接拒接,不返回任何消息包,只允许从主机传出数据包
- external:用于使用伪装的外部网络,尤其是路由器,为了防止网络中其他计算机的攻击,仅接受指定的传入连接
- home: 用于在家里使用,此时,对于网络中的计算机,大多比较信任,也是仅接受指定的传入连接
- internal:用于内部网络,此时,对于网络中的计算机,大多比较信任,也是仅接受指定的传入连接
- public:用于公共区域,此时,不能信任网络中的计算机,仅接受指定的传入连接
- trusted:接受所有的网络连接
- work:用于工作区域,此时,对于网络中的计算机,大多比较信任,但也仅接受指定的传入连接
public 是安装防火墙时默认的区域
安装
Linux发行版默认安装了防火墙,如果没有安装,可使用如下命令安装:
yum install firewalld -y
启动、关闭防火墙
systemctl start firewalld # 启动防火墙服务
systemctl stop firewalld # 关闭防火墙服务
设置开机启动、禁止开机启动
systemctl enable firwalld # 开机启动防火墙服务
systemctl disable firwalld # 禁止开机启动防火墙服务
firewall-cmd
firewall-cmd 是防火墙配置管理工具,它的参数较多,下表列出常用的参数及作用,更多参数自行通过 man 命令进行查看
选项 | 说明 |
---|---|
–state | 防火墙开启状态 |
–reload | 重新加载防火墙规则 |
–get-default-zone | 获取默认区域 |
–set-default-zone=xxx | 设置默认区域为 xxx |
–list-ports --zone=xxx | 列出 xxx 区域中添加的端口 |
–add-port=x --zone=xxx | xxx 区域中添加 x 端口 |
–remove-port=x --zone=xxx | xxx区域中移除 x 端口 |
–query-port=x --zone=xxx | 查询 xxx 区域中是否已添加 x 端口 |
–list-services=x --zone=xxx | 列出 xxx 区域中所有允许的服务器 |
–query-service=x --zone=xxx | 查询是否允许 xxx 区域中 x 服务的流量 |
–add-service=x --zone=xxx --timeout= t | 允许 xxx 区域中 x 服务的流量,超时时间 t |
–remove-service=x --zone=xxx | 从 xxx 区域中移除 x 服务 |
运行时和永久
防火墙规则的修改有运行时和永久两种模式。默认为运行时模式,它在防火墙服务重新加载、重启服务,重启系统时会失效。
–permanent 是设置永久的选项,设置之后不会立马生效,需要重启服务、重新加载防火墙服务或者系统重启才生效。另外,–permanent 选项并不是对所有的选项都有效。
例如:现在设置 public 区域允许 80 端口 TCP 流量通过,并且运行时和永久性都都生效,具体的设置如下
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
查看防火墙状态
firewall-cmd --state
重新加载
重新加载会导致已经添加的运行时的规则丢失
firewall-cmd --reload
以上是关于Linux 防火墙的主要内容,如果未能解决你的问题,请参考以下文章