almalinux9.6系统-基础环境准备
almalinux9.6系统-基础环境准备
- 一、环境介绍
- 二、基础环境准备
- 1、网卡名修改
- 2、yum源配置(基础+epel+docker-ce)
- 3、安装必须软件
- 4、关闭防火墙和selinux
- 5、ssh优化+提权+免密
- 三、初始快照-克隆
- 额外操作
一、环境介绍
本文的目的是为了回顾和记录基础环境准备所需要的步骤,上一篇文章将vmware虚机准备好了,外网访问也是正常的。这篇文章就是用来对刚创建的almalinux虚机进行基础设置+优化设置。涉及到网卡改名、常规软件的安装、ssh服务的优化、免密登录设置、yum源、epel源、docker-ce源的添加等操作,这些操作完成就可以设置为初始快照然后进行后续的实验了。
系统版本:almalinux9.6
内核版本:5.14.0-570.12.1.el9_6.x86_64
二、基础环境准备
1、网卡名修改
almalinux的网卡名还是和centos7系统一脉传承的通过硬件来进行识别但是我这种老东西就喜欢之前的ethX开头的网卡名,看着顺眼!
PS:这里需要注意一点,我现在使用的事almalinux9版本和之前使用的centos7系列系统多了个udev的设置,就是我们修改网卡名这里还需要手动的将网卡mac绑定到udev上不然但是修改内核参数启动时不生效的,当时看网上文档那个自信修改然后不生效,以为是自己参数写错了,好家伙一顿对,就是不生效改不过来。最后百度了半晌才知道是udev的问题,坑啊!
# 修改grub启动参数——》更新grub配置
vi /etc/default/grub
GRUB_CMDLINE_LINUX="... net.ifnames=0 biosdevname=0"
grub2-mkconfig -o /boot/grub2/grub.cfg# 获取网卡mac然后写入udev
ip a show dev ens32 | grep link | grep -v inet6 | awk '{print $2}'
echo 'SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:71:91:53", NAME="eth0"' | sudo tee /etc/udev/rules.d/70-my-net.rules# 修改网卡名和配置文件中设置——》重新读取网卡配置文件——》修改下网卡文件名称
ip link set ens32 name eth0 ; nmcli con mod "ens32" connection.interface-name eth0 ; nmcli con mod "ens32" connection.id eth0
nmcli con reload ; nmcli con up eth0
mv /etc/NetworkManager/system-connections/ens32.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection# 重启系统生效
reboot
这是centos7上修改网卡名操作一样的,设置了重启下网卡名就修改了但是在almalinux中不行!
接着获取下网卡mac地址然后手动写入udev中,这里我们不用重新加载,等执行完成重启的。
这里查看网卡名是已经修改成ethX开头的了,但是这是临时的,还是需要重启让配置永久生效下
查看网卡配置文件中的网卡名都修改了但是网卡配置文件本身没修改——》手动修改下
重启下载登录查看网卡就是ethX开头的了
——》这时候查看会看到altname这是显示网卡曾经的命名,正常显示,不用在意。
2、yum源配置(基础+epel+docker-ce)
在almalinux9.6系统中软件包管理检查yum和dnf都是可以使用的,但是你具体查看就发现yum指向的也是dnf,所以这里我们安装软件包用yum和dnf都是可以的反正调用的都是dnf。
查看yum源只有三个基础源并且他还是用的国外源,现在这网络环境还是切换成国内的源安心点
——》我这里使用的是阿里云的源
# 查看当前有哪些yum源仓库
yum repolist -v | grep -E "Repo-baseurl"# 通过修改baseurl将路径指向国内的阿里云源
sed -i.bak \-e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^# baseurl=https://repo.almalinux.org|baseurl=https://mirrors.aliyun.com|g' \/etc/yum.repos.d/almalinux-*.repo# 安装epel源
yum install epel-release -y
sed -i.bak \-e 's|^metalink|#metalink|g' \-e 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|g' \/etc/yum.repos.d/epel*.repo
# 针对openH264仓库,他在9系统中是独立出来的,国内的镜像因为法律法规没有收录使用的化切换回国际源就好
mv /etc/yum.repos.d/epel-cisco-openh264.repo.bak /etc/yum.repos.d/epel-cisco-openh264.repo
yum clean all ; yum makecache# 安装docker-ce源(阿里云)
yum install dnf-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这是我们装机完成默认的三个基础源指向的还是国外的地址
这是通过sed备份修改之后指向阿里云的三个基础源
接着通过安装epel-release来进行epel源安装,本来说是看下国外源地址指向的,结果太慢了
——》不等了直接sed修改指向国内阿里云
这里将epel源修改为国内阿里云之后makecache生成元数据就非常快了
最后看下基础源+epel源+docker-ce源配置完成后的结果了。
3、安装必须软件
在后续实验中会安装一些必须的软件比如常用的vim文件编辑、解压命令tar、unzip,自动化补全命令bash-completion等等,这里就是在yum准备好之后将这些必须软件进行安装。
yum install -y vim wget curl sysstat unzip tar bash-completion ansible tree
vim ——》文本编辑器
wget ——》拉取软件
curl ——》页面测试命令
sysstat ——》安装监控工具:sysstat(含iostat/mpstat)
unzip ——》压缩和解压zip格式的压缩包
tar ——》压缩包
bash-completion ——》命令自动补全,嘎嘎好用!!!
ansible ——》批量管理工具
tree ——》以树状展示目录结构
这里可以检查收集下安装的ansible版本是【2.14.18】
4、关闭防火墙和selinux
selinux是必须要关闭的,他对文件的上下文限制太严重了,安全是安全但是当你修改一个文件配置都需要联动下设置下selinux的情况下,他在我这种自己做实验的场景下就不太适用了,直接关闭了事,方便自己就好。
防火墙的化就是我不想做实验去琢磨是否需要开端口,直接关闭了默认放通就好。
# 关闭selinux
setenforce 0 ;getenforce
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config# 关闭firewalld防火墙
systemctl stop firewalld ; systemctl disable firewalld
5、ssh优化+提权+免密
针对ssh的操作这里会修改下端口,从22修改为10000.然后将dns解析关闭加块ssh连接速度,然后检查下root远程登录应该是关闭状态,启用秘钥登录。
当前是有两个用户,一个root用户一个secure普通用户,我们远程登录上来每次输入密码切换用户就比较麻烦了,这里设置下提权配置然后将secure加入wheel用户就就可以免密提权了。
免密操作就是生成一个密钥对,然后将私钥传到本地,将公钥放到我们的root和secure用户——》这里我们会设置root用户远程禁止登录所以这里只能通过secure来连接了
# 禁用root远程SSH登录
sed -i '/PermitRootLogin/ s/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
# 启用密钥登录(推荐)-替换密码认证提升安全性
sed -i '/PubkeyAuthentication/ s/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config
# 禁用密码登录(密钥配置后启用)
sed -i '/PasswordAuthentication/ s/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config# 关闭DNS反向解析-加速连接建立,避免超时延迟
sed -i '/UseDNS/ s/^#\?UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
# 禁用GSSAPI认证-减少认证环节耗时
sed -i '/GSSAPIAuthentication/ s/^#\?GSSAPIAuthentication.*/GSSAPIAuthentication no/' /etc/ssh/sshd_config# 将ssh服务端口从22修改为10000提高安全性
sed -i '/Port/ s/^#\?Port.*/Port 10000/' /etc/ssh/sshd_config# 重启SSH服务——》先别着急,等免密去提权做完了在重启,不然远程连接就断了
systemctl restart sshd
# root用户下执行添加下提权命令方便secure提权执行命令省的每次输入命令【没有提权操作才需要执行】
echo "secure ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers# 将普通用户secure将入wheel用户组之后测试
usermod -aG wheel secure ; sudo su -
# 生成密钥对执行之后一顿回车就好了
ssh-keygen -t rsa
# 这里目录下就是生成的密钥对(id_rsa-私钥+id_rsa.pub-公钥)
ll /root/.ssh/
# 分发公钥信息-这里目录没有目录和公钥文件手动创建下就好
mkdir -p /root/.ssh/
touch /root/.ssh/authorized_keys
mkdir -p /home/secure/.ssh/
touch /home/secure/.ssh/authorized_keys# 将/root/.ssh/id_rsa.pub公钥文件内容写入对应文件
echo …… >> /root/.ssh/authorized_keys
echo …… >> /home/secure/.ssh/authorized_keys
公钥都下发之后我们就可以重启ssh服务了
对应的xshell中的配置也需要修改下——》端口号修改为【10000】
将用户身份验证这里密码删除然后将认证方法修改为【public key】公钥认证
修改完成之后点击连接下
这时候连接就需要我们提供公钥文件了
——》点击【浏览】——》【用户秘钥】——》点击导入然后找到我们刚才生成密钥对的公钥
这是公钥已经导入了,点击确定
这里默认就选择好公钥了——》选择下【记住密码】省的每次登录询问——》再点击确定
这时候我们就可以通过公钥免密登录到机器上了,使用【sudo su -】也能免密切换到root用户身份了。
三、初始快照-克隆
上面操作都完成之后,关机设置下初始快照:
——》右键虚机——》【快照】——》【快照管理器】——》去个名字(初始快照)(拍摄快照)
拍摄快照不是目的,克隆才是关键。正常做实验都是需要多台机器的,你要是按照我这流程多一台机器来一遍,那可是太费劲了。可以基于初始快照将需要的机器克隆出来。
右键30虚机——》【管理】——》【克隆】——》克隆虚机向导——》下一页
这里默认是克隆虚机当前状态,选择下面——》【现有快照】
克隆方法这里默认是链接克隆,选择下面——》创建完整克隆
这里是选择虚机名和克隆出来虚机存储位置——》自己选择就好
等待克隆完成,一两分钟就好了
克隆完成点击完成就好了。
现在基于30虚机的初始快照克隆出来的虚机就好了
额外操作
正常情况下,虚机克隆出来我们进去修改下地址就可以正常使用了,但是almalinux9这里有点小差异,他是强相关udev的那么我们克隆出来的这个虚机网卡mac改变了,那么udev中的也需要改变,不然货不对板我们网卡名会改变网卡文件都无法正常读取。
开机查看,还真是这个情况,网卡名又变回ensXX开头的了,NetworkManager中启动的网卡都不一样了
——》这里我们通过修改网卡配置文件先临时修改下地址让我们可以远程连接
这里不用修改网卡文件的名称只需要将里面的修改成ens32就好,然后地址的话按照我们规划的修改成31
接着新建一个链接,地址【192.168.100.31】端口【10000】登录用户【secure】登录方法【public】
公钥复用就好,这里点击下记住密码——》然后就可以正常登录了
# 确定网卡mac然后重新写入udev中
ip a show dev ens32 | grep link | grep -v inet6 | awk '{print $2}'
echo 'SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:26:f6:6a", NAME="eth0"' | sudo tee /etc/udev/rules.d/70-my-net.rules# 这里就需要手动重载下udev让其生效然后手动修改网卡名为ethX开头——》这里不需要在修改网卡文件的名称了,我们之前在终端中没有修改,他还是eth0的
udevadm control --reload ;sudo udevadm trigger
ip link set ens32 name eth0 ; nmcli con mod "ens32" connection.interface-name eth0 ;sudo nmcli con mod "ens32" connection.id eth0 ; nmcli con reload ; sudo nmcli con up eth0# 重启生效
reboot
执行完成我们查看下网卡和IP都是正常配置的了——》reboot重启
等虚机起来之后再查看网卡名称和IP就是正常的了
最后,给克隆出来的这个虚机做一个初始快照,方便我们后续实验有什么操作导致环境混乱之后回滚。
到现在为止,基础环境准备就完事了,尤其是初始快照做完之后,我们就可以开始进行实验操作了,有问题直接回到初始快照重新开始就好!