欢迎关注「全栈工程师修炼指南」公众号
点击 👇 下方卡片 即可关注我哟!
设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习!
专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享
“ 花开堪折直须折,莫待无花空折枝。 ”
作者主页:[ https://www.weiyigeek.top ]
博客:[ https://blog.weiyigeek.top ]
作者<开发安全运维>学习交流群,回复【学习交流群】即可加入
文章目录:
本文为作者原创文章,为尊重作者劳动成果禁止非授权转载爬取,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。
0x00 前言简述
描述:本章主要记录了作者在工作生产环境中使用 redhat社区版本 CentOS Linux 8 / CentOS Stream 8
说明以及服务器系统安装基础设置,和CentOS发行版版本新特性配置实践,帮助各位运维人快速入手运维配置,由于CentOS即将停止维护了,本文也可能后续不在进行更新,算是针对CentOS 8 系统运维的一个总结,希望大家多多支持我哟。
若需要CentOS8安全加固脚本的童鞋可以在公众号中回复【CentOS8安全加固】关键字留言。
百度百科介绍:
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/
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/
温馨提示: 截止日期为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即可;
Step2.进行选择安装信息摘要安装,按照图中上述序号进行配置(重点配置根据需要进行安装目的地选择以及自定义分区swap分区大小)
Step3.选择安装选择一般选择前三个选项(
带GUI的服务器
,服务器
,最小安装
);
Step4.点击下一步进行安装然后,设置用户根密码即可,等待安装完成重启机器即可;
温馨提示: 由于 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 ];then
repo_name="-BaseOS.repo"
echo -e "\033[32m 备份 /etc/yum.repos.d/${repo_name} 文件中...... \033[0m"
# rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo
cp /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 ];then
repo_name="CentOS-Base.repo"
echo -e "\033[32m 备份 /etc/yum.repos.d/${repo_name} 文件中...... \033[0m"
rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo
cp /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 ]];then
dnf 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" ]];then
echo "pool ${ntp} iburst maxsources 4" >> /etc/chrony.conf;
else
echo "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,您需要进行以下步骤:
打开 /etc/pam.d/system-auth 文件进行编辑:
sudo vi /etc/pam.d/system-auth
在文件中找到 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 分钟)后自动解锁。您可以根据需要更改此值。保存并关闭文件。
重复步骤 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
温馨提示:
如果只配置 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 参数进行配置,您可以按照以下步骤进行操作:
打开 /etc/pam.d/system-auth 文件进行编辑:
sudo vi /etc/pam.d/system-auth
在文件中找到 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 加密算法来验证密码, 并且记录三次用户历史命令。
保存并关闭文件。
重复步骤 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 的示例:
首先,确保已经安装了 pam_pwquality.so 模块。如果没有安装,可以使用以下命令进行安装:
sudo dnf install pam_pwquality
打开
/etc/pam.d/system-auth
文件,这是系统级别的 PAM 配置文件。在文件中找到
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
表示新密码中不能包含用户名字符串你可以根据需要进行自定义配置。
保存文件并关闭。
现在,当用户尝试更改密码时,pam_pwquality.so 模块将强制执行密码策略,并确保密码的安全性。
8.用户历史密码记录配置
描述: 在 CentOS 8 中,pam_pwhistory.so 模块用于配置密码历史记录策略,以防止用户在一段时间内多次使用相同的密码。下面是在 CentOS 8 中使用 pam_pwhistory.so 的示例:
首先,确保已经安装了 pam_pwhistory.so 模块。如果没有安装,可以使用以下命令进行安装:
sudo dnf install pam_pwhistory
打开
/etc/pam.d/system-auth
文件,这是系统级别的 PAM 配置文件。在文件中找到
password
部分,并添加以下行:password required pam_pwhistory.so remember=5 retry=3 use_authtok
这个配置表示密码历史记录中将记住最近5个密码,用户在更改密码时将无法使用这些密码。
retry=3
表示在密码不符合要求时,用户有3次重试机会use_authtok
参数表示将使用用户输入的密码进行验证。你可以根据需要进行自定义配置,比如将
remember
的值更改为其他数字。保存文件并关闭。
现在,当用户尝试更改密码时,pam_pwhistory.so 模块将检查密码是否与最近的密码重复,并阻止用户使用重复的密码。这有助于增加密码的安全性。
0x03 应用部署
CentOS8中快速安装Docker容器环境
描述: 多的不说,直接上脚本吧,运行如下脚本直接在机器上安装好 Docker 容器运行环境。
# 1.卸载旧版本
sudo yum remove docker docker-engine docker.io containerd runc
sudo 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.repo
yum-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 2
dnf list docker-ce-cli --showduplicates | sort -r | head -n 2
dnf 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 -y
sudo 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-reload
sudo systemctl enable docker.service
sudo systemctl restart docker.service
# 9.验证安装的 docker 服务
systemctl status docker.service --no-pager -l
docker info
# 10.启动一个 hello-world 容器,验证是否正常
docker run --rm hello-world
执行效果:
0x04 入坑解决
1.CentOS8.x忘记密码后如何更改?
1.重启服务器在选择内核版本界面上按e进入编辑Grub界面,将cl-root 后的ro
变成 rw init=/sysroot/bin/bash
2.同时按住Ctrl和x键,系统进入emergency(紧急情况)模式。
3.运行命令 "chroot /sysroot/"
切换回原始系统然后即可修改密码,修改完密码运行命令“touch /.autorelabel”
,使SELinux生效密码生效。
/# chroot /sysroot/
/# LANG=en (把语言改为英文)
/# passwd
/# touch /.autorelabel
4.同时按住Ctrl和d键,输入reboot,回车,系统重新启动。
亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?
2.CentOS8.x系统时间差8个小时如何解决?
问题描述:查看系统时间发现系统时间和Universal time
时间相差8个小时,实际上是时区配置的问题,很简单直接上解决办法。
$date
Thu May 14 21:13:32 UTC 2020
$timedatectl
Local time: 一 2020-05-14 21:13:19 CST
Universal time: 一 2020-05-14 13:13:19 UTC #实际应该的时间
RTC time: 一 2020-05-14 13:13:19
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST 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
如果此篇文章对你有帮助,请你将它分享给更多的人!
学习书籍推荐 往期发布文章
公众号回复【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常规配置、系统优化与安全加固基线实践文档
欢迎长按(扫描)二维码 ,获取更多渠道哟!
欢迎关注 【全栈工程师修炼指南】(^U^)ノ~YO
添加作者微信【weiyigeeker 】 一起学习交流吧!
关注回复【学习交流群】即可加入【安全运维沟通交流小群】
温馨提示: 由于作者水平有限,本章错漏缺点在所难免,希望读者批评指正,若有问题或建议请在文章末尾留下您宝贵的经验知识,或联系邮箱地址
master@weiyigeek.top 或 关注公众号 [全栈工程师修炼指南] 留言。
点个【赞 + 在看】吧!
点击【"阅读原文"】获取更多有趣的知识!