CentOS7-部署指令集

文章目录

1. systemd、systemctl 服务管理

字母 d 是守护进程(daemon)的缩写。 systemd 这个名字的含义,就是它要守护整个系统。

systemd 是用于管理 Linux 所有系统资源。在 systemd 中,所有的服务、套接字、设备等都被视为 Unit,翻译为 单元

systemctl 是用于与 systemd 交互的 命令行工具systemctlCentOS7 的服务管理工具,用于管理这些 Unit,启动、停止、重启、查看状态以及管理 Unit

systemctl 提供了一组子命令来管理单个的 unit,其命令 格式 为:

systemctl [command] [unit]

📌 command 主要有:

  • start:启动 unit
  • stop:关闭 unit
  • restart:重启 unit
  • reload:不关闭 unit 的情况下,重新载入 unit 的配置文件,让设置生效。
  • daemon-reload:重载所有修改过的配置文件。
  • enable:设置 unit 开机启动
  • disable:设置 unit 开机不被启动
  • status:查看 unit 的状态,会列出是否正在运行、是否开机启动等信息。
  • is-active:查看 unit 是否正在运行
  • is-enable:查看 unit 是否开机启动
  • kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程 发送信号
  • show:列出 unit 的配置
  • mask:注销 unit,注销后你就无法启动这个 unit 了。
  • unmask:取消对 unit 的注销

查看服务状态

systemctl status sshd

启动服务

systemctl start sshd

停止服务

systemctl stop sshd

重启服务

systemctl restart sshd

重新加载服务

重新加载服务的配置文件,而无需重新启动,不会更改与各种服务进程关联的进程ID。

systemctl reload sshd

开机自启动

systemctl enable sshd

开机解除自启动

systemctl disable sshd

重载systemd

systemctl daemon-reload

reload 作用是重新加载 某个服务 程序的配置文件。

daemon-reload 作用是重新加载系统管理守护进程 (systemd) 的配置文件,而所有的 unit 配置文件都是作为 systemd 程序的配置文件存在的,所以会 重载所有修改过的配置文件。所以结论是:

  • 新添加 unit 配置文件时需要执行 daemon-reload
  • 有 unit 的配置文件发生变化时也需要执行 daemon-reload

daemon-reload 命令会做很多的事情,其中之一是重新生成依赖树(也就是 unit 之间的依赖关系),所以当你修改了 unit 配置文件中的依赖关系后如果不执行 daemon-reload 命令是不会生效的。

2. firewalld、firewalld-cmd 防火墙

CentOS6 及以前版本采用 iptablesCentOS7 采用新的 firewalld,不过 firewalld 底层仍然调用的是 iptables

firewalld-cmdfirewalld命令行工具

⚠️注: firewall-cmd 命令需要 firewalld 进程处于 运行 状态。

2.1 firewalld 防火墙服务相关操作

防火墙服务 firewalld 通过 systemctl 操作,命令如下:

## 显示防火墙状态
systemctl status firewalld

## 开启防火墙
systemctl start firewalld

## 关闭防火墙
systemctl stop firewalld

## 重启防火墙
systemctl restart firewalld

## 开机启用
systemctl enable firewalld

## 开机禁用
systemctl disable firewalld

## 查看服务是否开机启动
systemctl is-enabled firewalld

## 查看已启动的服务列表
systemctl list-unit-files|grep enabled

2.2 firewall-cmd 防火墙端口管理

开启端口

firewall-cmd --zone=public --add-port=443/tcp --permanent
  • –zone:作用域
  • –add-port=443/tcp:添加端口,格式为:端口 / 通讯协议
  • –permanent:永久生效,没有此参数重启后失效

关闭端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent

重启生效防火墙

firewall-cmd --reload

查看端口列表

firewall-cmd --permanent --list-port

查看指定端口开通情况

firewall-cmd --query-port=80/tcp

显示当前系统中的默认区域

firewall-cmd --get-default-zone

显示默认区域的所有规则

firewall-cmd --list-all

查看所有区域的所有规则

firewall-cmd --list-all-zones

伪装IP

防火墙可以实现 伪装IP 的功能,端口转发 就会用到这个功能。

## 检查是否允许伪装IP
firewall-cmd --query-masquerade

## 允许防火墙伪装IP
firewall-cmd --add-masquerade --permanent

## 禁止防火墙伪装IP
firewall-cmd --remove-masquerade --permanent

端口转发

端口转发 可以将指定地址访问指定的端口时,将流量 转发 至指定地址的指定端口。如果转发的目的不指定 IP 的话就默认为本机 IP,如果指定了 IP 却没指定端口,则默认使用来源端口。

📌 如果配置好端口转发之后不能用,可以检查下面两个问题:

  • 比如我将 80 端口转发至 8080 端口,首先检查本地的 80 端口和目标的 8080 端口是否开放监听
  • 其次检查是否允许 伪装IP,若没允许的话要 开启伪装IP
##  80 端口的流量转发至 8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

##  80 端口的流量转发至 192.168.0.1:80
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 --permanent

##  80 端口的流量转发至 192.168.0.1  8080 端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 --permanent

## 删除端口转发
firewall-cmd --remove-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 --permanent

📌 端口转发 用途:

  • 当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
  • 端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。

redis默认端口是 6379,mysql默认端口是 3306,如果不想外部访问,就会考虑将这些端口隐藏。

  1. 通过端口转发将 96379 端口转发至 6379,将 93306 端口转发至 3306。
  2. 防火墙关闭端口 6379、3306,打开端口 96379、93306。

这样,外部就不能直接通过端口 6379、3306 访问redis、mysql,只能通过 自定义 的端口 96379、93306 访问。

案例:📖 centos7 firewall-cmd主机之间端口转发

📌 引申: 微服务还可以通过网关 gateway 控制

微服务通过 gateway 端口转发,比如,gateway端口为 9080,manager-server端口为 8081,pay-server端口为 9081,我们不想外部直接访问服务manager-server、pay-server。

  1. 通过 gateway URL转发不同的微服务。
  2. 防火墙关闭端口 8081、9081,打开端口 9080。

这样,外部只能通过网关 gateway 的端口 9080 访问服务,再由gateway配置的路由规则进行服务转发。

IP黑名单

firewall-cmd --add-rich-rule='rule family=ipv4 source address=14.18.16.0/24 reject' --permanent

3. 服务管理 Unit 配置文件

Unit 一共分成12种。

  • Service unit:系统服务
  • Target unit:多个 Unit 构成的一个组
  • Device Unit:硬件设备
  • Mount Unit:文件系统的挂载点
  • Automount Unit:自动挂载点
  • Path Unit:文件或路径
  • Scope Unit:不是由 Systemd 启动的外部进程
  • Slice Unit:进程组
  • Snapshot Unit:Systemd 快照,可以切回某个快照
  • Socket Unit:进程间通信的 socket
  • Swap Unit:swap 文件
  • Timer Unit:定时器

3.1 查看系统上的 Unit

systemctl 提供了子命令可以查看系统上的 unit,其命令 格式 为:

systemctl [command] [–type=TYPE] [–all]

📌 command 主要有:

  • list-units:列出当前已经启动的 unit,如果添加 --all 选项会同时列出没有启动的 unit。
  • list-unit-files:根据 /lib/systemd/system/ 目录内的文件列出所有的 unit。
  • type=TYPE:可以过滤某个类型的 unit。

⚠️注: systemctl 不加参数,其实等同于 systemctl list-units

3.1.1 查看 Unit

## 列出正在运行的 Unit
systemctl list-units

## 列出所有Unit,包括没有找到配置文件的或者启动失败的
systemctl list-units --all

这个列表显示每个配置文件的状态,一共有四种。

  • enabled:已建立启动链接
  • disabled:没建立启动链接
  • stat
### 安装BIND软件包 为了在CentOS 7部署DNS服务器,需要先确认系统已经安装了必要的软件包。如果尚未安装,则可以通过`yum`命令来完成安装工作[^3]。 ```bash yum install -y bind bind-utils ``` 此命令会自动下载并安装BIND及其工具集到操作系统中。 ### 编辑主配置文件 安装完成后,下一步是对BIND的主要配置文件进行修改。主要配置文件通常位于`/etc/named.conf`路径下。该文件包含了关于区域定义和服务设置的重要信息[^1]。 对于基本的DNS服务启动而言,在`named.conf`内至少要指定正向和反向查找区的数据位置以及允许查询这些资源记录的客户端范围。例如: ```conf options { listen-on port 53 { any; }; allow-query { any; }; }; zone "example.com" IN { type master; file "/var/named/example.com.zone"; }; ``` 上述示例设置了监听所有接口上的UDP/TCP端口53,并接受来自任何地方发起的查询请求;同时声明了一个名为`example.com.`的权威域,其对应的SOA、NS和其他RR数据存储于特定目录下的`.zone`文件里。 ### 创建Zone文件 按照之前提到的例子创建相应的区域数据库文件是非常重要的一步。假设正在处理的是一个叫做`example.com.`的域名空间,那么应该建立如下所示的内容作为模板[^2]: ```conf $TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023091001 ; Serial 3600 ; Refresh 1800 ; Retry 1209600 ; Expire 86400 ) ; Minimum TTL NS ns1.example.com. ns1 A 192.168.1.10 www CNAME example.com. mail MX 10 mailserver.example.com. ``` 这里定义了一些常见的资源记录类型,比如起始授权机构(SOA),名称服务器(NS), 别名(CNAME) 和邮件交换器(MX)。 ### 启动与验证服务状态 最后一步就是开启named守护进程并将它设为开机自启项。这可以借助systemctl命令轻松实现: ```bash systemctl start named systemctl enable named ``` 通过执行以上指令之后,就可以利用dig或host这类诊断工具来进行简单的测试以确保一切正常运作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会叫的狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值