从零开始学习Linux运维,成为IT领域翘楚(十)
文章目录
- 🔥Linux网络防火墙
- 🔥Linux内核机制
🔥Linux网络防火墙
防火墙管理工具
firewalld概述
Centos 系统中集成了多款防火墙管理工具,其中 firewalld服务是默认的防火墙配置管理工具,它拥有基于 CLI(命 令行界面)和基
于 GUI(图形用户界面)的两种管理方式。
firewalld 中常用的区域名称及策略规则
区域 | 默认策略规则 |
---|---|
trusted | 允许所有的数据包 |
home | 拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh、mdns、ipp-client、amba-client 与 dhcpv6-client 服务相关,则允许流量 |
internal | 等同于 home 区域 |
work | 拒绝流入的流量,除非与流出的流量数相关;而如果流量与 ssh、ipp-client 与dhcpv6-client 服务相关,则允许流量 |
public | 拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh、dhcpv6-client 服务相关,则允许流量 |
external | 拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh 服务相关,则允许流量 |
dmz | 拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh 服务相关,则允许流量 |
block | 拒绝流入的流量,除非与流出的流量相关 |
drop | 拒绝流入的流量,除非与流出的流量相关 |
firewalld防火墙的配置
🐇 使用firewall-cmd 命令行工具。
🐇 使用firewall-config 图形工具。
🐇 编写/etc/firewalld/中的配置文件。
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态:
systemctl status firewalld firewall-cmd --state
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
终端管理工具
Linux 命令时曾经听到,命令行终端是一种极富效率的工作方式,firewalld-cmd 是 firewalld 防火墙配置管理工具的 CLI(命令行界面)版本。
firewalld-cmd 命令中使用的参数以及作用
参数 | 作用 |
---|---|
–get-default-zone | 查询默认的区域名称 |
–set-default-zone=<区域名称> | 设置默认的区域,使其永久生效 |
–get-zones | 显示可用的区域 |
–get-services | 显示预先定义的服务 |
–get-active-zones | 显示当前正在使用的区域与网卡名称 |
–add-source= | 将源自此 IP 或子网的流量导向指定的区域 |
–remove-source= | 不再将源自此 IP 或子网的流量导向某个指定区域 |
–add-interface=<网卡名称> | 将源自该网卡的所有流量都导向某个指定区域 |
–change-interface=<网卡名称 > | 将某个网卡与区域进行关联 |
–list-all | 显示当前区域的网卡配置参数、资源、端口以及服务等信息 |
–list-all-zones | 显示所有区域的网卡配置参数、资源、端口以及服务等信息 |
–add-service=<服务名> | 设置默认区域允许该服务的流量 |
–add-port=<端口号/协议> | 设置默认区域允许该端口的流量 |
–remove-service=<服务名> | 设置默认区域不再允许该服务的流量 |
–remove-port=<端口号/协议> | 设置默认区域不再允许该端口的流量 |
–reload | 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 |
–panic-on | 开启应急状况模式 |
–panic-off | 关闭应急状况模式 |
注意:
使用 firewalld 配置的防火墙策略默认为运行时(Runtime)模式,又称为当前生效模式,而且随着系统的重启会失效。如果想让配 置策略一直存在,就需要使用永久(Permanent)模式了,方法就是在用 firewall-cmd 命令正常设置防火墙策略时
添加 --permanent 参数,
这样配置的防火墙策略就可以永久生效了。但是,永久生效模式有一个“不近人情”的特点,就是使用它设置的策略只有在系统重启之后才能自动生效。
常用示例
区域管理示例
🐟 显示当前系统中的默认区域
firewall-cmd --get-default-zone
🐟 显示默认区域的所有规则
firewall-cmd --list-all
🐟 显示当前正在使用的区域及其对应的网卡接口
firewall-cmd --get-active-zones
🐟 设置默认区域
firewall-cmd --set-default-zone=home
firewall-cmd --get-default-zone
服务管理示例
🐟 查看默认区域内允许访问的所有服务
firewall-cmd --list-service
🐟 添加httpd 服务到public 区域
firewall-cmd --add-service=http --zone=public
🐟 查看public 区域已配置规则
firewall-cmd --list-all --zone=public
🐟 删除public 区域的httpd 服务
firewall-cmd --remove-service=http --zone=public
🐟 同时添加httpd、https 服务到默认区域,设置成永久生效
firewall-cmd --add-service=http --add-service=https --permanent
firewall-cmd --reload
firewall-cmd --list-all
端口管理示例
🐟 查看开启的端口列表
[root@localhost local]# firewall-cmd --zone=public --list-ports
🐟 开启某端口
[root@localhost local]# firewall-cmd --zone=public --add-port=8080/tcp
success
🐟 关闭某端口
[root@localhost local]# firewall-cmd --zone=public --remove-port=8080/tcp success
SELinux
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。
说明:
当您全神贯注地使用它给照片进行美颜 的时候,它却在后台默默监听着浏览器中输入的密码信息,而这显然不应该是它应做的事情,SELinux 安全子系统就是为了杜绝此类情况而设计的,它能够从多方面监控违法行为。
🐕 对服务程序的功能进行限制(确保程序干不了出格的事情)
🐕 对文件资源的访问资源限制(SELinux安全上下文确保文件资源只能被其他所属的服务程序进行访问)
SELinux 服务有三种配置模式:
🐟 enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
🐟 permissive:遇到服务越权访问时,只发出警告而不强制拦截。
🐟 disabled:对于越权的行为不警告也不拦截。
SELinux 服务的主配置文件中,定义的是 SELinux 的默认运行状态,可以将其理解为系 统重启后的状态,因此它不会在更改后立即生效。可以使用 getenforce 命令获得当前 SELinux 服务的运行模式:
[root@linuxprobe ~]# getenforce
Enforcing
注意:
修改 SELinux 当前的运行模式(0 为禁用,1 为启用)。这种修改只是临时的,在系统 重启后就会失效:
setenforce 0
getenforce
🔥Linux内核机制
今天为大家解读一副来自极客漫画网站作者Daniel Stori关于Linux有趣的作品。
地基
解释:
地基(底层)由一排排的文件柜组成,然有序,文件柜里放置着“文件”—-电脑中的文件。左上角,有一只胸前挂着421号牌的小企鹅,它表示着PID (进程ID(Process ID) )为421的进程、它正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。在右下角有一只小狗,它是看门狗(watchdog) 、这代表对文件系统的监控。
地面层
看完了地基,接下来我们来看地基上面的一层,都有哪些东西。
解释:
左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长的人物,不过看起来周围坐的那些小企鹅不是很听话—你看有好多走神的、自顾自聊天的——“喂喂,说你呢,哇塞娃(191),转过身来”。它代表着Linux内核中的初始化(init)进程,
也就是我们常说的PID 为1的进程。桌子上坐的小企鹅都在等待状态(wait)中,等待工作任务。
大门
解释:
在这层的左侧,有一只号牌为1341的小企鹅,守在门口,门上写着80,说明这个PID为1341的小企子负责接待80端口,也就是我们常说的HTTP (网站)的端口。小企鹅头上有一片羽毛,这片羽毛大有来历,它是著名的HTTP服务器Apache 的Logo。
解释:
他就是著名的HTTP服务器Aache的Logo。
解释:
FTP协议有点老旧了,目前用的人也比以前少了,以至于这里都没人接待了。
解析:
22端口是SSH端口,是一个非常重要的远程连接端口,通常通过这个端口进行远程管理,所以对这个端口进来的人要仔细审查。它的身上写的52,说明它是第52个小企鹅。
时间
解释:
在这一层中,有一个身上写着219的小企鹅,他正满头大汗地看着自己的手表。这只小企鹅就是定时任务(Crontab) ,他会时刻关注时间,查看是否要去做某个工作。
解释:
有两个小企鹅扛着管道(PipeLine)在行走,一只小企鹅可以把自己手上的东西通过这个管道。传递给后面的小企鹅。
二楼
解释:
这一层有很多屏幕,每个屏幕写着TTY(这就是对外的终端)。
敌人
解释:
这个小丑是谁呀?我也不知道或许是病毒吧。