运维实践 | 运维打工人必备 CentOS-Linux/Stream-8 服务器系统基础安装与配置实践...

news/2024/12/1 5:33:44/

欢迎关注「全栈工程师修炼指南」公众号

点击 👇 下方卡片 即可关注我哟!

设为星标⭐每天带你 基础入门 到 进阶实践 再到 放弃学习

专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享

  花开堪折直须折,莫待无花空折枝 


作者主页:[ https://www.weiyigeek.top ]  

博客:[ https://blog.weiyigeek.top ]

作者<开发安全运维>学习交流群,回复【学习交流群】即可加入


文章目录:

663c898e3f81cf8ae9722b761ed99a51.png

本文为作者原创文章,为尊重作者劳动成果禁止非授权转载爬取,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。


0x00 前言简述

描述:本章主要记录了作者在工作生产环境中使用 redhat社区版本 CentOS Linux 8 / CentOS Stream 8 说明以及服务器系统安装基础设置,和CentOS发行版版本新特性配置实践,帮助各位运维人快速入手运维配置,由于CentOS即将停止维护了,本文也可能后续不在进行更新,算是针对CentOS 8 系统运维的一个总结,希望大家多多支持我哟。

若需要CentOS8安全加固脚本的童鞋可以在公众号中回复【CentOS8安全加固】关键字留言。

a0a10e56486cd669afaef36ea2c3c8cb.png

百度百科介绍:

  •  CentOS 8 是CentOS项目发布的开源类服务器操作系统,于2019年9月24日正式发布。

  •  CentOS 8 是一个稳定、高预测性、高管理性、高重复性的Linux平台,由RedHat企业级Linux(RHEL)的源代码进行再发行。CentOS 8基于Fedora 28和内核版本4.18,为用户提供一个稳定的、安全的、一致的基础以跨越混合云部署,并支持传统和新兴工作负载所需的工具。

1.CentOS Stream 8 将停止更新维护?

目前CentOS官方提供两种Linux发行版:

CentOS Linux: 一致、可管理的平台,适合各种部署。对于一些开源社区来说,它是一个坚实的、可预测的基础。
CentOS Stream: 持续交付的发行版,在Red Hat Enterprise Linux(RHEL)开发之前跟踪,定位为Fedora Linux和RHEL之间的中游(最新)。

在 2020 年 12 月所宣布的,CentOS 计划已将重点从 CentOS Linux 转移到 CentOS Stream,但是 CentOS Stream 8 也将于 2024 年结束迭代更新补丁, 所以推荐大家使用其他发行版本(例如,作者企业中线上环境使用的是Ubuntu及KylinOS(银河国产系统),或者debian也是不错的选择,但是可能国产化系统是趋势【虽然多半是套壳😳】),

以下是CentOS官网针对各种版本的预期生命周期结束 (EOL) 日期的说明,所以迁移已经非常紧急了。

  • CentOS Linux 7 EOL:2024-06-30

  • CentOS Linux 8 EOL:2021-12-31 (已经停止维护了)

  • CentOS Stream 8 EOL:2024-05-31

  • CentOS Stream 9 EOL:预计 2027 年,取决于 RHEL9 结束的“全面支持阶段”

其 CentOS Linux 与 CentOS Stream 两者间的区别, 有兴趣的朋友可以了解: https://www.centos.org/cl-vs-cs/ ,大致如下:

  • 上游与下游:CentOS Linux是Red Hat Enterprise Linux(RHEL)的重建版本(即它是RHEL的下游),另一方面 CentOS Stream 是 RHEL 的上游公共开发分支,CentOS Stream 8 是 RHEL 8 下一个次要版本的上游。

  • 更新频率: CentOS Linux 新的次要版本由大量更新组成, 次要版本之间提供较小批次的更新。CentOS Stream 更新不会批量发布到次要版本中,而是在准备就绪时发布。

  • 贡献模型: CentOS Linux 更改涉及到为发行版中包含的上游项目做出贡献(需要周期时间长),Cento Stream 提供了一种直接贡献的方式,将这一过程缩短到几周或几天。

  • 测试过程:针对 CentOS Linux 和 Cento Stream 的测试非常相似,但主要不同于发生事件的时间。

温馨提示: 若有需要安装使用KylinOS V10服务器操作系统,可以参考作者的发布的KylinOS(银河麒麟国产系统)入门安装配置相关文章。

  • 企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇 【 https://mp.weixin.qq.com/s/yqd1Qtog9wy8L5sgvgcEOQ 】

  • 企业实践 | 如何在阿里云裸金属服务器上使用UEFI模式实践安装国产银河麒麟V10操作系统入门配置篇 【 https://mp.weixin.qq.com/s/489ALphpt1nx1pvFcGpD9g 】

2.CentOS Linux/Stream 8 系统镜像下载

描述: 我们访问CentOS官网点击Download或者直接访问https://www.centos.org/download/进行CentOS Steam 8版本,并且选择对应系统架构,例如此处我服务器架构是X86_64, 即点击此进行下载。

ISO 版本说明:

  • X86_X64 带64位的32位扩展版(一般安装这个)

  • ARM64 (aarch64) 嵌入式,适用于微端(树莓派,机械臂,机械中控)

  • IBM Power (ppc64le) 专用于IBM POWER服务器

官方链接: http://isoredirect.centos.org/centos/8-stream/isos/x86_64/
镜像站下载地址如下所示,此处作者下载的是CentOS-Stream-8-x86_64-latest-boot.iso原来的mini版本,其iso提交最小。

  • http://mirrors.aliyun.com/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-boot.iso

  • http://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/isos/x86_64/

7d0bca93fe373a91c953e8bbe403051b.png

CentOS Linux 8 已经停止维护了,CentOS官方默认未显示其下载ISO链接,但我们可以通过国内的镜像源站进行对应ISO镜像下载, CentOS Linux 8 当前最后版本为8.5.2111,例如 阿里云镜像源站。

官方链接:http://isoredirect.centos.org/centos/8/isos/x86_64/ (基本已经失效了)
镜像站下载:http://mirrors.aliyun.com/centos/8.5.2111/isos/x86_64/

f18eb2dfd7b6a88a766dc4b9619c4d4d.png

温馨提示: 截止日期为2024年,适用于CentOS Stream 8和CentOS Linux 7。有关升级和迁移选项的信息,请查看CentOS博客文章 [ https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/ ] 。

参考地址:
CentOS 官网: https://www.centos.org
CentOS 帮助文档: https://docs.centos.org


0x01 系统安装

安装 CentOS Linux 8

安装环境说明

  • 1.CentOS Linux 8.0.1905

  • 2.vSphere 6.7 (Hypervisor)

安装简约流程

  • Step1.加载ISO镜像到系统启动,选择安装CentOS8.X即可;

f7690b5d7c85a634d4ef3b779e71b5e9.png

  • Step2.进行选择安装信息摘要安装,按照图中上述序号进行配置(重点配置根据需要进行安装目的地选择以及自定义分区swap分区大小)

3f7ed8217ec5ed18a47215bc33c1feb1.png

  • Step3.选择安装选择一般选择前三个选项(带GUI的服务器,服务器,最小安装);

06f9fb696d41c120f875f0e3325e1d12.png

  • Step4.点击下一步进行安装然后,设置用户根密码即可,等待安装完成重启机器即可;

7b6b71458f9e9ea846fec938fe1b22af.png

温馨提示: 由于 CentOS Linux 8 已经停止维护了,官方建议从CentOS Linux 8转换为CentOS Stream 8,可以执行如下命令进行转换。

dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
dnf distro-sync

安装 CentOS Stream 8

描述: 实际上CentOS Stream 8 的安装类似于 CentOS Linux 8 的安装,具体安装流程可以查看作者安装CentOS8服务器系统视频。

B站专栏视频地址:https://space.bilibili.com/385802642/video


0x02 基础配置

1.系统网络配置

描述:由于CentOS8已经弃用network.service来管理网络,而采用nmcli进行网络所以本节简单的记录如何采用nmcli进行CentOS8网络的配置;

方式1.采用手动进行网络配置文件

# 网卡配置文件目录: /etc/sysconfig/network-scripts
# 配置修改
sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens192
sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/g' /etc/sysconfig/network-scripts/ifcfg-ens192
sed -i 's/BOOTPROTO=\"dhcp\"/BOOTPROTO=\"static\"/g' /etc/sysconfig/network-scripts/ifcfg-ens192
cat >> /etc/sysconfig/network-scripts/ifcfg-ens192 <<EOF
IPADDR=10.20.172.241
NETMASK=255.255.255.0
GATEWAY=10.20.172..1
EOF# 重启网卡
ifdown ens192
ifup ens192# 若没有上述命令也可以采用nmcli命令
nmcli conn up eth0
nmcli conn down eth0

方式2.采用nmcli进行OS8网络的配置
1.初始CentOS8静态IP设置:(配置文件参考上面)

nmcli connect delete '有线连接 1' && nmcli disconnect ens192 && nmcli connect ens192 && nmcli c load /etc/sysconfig/network-scripts/ifcfg-ens192

2.初始CentOS8动态IP设置:

nmcli connect delete '有线连接 1' 
nmcli connect add type ethernet con-name ens192 ifname ens192 ipv4.method manual

3.切换建立指定的 Connection 链接

nmcli conn add type ethernet con-name eth0 ifname ens192 ipv4.addr 100.20.172.242/24 ipv4.gateway 100.20.172.1 ipv4.dns '223.6.6.6,223.5.5.5' ipv4.method manual
nmcli conn up eth0

补充说明:

  • ipv4.method:设置为manual表示BOOTPROTO=none即只有静态ip。如果设置为auto则表示动态获取IP;

  • 也可以通过nmtui 命令进行图形化界面的管理设置网卡;


配置网卡支持及自动获取IPV6

描述:通常默认当前安装的CentOS系统是支持IPV6,如果机器网卡IPV6未启用可以参照如下方式。

# 开启系统ipv6支持,修改 /etc/sysctl.conf 并增加下列配置。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0# 验证是否生效
sysctl -a | grep ipv6 | grep disable# 修改网卡配置文件增加IPv6配置选项,自动获取IPV6地址(注意需要交换机或者路由器开启ipv6地址分配)。
vim /etc/sysconfig/network-scripts/ifcfg-{网卡名称}
DHCPV6C=yes# 增加IPv6默认路由
vim /etc/sysconfig/network-scripts/route6-eth0
default dev {网卡名称}# 重启网络
service network restart

2.系统DNS配置

描述: 我们可以使用如下Shell命令快速配置系统的上游DNS。

# Modify the DNS server
# DNSPod: 119.29.29.29      Alidns: 223.5.5.5 223.6.6.6
# Google: 8.8.8.8 8.8.4.4   Cloudflare: 1.1.1.1 1.0.0.1
# Baidu: 114.114.114.114
# Internal : Your intranet domain name resolution server
VAR_DNS_SERVER=( "223.5.5.5" "119.29.29.29 " "192.168.10.254"  )# 此处配置的是阿里云IPV4 DNS与阿里云IPV6 DNS
sed -i -e "s/^#FallbackDNS=.*/FallbackDNS=223.6.6.6 2400:3200::1 2400:3200:baba::1/" -e "s/^#DNSSEC=.*/DNSSEC=allow-downgrade/" -e "s/^#DNSOverTLS=.*/DNSOverTLS=opportunistic/" /etc/systemd/resolved.conf# 此处配置DNSPod 以及 阿里云 DNS
for dns in ${VAR_DNS_SERVER[@]};do grep -q "${dns}" /etc/systemd/resolved.conf if [ $? != 0 ];then  echo -e "\033[32mnameserver ${dns} \033[0m]"sed -i "/#DNS=/i DNS=${dns}" /etc/systemd/resolved.conf;fi
done# 重启 systemd-resolved 解析服务
systemctl restart systemd-resolved && systemctl enable systemd-resolved# 创建 resolv.conf 软连接
find /etc/resolv.conf -delete
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

3.yum仓库镜像配置

描述: CentOS Linux/Stream 镜像源配置说明,在2022年1月31日,CentOS 团队从官方镜像中移除CentOS8的所有包,直接使用yum下载会出现 ERROR:Cannot prepare internal mirrorlist: No URLs in mirrorlist,故需要设置yum源,否则无法提供下载, 由于其发行版本有差异此处将Stream版本以及原始版本都进行验证。

# CentOS 过期源(centos-vault):https://developer.aliyun.com/mirror/centos-vault
# CentOS arm源(centos-altarch):https://developer.aliyun.com/mirror/centos-altarch/
# CentOS Stream源(centos-stream):https://developer.aliyun.com/mirror/centos-stream
# CentOS debuginfo源(centos-debuginfo):https://developer.aliyun.com/mirror/centos-debuginfo/

快速配置系统镜像源shell命令如下:

# CentOS-Stream 8 
local repo_name
if [ -f /etc/yum.repos.d/CentOS-Stream-BaseOS.repo ];thenrepo_name="-BaseOS.repo"echo -e "\033[32m 备份 /etc/yum.repos.d/${repo_name} 文件中...... \033[0m"# rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repocp /etc/yum.repos.d/${repo_name}.bak ${BACKUPDIR}sed -i -e 's|mirrorlist=|#mirrorlist=|g' -e 's|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*
fi# CentOS-Linux-8
if [ -f /etc/yum.repos.d/CentOS-Base.repo ];thenrepo_name="CentOS-Base.repo"echo -e "\033[32m 备份 /etc/yum.repos.d/${repo_name} 文件中...... \033[0m"rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repocp /etc/yum.repos.d/${repo_name}.bak ${BACKUPDIR}# centos8 官方源已下线,建议切换centos-vault源curl -o /etc/yum.repos.d/${repo_name} https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo# 删除"mirrors.cloud.aliyuncs.com" 及 "mirrors.aliyuncs.com" 字符串所在的行.sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/${repo_name}# sed -i 's/releasever\//releasever-stream\//g' /etc/yum.repos.d/${repo_name}
fi# 清理缓存并创建仓库元数据
sudo dnf clean all && sudo yum makecache# Centos 8 - Epel 阿里云镜像快速配置
yum install -y epel-release 
sed -i -e 's|metalink=https://mirrors.fedoraproject.org|#metalink=https://mirrors.fedoraproject.org|g' \ -e 's|#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|g'  /etc/yum.repos.d/epel.repo
dnf repolist epel -v

4.同步时间配置

描述: 在CentOS8.0中默认不再支持ntp软件包,时间同步将由chrony来实现,所以实现时间同步可以采用以下方法

  • chrony :推荐使用

  • ntp :继续使用它只不过需要额外安装

时间时区:

# 方式1
cp /etc/localtime{,.bak}
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 方式2
timedatectl
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai

chrony服务时间同步

# Modify the NTP server
VAR_NTP_SERVER=("ntp.aliyun.com" "ntp.tencent.com"  "192.168.10.254" )# 安装 Chrony 客户端配置
if [[ $(rpm -qa | grep -c "chrony") -eq 0 ]];thendnf install -y chrony
fi# 备份 /etc/chrony.conf 文件
cp /etc/chrony.conf{,.bak}
grep -E -q "^server" /etc/chrony.conf | sed -i 's/^server/# server/g' /etc/chrony.conf 
grep -E -q "^pool" /etc/chrony.conf | sed -i 's/^pool/# pool/g' /etc/chrony.conf # 配置上游DNS
for ntp in ${VAR_NTP_SERVER[@]};do log::info "ntp server => ${ntp}"if [[ ${ntp} =~ "ntp" ]];thenecho "pool ${ntp} iburst maxsources 4" >> /etc/chrony.conf;elseecho "pool ${ntp} iburst maxsources 1" >> /etc/chrony.conf;fi
done# 重启服务
systemctl enable chronyd.service && systemctl restart chronyd.service

ntp服务时间同步 (丢弃)

描述: CentOS Stream 8 中不在支持 ntpdate 命令的使用,推荐使用 chronyd 处理时间同步

# 将通过wlnmp提供的源,来安装ntp服务
# 添加wlnmp源 - 时间同步 - 时间同步
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm && yum install wntp && ntpdate ntp1.aliyun.com# 也可以编写定时任务,实现每3分钟向ntp1.aliyun.com同步一次时间,并将系统时间设置为硬件时间
crontab -l && systemctl enable crond.service
$crontab -e
*/3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null;/usr/sbin/hwclock -w

5.用户登录失败锁定配置

描述: 在 CentOS 8 中,您可以使用 pam_faillock.so 模块来配置登录失败锁定功能,该模块可以防止恶意用户通过暴力破解密码的方式尝试登录。

要配置 pam_faillock.so,您需要进行以下步骤:

  1. 打开 /etc/pam.d/system-auth 文件进行编辑:

    sudo vi /etc/pam.d/system-auth
  2. 在文件中找到 auth 部分,添加以下行:

    auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=600
    auth        [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600

    这些行将在用户进行身份验证之前和之后执行相关的 pam_faillock.so 模块功能。第一行是在用户身份验证之前执行,第二行是在用户身份验证失败后执行。
    audit 表示如果登录的用户没有找到,则将用户名信息记录到系统日志中。
    deny=3 表示用户在连续 3 次登录失败后将被锁定。您可以根据需要更改此值。
    unlock_time=600 表示用户被锁定后将在 600 秒(10 分钟)后自动解锁。您可以根据需要更改此值。

    af7e5cf23b94648bc846d5c5433c3322.png

  3. 保存并关闭文件。

  4. 重复步骤 1-3,编辑以下文件:

    sudo vi /etc/pam.d/password-auth

    这是针对密码更改操作的文件,在这个文件中进行相同的配置更改。

完成以上步骤后,您已成功配置了 pam_faillock.so 模块,登录失败的用户将会被临时锁定,直到达到锁定阈值或解锁时间结束。

通过 pam_faillock 模块,将登录尝试失败的数据储存在 /var/run/faillock 目录下每位用户的独立文件中,并且可以通过 faillock 命令查看,如下图所示:

# 查询是否有暴力破解
faillock# admin:# When                Type  Source                                           Valid# 2023-06-15 15:32:55 RHOST 192.168.228.1                                        V# .....  # 2023-06-15 15:33:31 RHOST 192.168.228.1                                        V# 重置失败次数
faillock --user admin --reset

a2543046ad299d963739c744c91db0b4.png

温馨提示:
  • 如果只配置 password-auth 文件,输入密码错误3次后,通过tty终端登录的时候是没问题,可以限制住;但是如果通过其它普通用户用:su - admin2切换过来,则没有限制住;

  • 如果只配置 system-auth 文件,则不会锁住,也不会生成登录失败日志 /var/run/faillock,执行命令faillock也不会有登录失败日志)


偷偷的告诉你哟?极客全栈修炼】微信小程序已经上线了,

可直接在微信里面直接浏览博主博客了哟,后续将上线更多有趣的小工具。


6.用户密码加密类型配置

描述: 在 CentOS 8 中,pam_unix.so 模块是用于进行基本的用户名和密码验证的模块,authtok_type 参数用于指定通过哪种方式传递用户密码给 PAM 模块进行验证。

authtok_type 参数有以下几个选项可供使用:

  • clear:明文方式传递密码。这是默认选项,密码以明文形式传递给 PAM 模块进行验证。

  • md5:使用 MD5 哈希算法对密码进行加密后传递给 PAM 模块进行验证。

  • sha256:使用 SHA-256 哈希算法对密码进行加密后传递给 PAM 模块进行验证。

  • sha512:使用 SHA-512 哈希算法对密码进行加密后传递给 PAM 模块进行验证。

要使用 authtok_type 参数进行配置,您可以按照以下步骤进行操作:

  1. 打开 /etc/pam.d/system-auth 文件进行编辑:

    sudo vi /etc/pam.d/system-auth
  2. 在文件中找到 auth 部分的 pam_unix.so 行添加 authtok_type 参数。例如,如果您想使用 SHA-512 加密算法,则将行修改为:

    auth        sufficient    pam_unix.so try_first_pass use_authtok authtok_type=sha512 nullok sha512 shadow remember=3

    这将使 pam_unix.so 模块使用 SHA-512 加密算法来验证密码, 并且记录三次用户历史命令。

  3. 保存并关闭文件。

  4. 重复步骤 1-3,编辑以下文件:

    sudo vi /etc/pam.d/password-auth

    这是针对密码更改操作的文件。在这个文件中进行相同的配置更改。

完成以上步骤后,您已成功配置了 authtok_type 参数,PAM 模块将以指定的加密方式验证用户密码,增加了密码的安全性。

温馨提示: 请注意如果您更改了 authtok_type 参数,请确保用户密码已使用相应的加密算法进行存储,其历史密码被加密存储在cat /etc/security/opasswd文件中

# 加密方式为 SHA512 
VAR_PASS_ENCRYPT=SHA512
# 加密类型一定要对应
egrep -q "^\s*ENCRYPT_METHOD\s+\S*(\s*#.*)?\s*$" /etc/login.defs && sed -ri "s/^(\s*)ENCRYPT_METHOD\s+\S*(\s*#.*)?\s*$/ENCRYPT_METHOD ${VAR_PASS_ENCRYPT}/" /etc/login.defs || echo "ENCRYPT_METHOD  ${VAR_PASS_ENCRYPT}" >> /etc/login.defs


7.用户密码复杂度配置

描述: 在 CentOS 8 中,pam_pwquality.so 模块用于配置密码策略,以提高密码的安全性。下面是在 CentOS 8 中使用 pam_pwquality.so 的示例:

  1. 首先,确保已经安装了 pam_pwquality.so 模块。如果没有安装,可以使用以下命令进行安装:

    sudo dnf install pam_pwquality
  2. 打开 /etc/pam.d/system-auth 文件,这是系统级别的 PAM 配置文件。

  3. 在文件中找到 password 部分,并添加以下行:

    password    requisite     pam_pwquality.so try_first_pass local_users_only enforce_for_root minlen=12 retry=3 difok=6 minclass=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 usercheck=1

    这个配置表示密码必须包含至少8个字符,并且至少包含一个数字、一个小写字母、一个大写字母和一个特殊字符。

    minlen=12 设置的新密码的最小长度
    retry=3 表示在密码不符合要求时,用户有3次重试机会
    difok=6 表示设置的新密码中允许的最大连续相同字符数
    minclass=3 表示设置的新密码的包含几种字符类型(大小写、数字、其他)
    dcredit=-1 表示密码中至少包含一个数字
    ucredit=-1 表示密码中至少包含一个大写字母
    lcredit=-1 表示密码中至少包含一个小写字母
    ocredit=-1 表示密码中至少包含一个特殊字符
    usercheck=1 表示新密码中不能包含用户名字符串

    你可以根据需要进行自定义配置。

  4. 保存文件并关闭。

现在,当用户尝试更改密码时,pam_pwquality.so 模块将强制执行密码策略,并确保密码的安全性。

8.用户历史密码记录配置

描述: 在 CentOS 8 中,pam_pwhistory.so 模块用于配置密码历史记录策略,以防止用户在一段时间内多次使用相同的密码。下面是在 CentOS 8 中使用 pam_pwhistory.so 的示例:

  1. 首先,确保已经安装了 pam_pwhistory.so 模块。如果没有安装,可以使用以下命令进行安装:

    sudo dnf install pam_pwhistory
  2. 打开 /etc/pam.d/system-auth 文件,这是系统级别的 PAM 配置文件。

  3. 在文件中找到 password 部分,并添加以下行:

    password    required    pam_pwhistory.so remember=5 retry=3 use_authtok

    这个配置表示密码历史记录中将记住最近5个密码,用户在更改密码时将无法使用这些密码。
    retry=3 表示在密码不符合要求时,用户有3次重试机会
    use_authtok 参数表示将使用用户输入的密码进行验证。

    你可以根据需要进行自定义配置,比如将 remember 的值更改为其他数字。

  4. 保存文件并关闭。

现在,当用户尝试更改密码时,pam_pwhistory.so 模块将检查密码是否与最近的密码重复,并阻止用户使用重复的密码。这有助于增加密码的安全性。


0x03 应用部署

CentOS8中快速安装Docker容器环境

描述: 多的不说,直接上脚本吧,运行如下脚本直接在机器上安装好 Docker 容器运行环境。

# 1.卸载旧版本 sudo yum remove docker docker-engine docker.io containerd runcsudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2.安装相关依赖包sudo yum install -y yum-utils# 3.设置稳定镜像源存储库,此处采用阿里的docker源(CentOS8)# DOCKER_COMPOSE_MIRRORS='https://github.com'# DOCKER_CE_MIRRORS='https://download.docker.com'# DOCKER_MIRRORS='https://docker.io'# Official# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# sed -i 's#download.docker.com#mirrors.aliyun.com/docker-ce#' /etc/yum.repos.d/docker-ce.repoyum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 使用 CentOS 8 的源# echo "8" > /etc/yum/vars/centos_version# sed -i 's/$releasever/$centos_version/g'  /etc/yum.repos.d/docker-ce.repo# 4.查看Docker特定的相关版本,使用如下命令列出可用的版本dnf list docker-ce  --showduplicates | sort -r | head -n 2dnf list docker-ce-cli --showduplicates | sort -r | head -n 2dnf list containerd.io --showduplicates | sort -r | head -n 2# 5.安装Docker最新版本,此处我们指定的是最新版本。# 使用第二列中的版本字符串安装特定的版本,例如:containerd.io.x86_64  1.6.9-3.1.el8 docker-ce-stable# $sudo apt-get install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io# dnf install docker-ce-3:23.0.1-1.el8 docker-ce-cli-1:23.0.1-1.el8 containerd.io-1.6.9-3.1.el8 -ysudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 6.将当前(低)用户加入docker用户组然后重新登陆当前用户使得低权限用户sudo gpasswd -a ${VAR_USER_NAME} docker# 7.配置docker后台守护进程mkdir -vp /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{"data-root":"/var/lib/docker","registry-mirrors": ["https://xlx9erfu.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"storage-driver": "overlay2","log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "100m","max-file": "10"},"live-restore": true,"dns": ["223.6.6.6","114.114.114.114"],"insecure-registries": [ "harbor.weiyigeek.top"]
}
EOF# 8.自启与启动sudo systemctl daemon-reloadsudo systemctl enable docker.servicesudo systemctl restart docker.service# 9.验证安装的 docker 服务systemctl status docker.service --no-pager -ldocker info# 10.启动一个 hello-world 容器,验证是否正常docker run --rm hello-world

执行效果:

83f56f01076869027cc95468b46fdf7e.png


0x04 入坑解决

1.CentOS8.x忘记密码后如何更改?

1.重启服务器在选择内核版本界面上按e进入编辑Grub界面,将cl-root 后的ro 变成 rw init=/sysroot/bin/bash

b2023bb3eb3b68a2e267f8a0fa692ed3.png

2.同时按住Ctrl和x键,系统进入emergency(紧急情况)模式。

3.运行命令 "chroot /sysroot/" 切换回原始系统然后即可修改密码,修改完密码运行命令“touch /.autorelabel”,使SELinux生效密码生效。

/# chroot /sysroot/
/# LANG=en         (把语言改为英文)
/# passwd
/# touch /.autorelabel

4.同时按住Ctrl和d键,输入reboot,回车,系统重新启动。

亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?

a6d884b58df0a0ed0ac8928176f57061.jpeg


2.CentOS8.x系统时间差8个小时如何解决?

问题描述:查看系统时间发现系统时间和Universal time时间相差8个小时,实际上是时区配置的问题,很简单直接上解决办法。

$date
Thu May 14  21:13:32 UTC 2020$timedatectlLocal time: 一 2020-05-14 21:13:19 CSTUniversal time: 一 2020-05-14 13:13:19 UTC  #实际应该的时间RTC time: 一 2020-05-14 13:13:19Time zone: Asia/Shanghai (CST, +0800)NTP enabled: no
NTP synchronized: noRTC in local TZ: noDST active: n/a

解决方法:

#1.查看系统时区并删除当前系统所处的分区
ls /usr/share/zoneinfo/
sudo rm /etc/localtime#2.从/usr/share/zoneinfo/中创建软连接以替换当前的时区信息,直接选择Universal:
sudo ln -s /usr/share/zoneinfo/Universal /etc/localtime#3.再次查看系统时间时间恢复正常

本文至此完毕,更多技术文章,尽情等待下篇好文!

原文地址: https://blog.weiyigeek.top/2020/1-18-197.html

如果此篇文章对你有帮助,请你将它分享给更多的人! 

cc71c0a1552bb823a903e7176f096a3f.gif

e6d5af29f8486ff0be0259460ff279fe.png 学习书籍推荐 往期发布文章 06cff758350084c3f0886abe812ee830.png

公众号回复【0008】获取【Ubuntu22.04安装与加固脚本】

公众号回复【10001】获取【WinServer安全加固脚本】

公众号回复【10002】获取【KylinOS银河麒麟安全加固脚本】

公众号回复【0011】获取【k8S二进制安装部署教程】

公众号回复【0014】获取【Nginx学习之路汇总】

公众号回复【0015】获取【Jenkins学习之路汇总】

公众号回复【10005】获取【adb工具刷抖音赚米】

 热文推荐  

  • 企业运维实践-如何在K8S集群环境Gitlab+Jenkins+Jmeter+Grafana技术中实现自动化分布压力测试数据展示

  • 企业运维 | Nginx服务在Docker与Kubernetes容器环境中快速搭建部署实践

  • 【企业运维实践】丢弃手中的docker build ,使用Kaniko直接在K8S集群或Containerd环境构建推送容器镜像

  • 企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇

  • 网安等保-国产Linux操作系统银河麒麟KylinOS-V10SP3常规配置、系统优化与安全加固基线实践文档

欢迎长按(扫描)二维码 取更多渠道哟!

ed134a357188aff91e3713409cdc007b.gif

欢迎关注 【全栈工程师修炼指南】(^U^)ノ~YO

添加作者微信【weiyigeeker 】 一起学习交流吧!

关注回复【学习交流群】即可加入【安全运维沟通交流小群

温馨提示: 由于作者水平有限,本章错漏缺点在所难免,希望读者批评指正,若有问题或建议请在文章末尾留下您宝贵的经验知识,或联系邮箱地址

master@weiyigeek.top 或 关注公众号 [全栈工程师修炼指南] 留言。

点个【赞 + 在看】吧!

点击【"阅读原文"】获取更多有趣的知识!   


http://www.ppmy.cn/news/413924.html

相关文章

AUTOSAR】UDS协议的代码分析与解读(八)----UDS安全访问27h和通讯控制28h

8.9 安全访问 Security Access (27h) 由于保密、排放或安全的原因&#xff0c; 安全访问服务提供一种方法以方便访问受限制的数据或诊断服务。 支持安全访问的ECU应该实现种子和密钥的合理算法&#xff0c;该算法应在特定文档中记录&#xff0c;而只有特定的少数 人可以访问该文…

【Python 随练】不相同的三位数字

题目&#xff1a; 有 1、2、3、4 个数字&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff1f;在控制台输出出来。 简介&#xff1a; 在本篇博客中&#xff0c;我们将使用Python代码解决一个数学问题&#xff1a;如何使用数字1、2、3和4组合成互不相同且无重复…

青龙面板 口味王新脚本

口味更新了题库 js脚本文件下载 js脚本文件下载 链接:https://caiyun.139.com/m/i?165CdSgn5IVnm 提取码:xG41提醒&#xff1a;如脚本运行错误请按照依赖 依赖&#xff1a;babel/parser xpath xmldom jsdom node-jsencrypt axiosv0.27.2 依赖安装方式: 高级青龙面包可以直…

Python语言画蓝色妖姬

import turtle# 设置初始位置 turtle.penup() # 提起画笔 turtle.left(90) # 逆时针旋转九十度 turtle.fd(200) # 向前移动一段距离 fdforward turtle.pendown() # 放下画笔移动画笔开始绘制 turtle.right(90) # 顺时针旋转九十度# 花蕊 turtle.fillcolor("blue&quo…

Xshell配色美化

Xshell是一款在windows下比较流行的SSH终端工具&#xff0c;在我使用过的终端工具中&#xff0c;它是比较平衡的一款&#xff0c;在稳定性、便利性、功能以及UI设计等方面都不错。 为了让Xshell的页面更加美观、明了&#xff0c;我对它做了一些优化。 一、配色方案 Xshell有…

[NOI2011] 阿狸的打字机

[NOI2011] 阿狸的打字机 题目描述 阿狸喜欢收藏各种稀奇古怪的东西&#xff0c;最近他淘到一台老式的打字机。打字机上只有 28 28 28 个按键&#xff0c;分别印有 26 26 26 个小写英文字母和 B、P 两个字母。经阿狸研究发现&#xff0c;这个打字机是这样工作的&#xff1a;…

青龙面板脚本库大全

代理问题&#xff0c;请多切换尝试&#xff0c;如果国内?用不了的直接拉GitHub自行添加其他代理尝试 交流群&#xff1a;790665041 kingran库 ql repo https://gh.fakev.cn/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|u…

折斷的蓝色妖姬。。。1207

安靜的下午&#xff0c;想起了那朵玫瑰 第一次收到玫瑰&#xff0c;真的好開心 好想它开花&#xff0c;好想它能多活久一些 第一次养玫瑰&#xff0c;一个礼拜都没有见它开放 花蕊的形状始终没有改变 枝干却慢慢失去水分不再吸收 有些失望&#xff0c;看着玫瑰发呆的同时 室友&…