【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?

news2024/11/19 15:14:28

 

这样,你先在网上找一套完整openssh升级方案(不是yum或apt的,要源码安装的),然后在虚拟机上反复安装测试,直到把他理解了、背下来。

面试的时候让你简单说说linux命令什么的,你就直接把这个方案从道到尾讲一下,基础命令一带而过就行,重点的命令解释下。这样你所谓的“熟悉linux操作系统”基本就差不多了。

几乎服务器都有ssh,但凡大企业或重点行业都会漏扫,就需要升级openssh。这个升级方案包含很多基础命令和源码安装过程,代表性比较强,尤其配合telnet登陆升级对安全性也有加分。

 

很多人评论说方案怎么怎么样,升级有没有必要,隐藏端口等等。但请看问题:校招中的“熟悉linux操作系统”一般是指达到什么程度?这个“程度”没有固定指标,那最简单办法就是让结果更直观。就是用知行合一,理论联系实际。方案是否合理、是否浪费服务器资源,与题主想应对校招关系不大。我面试的时候如果面试官让我说几个常用命令,那我就简单深入的讲下这个方案基本是可以过的。现在我把之前用的方案贴出来(centos7.6下openssh8.6p1),想应对面试的可以拿去试试。至于讨论方案是否可行的,可以去技术论坛。

一、升级背景:
漏洞扫描显示linux服务器openssh有高危漏洞,需要进行修复。openssh是远程登录到linux服务器
的重要工具,要修复此漏洞需升级到最高版本(2021年5月中旬最新版本为8.6p1)。

二、升级说明:
1、所有升级文件均从官网下载。
2、linux服务器系统为Centos7可适用此方案。
3、Centos7系统需要有yum源,方便解决依赖关系问题。如无法实现,则需上传同系统版本安装映
像文件,作为本地yum源。
4、安装过程受网络影响极大,一旦出现不可抗因素致网络断开,可能会导致升级中断,无法远程
连接,出现此情况需现场人员配合解决。
5、升级过程出现问题需现场人员根据回退方案进行恢复操作。

三、升级过程:
(0)安装并启用telnet
1、安装telnet
yum install telnet-server telnet xinet
2、修改配置文件
vi /etc/xinetd.d/telnet

disable= no       //将yes改为no
#让root可以登录
#mv /etc/securetty /etc/securetty.bak
重启服务
service xinetd restart
3、启动相应服务,然后使用telnet登录到服务器
systemctl start telnet.socket
systemctl start xinetd
chkconfig --list
(一)配置yum源
1、上传与生产环境相同的centos7版本的iso和openssh8.6p1的安装包到服务器。

2、挂载iso
创建iso存放目录和挂载目录,并上传iso镜像文件到iso存放目录/mnt/iso下
mkdir /mnt/iso 
mkdir /mnt/cdrom
mv CentOS-7.6-x86_64-DVD-1810.iso /mnt/iso/
挂载iso镜像到挂载目录/mnt/cdrom下
mount -o loop /mnt/iso/CentOS-7.6-x86_64-DVD-1810.iso /mnt/cdrom
使用df -h命令查询挂载是否成功
df -h

3、备份原本地源
进入repos配置目录
cd /etc/yum.repos.d/
创建备份文件夹
mkdir repobak
移动配置文件到repobak文件夹中
mv *.repo repobak/

4、新建光盘源配置文件
vi CentOS-Media.repo
输入下列内容
```
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/

gpgcheck=0
enabled=1
```
5、测试安装源
yum clean all
yum makecache
(二)升级openssh版本到8.6p1
1、下载或上传安装包openssh-8.6p1.tar.gz到/root目录下
进入安装包所在文件夹
cd /root/linshi

2、关闭Selinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

3、安装依赖关系
yum install -y gcc pam-devel rpm-build wget zlib-devel openssl-devel net-tools
tar -xvf openssh-8.6p1.tar.gz
cd openssh-8.6p1

4、卸载旧版openssh
rpm -qa |grep openssh
ps:下一步骤为删除原有ssh,但不会影响现在进行的ssh会话,所以整个操作过程不要断开ssh会话,
否则无法再次连接,只能由现场人员进行回退后重新操作(推荐使用telnet进行升级)。
for i in $(rpm -qa |grep openssh);do rpm -e $i --nodeps;done

5、设置、编译、安装
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers  --with-ssl-dir=/usr/local/ssl/lib --without-hardening
mv /etc/ssh /etc/ssh.old
cp contrib/redhat/sshd.pam /etc/pam.d/sshd
#编译
make
#安装
make install

6、设置自启动
复制启动脚本到/etc/init.d
cp contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list|grep sshd
sed -i "32a PermitRootLogin yes" /etc/ssh/sshd_config
#重启ssh服务
service sshd restart

7、检查升级情况
ssh -V
输出版本号为“OpenSSH_8.6p1”,说明更新成功

(三)关闭telnet
关闭服务
systemctl stop telnet.socket
systemctl stop xinetd
#root可以登录
#mv /etc/securetty.bak /etc/securetty

卸载telnet
yum remove telnet-server  xinetd

ps:此时ssh是可以连接状态,不要断开连接防止修改出错无法连接服务器。测试新端口是否打开
telnet 127.0.0.1 22
#出现如下显示表示端口正常打开
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.6
使用远程工具新开窗口,连接新端口测试修改是否成功,如有问题马上使用之前的连接进行检查修改。

(四)回退方案
1、挂载iso文件作为yum源
mount -o loop /mnt/iso/CentOS-7.6-x86_64-DVD-1810.iso /mnt/cdrom
2、安装openssh
yum install openssh*
3、启动ssh
service sshd start
4、重新连接ssh,然后从(二)4开始做。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1428232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux服务详解

如有错误或有补充,以及任何改进的意见,请在评论区留下您的高见,同时文中给出大部分命令的示例,即是您暂时无法在Linux中查看,您也可以知道各种操作的功能以及输出 如果觉得本文写的不错,不妨点个赞&#x…

CentOS 7中搭建NFS文件共享服务器的完整步骤

CentOS 7中搭建NFS文件共享服务器的完整步骤 要求:实现镜像文件共享,并基于挂载的共享目录配置yum源。 系统环境: 服务器:172.20.26.167-CentOS7.6 客户端:172.20.26.198-CentOS7.6 1、在服务器和客户端上&#x…

案例分析技巧-软件工程

一、考试情况 需求分析(※※※※)面向对象设计(※※) 二、结构化需求分析 数据流图 数据流图的平衡原则 数据流图的答题技巧 利用数据平衡原则,比如顶层图的输入输出应与0层图一致补充实体 人物角色:客户、…

MySQL 索引和事务

目录 1 索引1.1 简介1.2 使用1.3 示例 2 事务2.1 简介2.2 使用 1 索引 1.1 简介 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引底层是…

TypeScript 学习笔记(Day4)

「写在前面」 本文为 b 站黑马程序员 TypeScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. TypeScript 学习笔记(Day1) 2. TypeScript 学习笔…

Three.js学习2:页面引入 Three.js

一、关于 Three.js 的版本 随着页面3D化应用越来越多,近两年 Three.js 处于飞速发展之中。现在 Three.js 几乎每个月都会发布一个新的版本,会增加新的 API,废掉一些旧的功能之类的。 可以从 Three.js 官网 Three.js – JavaScript 3D Libra…

web漏洞扫码工具

Invicti 是一种自动化但完全可配置的 Web 应用程序安全扫描程序,使您能够扫描网站、Web 应用程序和 Web 服务,并识别安全漏洞。Invicti 可以扫描所有类型的 Web 应用程序,无论其构建平台或语言。 Invicti 是唯一一款能够以只读且安全的方式自…

Next.js初识

Next.js初识 Next.js:这是一个用于生产环境的React 框架(国外用的比较多)。 Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能 无需任何配…

c#的反汇编对抗

文章目录 前记nim攻防基础FFI内存加载加解密、编码 后记C#类型转换表nim基础 前记 随便编写一个c#调用winapi并用vs生成dll,同时用csc生成exe using System; using System.Runtime.InteropServices; namespace coleak {class winfun{[DllImport("User32.dll")]publ…

【JavaEE进阶】 图书管理系统开发日记——叁

🌴前言 在前面我们实现了用户登录的接口。现在我们来实现图书列表展示页面。 🎋数据准备 创建图书表,并初始化数据 -- 图书表 DROP TABLE IF EXISTS book_info; CREATE TABLE book_info (id INT ( 11 ) NOT NULL AUTO_INCREMENT,book_nam…

【数据开发】pyspark入门与RDD编程

【数据开发】pyspark入门与RDD编程 文章目录 1、pyspark介绍2、RDD与基础概念3、RDD编程3.1 Transformation/Action3.2 数据开发流程与环节 1、pyspark介绍 pyspark的用途 机器学习专有的数据分析。数据科学使用Python和支持性库的大数据。 spark与pyspark的关系 spark是一…

CMake Msys2 搭配vscode

(一)MSYS2介绍 MSYS2(Minimal SYStem 2)是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境,可以在Windows系统中编译和运行许多Linux应用程序和工具。 MSYS2基于MinGW-w64平台,提供了…

分布式事务 seata+nacos 部署

分布式事务 seatanacos 部署 一、下载seata二、解压配置三、导入数据库四、nacos配置五、配置要引入事务的模块的配置文件六、启动七、测试 这里使用的版本: nacos:2.0.4 seata:1.5.2 seata官方地址:https://seata.apache.org/zh-…

unity addressables 加载资源和场景 显示进度条(主要用于WebGL)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、addressables是什么?二、导入Addressables三、创建Addressables Settings 资产包管理四、资源打包五、环境模拟六、查看重复资源七、选择Bundle…

WordPress主题YIA的文章页评论内容为什么没有显示出来?

有些WordPress站长使用YIA主题后,在YIA主题设置的“基本”中没有开启“一键关闭评论功能”,而且文章也是允许评论的,但是评论框却不显示,最关键的是文章原本就有的评论内容也不显示,这是为什么呢? 根据YIA主…

【毕业日记】2024.01 - 慢下来,静待花开

转眼距离930离开鹅厂已经120天了,我是很能拖延的,或者是很懂自我麻痹的,这三个多月,一直想要写点东西纪念,一直拖一直拖一直拖…… 疫情这几年经济下行里裁员是个茶余饭后“嬉笑”之余经常被提起的词,部门滚…

python 实现 macOS状态栏 网速实时显示

安装依赖包: pip install pillow psutil rumpsnetSpeedApp.py from PIL import Image, ImageDraw, ImageFont import psutil import rumpsclass NetSpeedApp(rumps.App):def __init__(self):super(NetSpeedApp, self).__init__("NetSpeed")self.titlese…

Node需要了解的知识

Node能执行javascript的原因。 浏览器之所以能执行Javascript代码,因为内部含有v8引擎。Node.js基于v8引擎封装,因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象,BOM是浏览器对象。但是node中提供了cons…

Postgres与DynamoDB:选择哪个数据库

启动新项目时需要做出的决定之一是使用哪个数据库。如果您使用的是Django这样的包含电池的框架,那么没有理由再三考虑。选择一个受支持的数据库引擎,就可以了。另一方面,如果你使用像FastAPI或Flask这样的微框架,你需要自己做出这…

手把手教你搭建属于自己的网站(获取被动收入),无需服务器,使用github托管

大家好,我是亚洲著名程序员青松,本次教大家如何搭建一个属于自己的网站。 下面是我自己搭建的一个网站,是一个网址导航网站。托管在了github上面,目前已经运营了三个月,每天的访问量大约有100ip左右。 下图是在51.la上…