欢乐狗 发表于 2025-3-19 14:51:26

如何安全,高效,优雅的提拔linux的glibc版本_glibc升级

如何安全,高效,优雅的提拔linux的glibc版本



[*]

[*]一、发现问题
[*]二、升级glibc版本
[*]

[*]1. 下载对应的软件包
[*]2. 解压软件包
[*]3. 查看新版本glibc安装要求,并查看自己版本是否符合需求
[*]4. 升级python版本
[*]

[*]4.1 下载软件包
[*]4.2 解压
[*]4.3 编译
[*]4.4 确认更新后的python版本

[*]5. 更新make版本
[*]

[*]5.1 下载软件包
[*]5.2 解压
[*]5.3 编译
[*]5.4 确认更新后的make版本

[*]6. 更新gcc版本
[*]

[*]6.1 下载软件包
[*]6.2 解压
[*]6.3 编译
[*]6.4 验证gcc版本
[*]6.5 配置全局可用

[*]7. 编译新版本glibc
[*]8. 安装
[*]9. 检查可用glibc版本


一、发现问题

之前在配置Gorse的时候遇到了下面这个问题:
gorse-in-one: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by gorse-in-one)
gorse-in-one: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by gorse-in-one)

这个问题是没有找到2.32以及2.34的glibc
可以先查看一下目前可用的glibc版本
strings /lib64/libc.so.6 | grep GLIBC



运行结果如下
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

可以看出目前并没有那两个版本的glibc
那么,就进入正题,升级glibc版本
二、升级glibc版本

注:

[*]升级glibc版本存在系统崩溃风险,强烈建议在升级前拍摄系统快照,以便出错时及时规复
[*]此操作建议需要的权限较高,建议root成员举行操作,非root成员建议全程使用sudo操作
1. 下载对应的软件包

wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.34.tar.gz

2. 解压软件包

tar -zxvf glibc-2.34.tar.gz

3. 查看新版本glibc安装要求,并查看自己版本是否符合需求

cd glibc-2.34
cat INSTALL | grep -E"later|newer"

结果如下,主要关注python make gcc 三个版本
   this option if you want to compile the GNU C Library with a newer
   later.Note that when CET is enabled, the GNU C Library requires
   Intel Pentium Pro or newer.With '--enable-cet', it is an error to
   to build without this option (for example, if building with a newer
The tests (and later installation) use some pre-existing files of the
   * GNU 'make' 4.0 or newer
   * GCC 6.2 or newer
   building the GNU C Library, as newer compilers usually produce
   of release, this implies GCC 7.4 and newer (excepting GCC 7.5.0,
   * GNU 'binutils' 2.25 or later
   binutils 2.26 or newer.
   * GNU 'texinfo' 4.7 or later
   * GNU 'bison' 2.7 or later
   * GNU 'sed' 3.02 or newer
   * Python 3.4 or later
   * GDB 7.8 or later with support for Python 2.7/3.4 or later
   * GNU 'gettext' 0.10.36 or later
to have the header files from a 3.2 or newer kernel around for
reference.(For the ia64 architecture, you need version 3.2.18 or newer

python -V
gcc -v


make -v



Python 2.7.5
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
GNU Make 3.82

4. 升级python版本

如果不实行这步,直接举行升级会出现如下报错
configure: error:
*** These critical programs are missing or too old: make compiler python
*** Check the INSTALL file for required versions.

4.1 下载软件包

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

4.2 解压

tar -zxf Python-3.8.0.tgz

4.3 编译

依次实行下列命令
mkdir /usr/local/python3
cd Python-3.8.0
mkdir build
../configure --prefix=/usr/local/python3
make -j 4
make install



4.4 确认更新后的python版本

python3 -V

5. 更新make版本

如果不实行这步,直接举行升级会出现如下报错
configure: error:
*** These critical programs are missing or too old: make compiler
*** Check the INSTALL file for required versions.

5.1 下载软件包

wget http://ftp.gnu.org/pub/gnu/make/make-4.3.tar.gz

5.2 解压

tar -zxvf make-4.3.tar.gz

5.3 编译

cd make-4.3
./configure --prefix=/usr
type make
make check
# 可能会报一些错误,不过不影响后面的install
make install



这几步稍有点慢,耐心等待
5.4 确认更新后的make版本

make -v

GNU Make 4.3
为 x86_64-pc-linux-gnu 编译
Copyright (C) 1988-2020 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律允许的范围内没有其他保证。

6. 更新gcc版本

如果不实行这步,直接举行升级会出现如下报错
configure: error:
*** These critical programs are missing or too old: compiler
*** Check the INSTALL file for required versions.

6.1 下载软件包

wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz

6.2 解压

tar -zxvf gcc-11.2.0.tar.gz

6.3 编译

mkdir build
cd build/
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make -j 4
# 这一步时间非常长
yum -y remove gcc g++
# 删除旧版本
make install


# 安装

非常慢,耐心等待
6.4 验证gcc版本

gcc -v

Using built-in specs.
COLLECT_GCC=/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/11.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.2.0 (GCC)

6.5 配置全局可用

ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/local/bin/g++ /usr/bin/g++

# 更新动态库
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

7. 编译新版本glibc

cd glibc-2.34
mkdir bulid
cd bulid
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

8. 安装

这步请务必确保当前用户拥有权限,非root用户请使用sudo运行
make && make install



接下来大概率会报这样的错误
gcc: relocation error: /lib64/libc.so.6: symbol __tunable_get_val, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
make: *** Error 127
make: Leaving directory '/home/luolong/glibc-2.35'
make: *** Error 2

这时候应该SSH的链接也断开了,很多基础命令也无法使用了 如使用ls命令
ls: relocation error: /lib64/libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

这是正常现象,请键入如下命令
LD_PRELOAD=/lib64/libc-2.34.so sln /root/glibc-2.34/build/libc.so.6               /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.34.so sln /root/glibc-2.34/build/dlfcn/libdl.so.2          /lib64/libdl.so.2
LD_PRELOAD=/lib64/libc-2.34.so sln /root/glibc-2.34/build/nptl/libpthread.so.0      /lib64/libpthread.so.0
LD_PRELOAD=/lib64/libc-2.34.so sln /root/glibc-2.34/build/elf/ld-linux-x86-64.so.2/usr/lib64/ld-linux-x86-64.so.2

PS:如果你并不是root用户,请将 改成自己的位置
此时,再次实行
make install

9. 检查可用glibc版本

strings /lib64/libc.so.6 | grep GLIBC

GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.30
GLIBC_2.31
GLIBC_2.32
GLIBC_2.33
GLIBC_2.34
GLIBC_PRIVATE

成功!!!
网络安全学习门路&学习资源

https://i-blog.csdnimg.cn/direct/f1fbc31c97ea484c83ae7901ebee26b6.png#pic_center
网络安全的知识多而杂,怎么科学公道安排?

下面给大家总结了一套适用于网安零基础的学习门路,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安精良的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
低级黑客

1、网络安全理论知识(2天)

①了解行业相干配景,远景,确定发展方向。
②学习网络安全相干法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗出测试基础(一周)

①渗出测试的流程、分类、标准
②信息收集技能:主动/被动信息搜集、Nmap工具、Google Hacking
③毛病扫描、毛病使用、原理,使用方法、工具(MSF)、绕过IDS和反病毒侦探
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、盘算机网络基础(一周)

①盘算机网络基础、协媾和架构
②网络通信原理、OSI模子、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技能与网络安全防御技能
⑤Web毛病原理与防御:主动/被动攻击、DDOS攻击、CVE毛病复现
5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗出(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web毛病扫描工具
④Web渗出工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
https://img-blog.csdnimg.cn/86a80c72bc2f42ceb6d908a8849ac5b7.png
恭喜你,如果学到这里,你基本可以从事一份网络安全相干的工作,比如渗出测试、Web 渗出、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
【“脚本小子”发展进阶资源领取】
7、脚本编程(低级/中级/高级)

在网络安全范畴。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在现实的渗出测试过程中,面临复杂多变的网络环境,当常用工具不能满意现实需求的时候,每每需要对现有工具举行扩展,大概编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF比赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库举行编程学习; 搭建开发环境和选择IDE,PHP环境保举Wamp和XAMPP, IDE强烈保举Sublime; ·Python编程学习,学习内容包罗:语法、正则、文件、 网络、多线程等常用库,保举《Python核心编程》,不要看完; ·用Python编写毛病的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并誊写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架大概Python框架 (可选); ·了解Bootstrap的布局大概CSS。
8、超级黑客

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的门路。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
https://img-blog.csdnimg.cn/9193e9a8224040d1b69a58014c792bb0.png
网络安全工程师企业级学习门路

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
https://img-blog.csdnimg.cn/3dc5ecbf133647d1adb5db38e2547244.png
一些我自己买的、其他平台白嫖不到的视频教程:
https://img-blog.csdnimg.cn/3f3625d5c4a44824b026abf7ec538a1f.png
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
https://i-blog.csdnimg.cn/direct/f1fbc31c97ea484c83ae7901ebee26b6.png#pic_center
结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础踏实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才造就和建设上,需要调整布局,鼓励更多的人去做“正向”的、联合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:

此教程为纯技能分享!本书的目的决不是为那些怀有不良动机的人提供及技能支持!也不负担因为技能被滥用所产生的连带责任!本书的目的在于最大限度地叫醒大家对网络安全的重视,并采取相应的安全措施,从而淘汰由网络安全而带来的经济损失!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 如何安全,高效,优雅的提拔linux的glibc版本_glibc升级