服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Centos - 浅谈简单使用CentOS7防火墙及开放端口

浅谈简单使用CentOS7防火墙及开放端口

2022-07-20 11:55warnerwu Centos

这篇文章主要介绍了浅谈简单使用CentOS7防火墙及开放端口,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

概述(官方有更为详细的说明哦)

Firewalld提供动态管理的防火墙,支持网络/防火墙区域,用于定义网络连接或接口的信任级别。它支持IPv4,IPv6防火墙设置,以太网桥和IP集。运行时和永久配置选项分开。它还为服务或应用程序提供了直接添加防火墙规则的接口。

既然是简单使用, 那必须教会你怎么查看防火墙状态, 以及防火墙的关闭和开启之类的, 我们都知道那既然防火墙都开启了, 那么它必定是有一些端口的限制, 不能说你想通过哪些端口就通过哪些端口, 就能访问到我们的主机(也就是服务器了), 换句说话, 我开放了哪些端口, 你才可以通过我开放的这些端口对我的主机进行访问, 要不然我们还要防火墙干嘛, 谁想进来就进来(还是通过任意端口), 防火墙不就成了摆设不成, 说到防火墙要还要多说一句, 防火墙有软件层面的和物理设置层面的(网络内的一台专业物理设备), 那我们这里是所说的是软件层面的防火墙也就是Firewalld, CentOS7以下版本普遍使用的软件防火墙是Firewalld, 为什么说是CentOS7以下版本普遍使用的呢? 这是因为之前的CentOS版本都是使用的iptables防火墙, 那要往深处说, 这就要追溯到CentOS7的发展历程及RedHad之间的关系啦, 扯远了哈, 我们使用防火墙的主要目的是对我们的主机进行安全管理, 其中主要的一部分就是端口管理了!

查询防火墙状态

shell

?
1
# systemctl status firewalld

execute

?
1
2
3
4
5
[warnerwu@localhost ~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  Active: inactive (dead)
   Docs: man:firewalld(1)

启动防火墙

注意:防火墙只有管理员或管理员用户组有权限进行管理操作, 普通用户则不可以

shell

?
1
# systemctl start firewalld

execute

?
1
2
[root@localhost~]# systemctl start firewalld
[root@localhost~]#

你会发现什么也没有, 玩 linux 或 osx 系统的小伙伴都知道, 没有提示那就是最好的提示, 说明已经成功啦, 有提示时则一会有问题哦

再次查看防火墙状态

shell

?
1
# systemctl status firewalld

execute

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost ~]# sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  Active: active (running) since 五 2018-09-07 00:04:55 CST; 5min ago
   Docs: man:firewalld(1)
 Main PID: 11339 (firewalld)
  CGroup: /system.slice/firewalld.service
      └─11339 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
 
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z systemd[1]: Started firewalld - dynamic firewall daemon.
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z firewalld[11339]: WARNING: ICMP type 'beyond-scope' is not supported by the kernel for ipv6.
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z firewalld[11339]: WARNING: beyond-scope: INVALID_ICMPTYPE: No supported ICMP type., ignorin...-time.
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z firewalld[11339]: WARNING: ICMP type 'failed-policy' is not supported by the kernel for ipv6.
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z firewalld[11339]: WARNING: failed-policy: INVALID_ICMPTYPE: No supported ICMP type., ignori...-time.
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z firewalld[11339]: WARNING: ICMP type 'reject-route' is not supported by the kernel for ipv6.
9月 07 00:04:55 izj6c3bcx7adgva5dda2e0z firewalld[11339]: WARNING: reject-route: INVALID_ICMPTYPE: No supported ICMP type., ignorin...-time.
Hint: Some lines were ellipsized, use -l to show in full.

嗯嗯, 你会发现在已经在运行啦, 就是这样子哦, 还要多说一句, 那如果你对 CentOS7 或 RedHat7 足够了解的话, 你会很熟悉 systemctl是个什么东东, 她呀, 就是系统服务管理工具, 是系统工具, 用来管理系统服务的, 就这么理解就可以不会错的! 之前的CentOS版本都是使用的 service 进行系统服务管理的哦, 关于更多 systemctl 或 service 的信息请动手 百度 或 Google, 我们简单的说完了, 查看防火墙状态以及怎么启动防火墙, 那我们的就来说说怎么来开放端口!

查看防火墙开放端口列表

防火墙的端口管理是通过 firewall-cmd 命令来进行管理的哦, 这一点必须要明确, 也是你管理系统端口的关键所在, 嗯嗯, 是她, 是她, 就是她, 她就是这么的如此风骚, 哈哈, 你拿她一点办法都没有, 不你可以把她玩的服服贴贴的, 什么呀!你想多了, 我什么也没有说哦, 是你自己这样想的~

shell

?
1
# firewall-cmd --list-all

execute

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# firewall-cmd --list-all
public
 target: default
 icmp-block-inversion: no
 interfaces:
 sources:
 services: ssh dhcpv6-client
 ports:
 protocols:
 masquerade: no
 forward-ports:
 source-ports:
 icmp-blocks:
 rich rules:

你会发现它如此空旷, 没有任何开放端口, 嗯, 这是一台新装linux系统, 你的也许会跟我这个一样, 也许会不一样, 这个要注意一下

添加开放端口到防火墙

比如我们让80端口开放, 其它用户可以访问我的站点

shell

?
1
2
3
4
5
6
7
8
9
10
11
12
13
// Step1: 加入开放端口到配置文件
 
# firewall-cmd --zone=public --add-port=80/tcp --permanent
 
--zone=public 添加时区
 
--add-port=80/tcp 添加端口
 
--permanent 永久生效
 
// 加载防火墙新配置文件( 以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息. )
 
firewall-cmd --reload

再次查看防火墙开放端口列表

shell

?
1
# firewall-cmd --list-all

execute

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# firewall-cmd --list-all
public
 target: default
 icmp-block-inversion: no
 interfaces:
 sources:
 services: ssh dhcpv6-client
 ports: 80/tcp
 protocols:
 masquerade: no
 forward-ports:
 source-ports:
 icmp-blocks:
 rich rules:

这次你会发现 ports 对应的多了一个 80/tcp, 那说明就已经添加到了防火墙开放列表中了

1、firewalld的基本使用

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://segmentfault.com/a/1190000016302581

延伸 · 阅读

精彩推荐
  • Centoslinux centos 修改ip地址细节介绍

    linux centos 修改ip地址细节介绍

    在使用CentOS系统的时候,我们也许觉得某些设置不适合自己,下面我就来给大家一些建议,修改一下你的DNS、网关和IP地址,需要的朋友可以参考下 ...

    centos教程网4672019-12-14
  • Centos利用Kickstart自动化安装CentOS的教程

    利用Kickstart自动化安装CentOS的教程

    这篇文章主要介绍了利用Kickstart自动化安装CentOS的教程,多用于服务器的系统部署,需要的朋友可以参考下 ...

    开源中文社区2952019-09-11
  • CentosCentOS下SSH无密码登录的配置文件

    CentOS下SSH无密码登录的配置文件

    这篇文章主要介绍了CentOS下SSH无密码登录的配置,包括配置SSH无密码登录需要三个步骤,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参...

    Himal7202021-11-19
  • Centos详解centos7安装rabbitMq教程

    详解centos7安装rabbitMq教程

    本文小编为大家具体的介绍centos7安装rabbitMq的方法,rabbitmq是一个使用专业的消息队列产品,需要注意的是在安装rabbitt之前,要安装erlang开发环境...

    CSDN5082019-07-07
  • CentosCentOS 7下修改默认网卡名为eth0的两种方法

    CentOS 7下修改默认网卡名为eth0的两种方法

    今天又从Centos 6.5装回了Centos 7,毕竟还是要顺应潮流嘛。安装完成之后,发现发现CentOS 7默认的网卡名称是eno16777736,所以想着改回eth0,下面这篇文章主要...

    CentOS教程网9112021-12-24
  • Centos详解CentOS7安装配置Apache HTTP Server

    详解CentOS7安装配置Apache HTTP Server

    本篇文章主要介绍了CentOS7安装配置Apache HTTP Server,具有一定的参考价值,有兴趣的可以了解一下。...

    李豪leaus8372021-12-22
  • CentosCentOS7使用Docker Overlay2存储驱动

    CentOS7使用Docker Overlay2存储驱动

    这篇文章主要介绍了CentOS7使用Docker Overlay2存储驱动,需要的朋友可以了解下 ...

    脚本之家4732019-09-16
  • Centos如何解决centos下root运行Elasticsearch异常

    如何解决centos下root运行Elasticsearch异常

    有些朋友在centos下root运行Elasticsearch时发现异常;不知道该如何解决?下面小编就给大家带来解决centos下root运行Elasticsearch异常的方法!有需要的朋友可以过...

    服务器之家2362019-07-08