blog/_posts/2024-05-19-bt-ops.md

30 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
layout: post
title: 从宝塔面板中学习运维知识
tags: [宝塔, 运维]
---
用Python代码的程序就等着被抄吧<!--more-->
# 起因
之前我[用旧电脑拼了一堆服务器](/2024/04/06/old-pc.html),但是上面装的东西其实试完之后就没什么兴趣了,主要是它们实际上没有解决什么问题。后来我觉得还是更应该向更有意义的地方靠,于是我就在每个机器上安装了不同的运维面板,打算分别测试一下效果。
我安装的面板有[1Panel](https://github.com/1Panel-dev/1Panel)[小皮面板公测版](https://beta.xp.cn/)[宝塔面板破解版](https://baota.sbs/)。1Panel很不错但是除了网站管理之外功能全是Docker带来的另外代码是Go写的我现在还看不懂。小皮面板重构之后很令我失望功能比旧版小皮面板还少安装的时候居然还会收集服务器信息并上传运行环境版本少PHP连扩展安装的功能都没有而且现在直接摆烂全放的是配置文件要是都自己改配置文件了还要面板干啥另外重构之后也变成Go写的了就这样拿什么和别的面板打
宝塔面板破解版之前我在[测试Koyeb](/2022/11/29/free-server.html)的时候试过一个,不过后来看到了一个新的,主要是之前那个界面上改的全是的广告,新找的这个破解版不仅界面没有做什么修改,而且[后端开源](https://github.com/flucont/btcloud),也不用担心有什么后门。
虽然我不信任宝塔面板毕竟漏洞出的多各种收费项目还各种收集用户信息强制登录啥的但是有一个好处就是它是Python写的而且大多数代码并没有混淆代码倒是[开源](https://github.com/aaPanel)了就是没更新。作为一款算是比较成熟的面板有些功能还是比较有意思的而且我也能看懂Python代码所以有些有意思的功能就可以看看它的代码是如何实现的。
# 功能探索与解析
对于免费版有的功能其实我不太关心一是那些大多数并不复杂自己装也没什么难度二是大多功能其实我并不感兴趣🤣。对于付费功能不得不说有的还挺离谱的有些非常简单的功能价格居然很贵比如服务器网络加速BBR这个功能是内核提供的自己一个命令就能打开和宝塔半毛钱关系都没有价格居然是4.93元/天?不过我没用过官网下的宝塔,不知道是破解版乱标还是真是这个价格。
另外还有一些是纯粹解析类的也没什么意思比如网站监控报表还有WAF啥的那些没什么技巧就只是只要肯写这个功能就会有的东西。我的话更关心一些看起来实现还算难值得收钱但是实现其实很简单的东西😁。
## 宝塔防入侵
其实对于这个功能我觉得实现应该不复杂用SELinux或者AppArmor然后进行合理的配置应该就可以了但是离谱的是开了这个功能我安装Redis等软件的时候各种报错用宝塔安装Redis是通过编译安装的正常来说不应该报错才对的啊而且就算用了SELinux或者AppArmor也不应该有问题另外它的报错是Segmentation fault什么情况编译会报这种错误啊……所以我看了看它的代码原来他们的实现根本没有用SELinux或者AppArmor可能一是配置复杂他们的程序员驾驭不了二是Ubuntu和红帽系不一定都有安SELinux或者AppArmor适配起来比较麻烦。他们用的居然是一个不知名的开源软件[Snoopy](https://github.com/a2o/snoopy)原理也很简单就是在环境变量里配置在运行任意软件的时候把Snoopy先加载进去然后它就能记录程序运行时的行为了但显然这个程序并不怎么成熟运行某些软件的时候居然会报Segmentation fault的错误这样的东西也好意思收钱
## 宝塔系统加固
其实这个功能没啥特别的但是我看它有好多关于等保的功能因为我维护的服务器中也有需要符合等保要求的所以这个功能对我来说还挺有用至少可以做个参考。不过里面有些比如对文件或者文件夹的保护这个实现我还挺感兴趣的正常来说就算拿权限限制也限制不了root可是这个功能打开之后居然连root都没有权限操作还是挺神奇的之后我看了一下代码原来有一个叫做chattr的东西用这个可以加扩展权限比如`chattr +i <file>`就可以让任何人都没有权限操作这个文件,想要操作的话必须执行`chattr -i <file>`解除才行。因为一般都是拿普通权限限制的,从来没考虑过扩展权限,这下学到新知识了😆。
## 文件监控
这个功能其实也不复杂,之前我写过一个[定时调度器](/2022/09/21/cron.html)其中的热载功能用的是watchdog而wathcdog在Linux下其实用的就是inotify特性宝塔在实现这个东西的时候用的是pyinotify库其实它俩倒是没什么特别大的区别只是watchdog能跨平台而已虽然宝塔面板也有Windows版不过估计应该是没有这个插件吧。
## 堡塔企业级防篡改
这个和刚才那个用chattr的从功能上来看倒是挺像的不过这个写的是内核级看了一下确实有个内核模块叫做tempercore虽然编译是在本地进行的但是代码加了密编译还得用它文件夹里一个叫jm的程序进行编译😅我猜它的实现应该是在内核里hook了操作文件的API操作完之后会进行记录不过试了一下根本没有起效果😅不知道是我破解版的问题还是不支持Ubuntu……
## 堡塔运维平台
从功能上来看挺像Ansible的看了一下代码是用paramiko直接在远程服务器上执行命令的。不过Ansible也是Python写的倒是没差。功能有点太简单了自己用脚本也能实现不过提供了个面板可能相对适合小白吧就是这个价格恐怕只有脑子进水的人才会买了。
# 总结
总的看来宝塔确实有些有意思的功能,实现有些挺有意思的,看了他们的代码之后感觉也能学到点东西,也许以后有机会可以用得上。但是完全不值那个价,这点东西也敢卖钱也真是挺厉害的,不过可能对于政府项目来说这些安全功能还是挺有意义的,毕竟没什么运维会去当公务员,而且企业版的价格对他们来说都已经算相当便宜了🤣。