当前位置: 首页 > news >正文

03.Linux高级管理

1. Linux 中的 firewalld

1.1. 什么是防火墙

防火墙主要用于防范网络攻击,防火墙一般分为软件防火墙、硬件防火墙

1.2. 防火墙的作用

主要作用是保护系统免受未经授权的访问和攻击,它有助于防止黑客利用系统中的安全漏洞,以及限制对特定网络服务的访问。

1.3. Linux 防火墙分类

CentOS6——>防火墙——>iptables 防火墙 防火墙系统管理工具

CentOS7——>防火墙 ——>firewalld 防火墙

1.4. firewalld 防火墙

firewalld 工具是一个面向用户、方便用户的防火墙配置工具,系统内核依然是基于 iptables 规则来工作的。firewalld 工具其实就是在帮我们配置 iptables 防火墙规则。

1.4.1. firewalld 防火墙服务管理

启动防火墙

systemctl start firewalld

停止防火墙

systemctl stop firewalld

重启防火墙

systemctl restart firewalld

查看防火墙状态

systemctl status firewalld

设置开机启动

systemctlenablefirewalld

设置开机不启动

systemctl disable firewalld

重载防火墙

systemctl reload firewalld

1.4.2. 防火墙 zone 的概念

firewalld 相比于 iptables 增加区域(zone)的概念,在 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拒绝流入的流量,除非与流出的流量相关

对应配置文件位置

ll /lib/firewalld/zones

1.5. 防火墙命令及策略

管理防火墙策略,可以通过 firewalld 的管理工具 firewall-cmd 来对 firewalld 进行防火墙策略配置。

1.5.1. firewall-cmd 工具常用命令

查看防火墙状态

firewall-cmd--state

systemctl status firewalld

查看当前活动 zone 信息

firewall-cmd --get-active-zones

查看默认的 zone

firewall-cmd --get-default-zone

设置默认的 zone

firewall-cmd --set-default-zone=zone_name

查看指定 zone 的详细信息

firewall-cmd --info-zone=zone_name

查看当前 zone 可用的服务

firewall-cmd --list-services

查看所有的 zones

firewall-cmd --list-all-zones

查看当前所有 zone 名称

firewall-cmd --get-zones

查看现有的规则

firewall-cmd --list-all

重新加载防火墙规则

firewall-cmd--reload

1.5.2. 基于服务配置 firewalld 策略

  1. 基于服务添加策略

基本语法:

临时修改(重载失效)

firewall-cmd --add-service=service_name

永久修改(重载生效)

firewall-cmd --add-service=service_name--permanentfirewall-cmd--reload

案例:

安装 httpd 服务,并配置防火墙规则,httpd 是一个 web 服务,安装后可以通过虚拟机的 IP地址加上端口 80,即可访问到一个 apache 服务界面

安装

yum-yinstallhttpd

启动

systemctl start httpd

查看状态

systemctl status httpd

查看端口

ss-taunlp|grep80

测试访问

http:/192.168.19.128/

无法访问,原因是 firewalld 拦截

配置 firewalld 规则

firewall-cmd --list-all

firewall-cmd --add-service=http

备注:服务必须在/usr/lib/firewalld/services 目录中

ll /usr/lib/firewalld/services|grephttp

firewall-cmd --list-all


firewall-cmd--reloadfirewall-cmd --list-all

防火墙重载后,规则失效

永久配置:

firewall-cmd --add-service=http--permanent

永久配置,需要冲在防火墙才能生效配置


基于服务删除策略

firewall-cmd --remove-service=service_name

永久修改(重载生效)

firewall-cmd --remove-service=service_name--permanentfirewall-cmd--reload

案例

临时删除

firewall-cmd -remove-service=http


临时修改,重载后失效

永久修改


永久修改,需要重载

防火墙才能生效配置

1.5.3. 基于端口配置 firewalld 策略

基于端口添加策略

基本语法:

firewall-cmd --add-port=port/protocol
firewall-cmd --add-port=port/protocol--permanentfirewall-cmd--reload

案例

firewall-cmd --add-prot=80/tcp
firewall-cmd --add-prot=80/tcp--permanentfirewall-cmd--reload

基于端口删除策略

firewall-cmd --remove-port=port/protocol
firewall-cmd --remove-port=port/protocol--permanentfirewall-cmd--reload

案例:

firewall-cmd --remove-port=80/tcp
firewall-cmd --remove-port=80/tcp--permanentfirewall-cmd--reload

1.5.4. 基于规则配置 firewalld 策略(扩展)

基于规则添加策略

基本语法:

临时修改(重载失效)

firewall-cmd --add-rich-rule='rule 规则明细 action '
firewall-cmd --add-rich-rule='rule 规则明细 action '--permanent

action 对添加的策略实现的动作

动作

Reject 拒绝,对进来的流量直接拒绝

Accept 接收,对进来的流量接收

Drop 丢弃,对进来的流量包直接丢弃

reject 与 drop 的区别

DROP 动作只是简单的丢弃数据,并不反馈任何回应。需要 Client 等待超时,Client 容易发现自己被防火墙所阻挡

REJECT 动作则会更加礼貌的返回一个拒绝(终止)数据包,明确的拒绝对方的连接动作。连接马上断开,Client 会认为访问的主机不存在。

使用 Firewalld 和 rich rules 常见的网络访问控制场景:

源和目标地址过滤:
允许特定网段地址的访问

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.10.0/24 accept'

允许特定 IP地址访问

firewall-cmd --add-rich-rule=' rule family=ipv4 source address=192.168.10.129 accept'

服务过滤:
允许特定协议的访问

firewall-cmd --add-rich-rule='rule family=ipv4 service name=http accept'

协议过滤:
允许特定协议的访问

firewall-cmd --add-rich-rule='rule family=ipv4 protocol value=icmp accept'

源和目标端口过滤:
允许从特定端口访问特定目标端口

firewall-cmd --add-rich-rule='rule family=ipv4 service name=ssh source port=1024-65535 destination port=22 accept'

高级条件过滤

限制特定 IP地址的访问速率

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.19.10 limit value=3/m burst=5 accept'

表示源地址 192.168.19.10 允许每分钟三次封包,每次封包的数量不能超过 5 个!

网络地址转换和端口转发

启用源地址转换

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.19.10 masquerade'

启用源地址 192.168.19.10 伪装

firewall-cmd--permanent--add-rich-rule'rule family=ipv4 source address=192.168.10.1 drop'

基于规则删除策略

基本语法
临时修改(重载失效)

firewall-cmd --remove-rich-rule='rule 规则明细 action '

永久修改(重载生效)

firewall-cmd --remove-rich-rule='rule 规则明细 action '--permanentfirewall-cmd--reload

临时删除

firewall-cmd --remove-rich-rule='rule family=ipv4 source address="192.168.10.0/24" port port="80" protocol="tcp" accept'

永久删除

firewall-cmd --remove-rich-rule='rule family=ipv4 source address="192.168.10.0/24" port port="80" protocol="tcp" accept'--permanentfirewall-cmd--reload

2. 计划任务

2.1. 什么是计划任务

操作系统设置不可能完全由人去操作,对一些特顶时间的任务,我们可以设置计划任务,让服务在规定时间去执行。

2.2. Linux 中的计划任务

2.2.1. 周期性计划任务 crontab

基本语法:

crontab [ 选项 ]
-l:list,显示当前已经设置的计划任务
-e:使用 vim 编辑器编辑计划文件

  1. 计划任务的编辑

计划任务的规则语法格式,以行为单位,一行就是一个计划:分 时 日 月 周 要执行的命令(必须使用命令的完整路径,可以使用 which 查看)

取值范围

分:0-59

时:0-23

日:1-31

月:1-12

周:0-7,0 和 7 表示星期天

四个符号:

*:表示取值范围中的每个数字

-:表示做连续区间表达式的,表示 1-7;可以写为 1-7

/:表示每多少个执行一次,如:每 30 分钟一次,*/30

,:表示多个取值,例如每个月的 1 号 5 号 15 号执行,1,5,15

  1. 计划任务案例

**案例 1:**每月 1、10、22 日的 4:45 重启 network 服务

定制格式

# 分 时 日 月 周 /usr/bin/systemctl restart network4541,10,12 * * /usr/r/bin/systemctl restart network

**案例 2:**每周六、周日的 1:10 分 重启 network 服务

定制格式

# 分 时 日 月 周 /usr/bin/systemctl restart network101* *6,7/usr/r/bin/systemctl restart network

**案例 3:**每天 18:00 到 23:00 之间每隔 30 分钟重启 network 服务

定制格式

# 分 时 日 月 周 /usr/bin/systemctl restart network*/3018-23 * * * /usr/r/bin/systemctl restart network

**案例 4:**每隔两天的上午 8 点到 11 点的第三分钟和第十五分钟执行一次重启 network 服务

定制格式

# 分 时 日 月 周 /usr/bin/systemctl restart network3,158-11 */2 * * /usr/bin/systemctl restart network

案例 5:每月每周每天每小时每分钟,创建一个内容为 1 的文件名为 readme.txt 的文件

crontab-e
* * * * * /usr/bin/echo1>>/root/readme.txt

注 意: 计划任务设置完成后,确保计划任务服务是运行状态

systemctl status crond systemctl start crond
  1. 计划任务权限

crontab 通过 /etc/cron.allow(白名单)和 /etc/cron.deny(黑名单)文件来限制用户是否可以使用 crontab

规则如下:

  • 如果文件/etc/cron.allow 存在,则只允许在 cron.allow 提及的用户名使用。
  • 如果/etc/cron.allow 不存在,则检查/etc/cron.deny,然后允许 cron.deny 未提及的每个用户名在使用。
  • 空的/etc/cron.deny 表示每个用户都可以使用 crontab。
  • 如果两者都不存在,则只允许超级用户在使用。
  • 白名单优于黑名单,如果一个用户同时存在两个名单文件,则会被默认允许创建计划任务
  1. 计划任务的保存文件

计划任务的文件具体保存在/var/spool/cron/用户名称

案例:

crontab-e
*/5 * * * * /usr/bin/touch /tmp/linux.txt
su- user1crontab-e

系统中没有 user1 用户自行添加

*/5 * * * * /usr/bin/touch /tmp/user1.txt
exit

验证

ll /var/spool/cron/

注意:如果删除计划任务文件,等于删除了计划任务,也可以通过创建文件来创建计划任务

  1. 计划任务日志

在实际应用中,一般会通过计划任务日志,去 查看任务的运行情况

tail-f/var/log/cron

2.2.2.一次性计划任务

在 linux 系统下,有两个命令可以实现计划任务:crontab 与 at(第三方安装)

  • crontab:每天定时执行计划任务
  • at:一次性定时执行任务
  1. 安装 at

图形化自带 at,最小化需安装

yuminstallat-y
  1. 启动 atd 服务
systemctl start atd systemctlenableatd
  1. 案例

**案例 1:**三天后下午 5 点执行/bin/ls

at 5pm+3 days

at>/bin/ls >> /root/readme.txt

at>ctrl+d

注意:按键盘上的 ctrl + d 键保存退出

案例 2:明天下午 18 点,输出时间到指定的文件中

at18:00 tomorrow

at>date > /root/readme.txt

at>ctrl+d (退出)


查看还没有执行的计划任务

atq

at-l


查看计划任务的详细信息

at-c5



删除指定的计划任务

atrm 任务 id 删除任务

atrm4atrm5


计划任务权限

at 通过 /etc/at.allow(白名单) 和 /etc/at.deny(黑名单) 文件来限制用户是否可以使用 at

规则与 crontab 一致!

http://www.jsqmd.com/news/497725/

相关文章:

  • 小白救星!STM32CubeMX保姆级下载攻略(附最新版获取,零踩坑)
  • JVM学习——Gc Roots
  • BNU-25硕信息学奥赛day5
  • 神经网络与卷积神经网络(CNN)
  • 从零搭建 Java 养老代办服务系统:预约、护理、陪诊一体化
  • 与系统库同名python脚本文件引起的奇怪错误及其解决
  • 因缺乏具体资讯内容无法生成标题
  • Claude Code 命令大全
  • RAG相关知识点总结
  • 三星Galaxy S26系列,解锁科技新体验
  • 高校课题结题必须提供第三方软件测试报告吗?有哪些文件依据?
  • 2026年百家号代运营可靠服务商推荐榜:爱采购开户哪家好/爱采购开户哪家强/爱采购开户哪家靠谱/爱采购服务商咱们联系/选择指南 - 优质品牌商家
  • 2026年全球视野下的高端网站建设公司综合实力评析与选型指南
  • 保姆级教程!STM32 开发工具下载,新手也能一次搞定
  • ASR学习路径(音频算法工程师专属)
  • 2026制造业爱采购服务优质品牌推荐指南:衡水爱采购服务商/衡水百度爱采购/AI营销/GEO发展趋势/GEO哪家好/选择指南 - 优质品牌商家
  • ECS框架-输入管理信号系统
  • 平滑与断裂之间:S4-Info-Yi系统的哲学突破与数学挑战
  • 微信自动化机器人开发
  • Linux 入门学习
  • 2026食品饮料行业紫外杀菌光源推荐榜:222nm紫外灯、UV杀菌器、不锈钢杀菌器、大功率紫外灯、水处理杀菌器选择指南 - 优质品牌商家
  • 2026年最新电流互感器十大品牌排名与选型指南
  • 用阿里云开通短信服务
  • 新能源并网必装!电能质量在线监测装置:谐波、不平衡、电压扰动全监测,守住企业收益
  • Java 性能天花板:JIT 即时编译、分层编译与代码缓存深度调优指南
  • 抖音获客软件是真的吗?一文讲清真相
  • 当 AI 不再只 “聊天”:OpenClaw 的核心体验革新​
  • 建议收藏|8个降AI率工具测评:开源免费必看,助你轻松过关
  • 高性价比国产千兆网口芯片PT153S|PT153S直接替代RTL8153设计原理图|PT153S参数与性能
  • 如何使用 MySQL 的 EXPLAIN 语句进行查询分析?