Bitwarden部署后一个草鸡搞笑的bug!!

新年快乐啊

前情提要:我前段时间发现我的一个邮箱莫名其妙的被登录,且发了非常多的垃圾邮件,后面我把能开启两步验证的网络服务全部开起来,以确保安全。

部署Bitwarden后的搞笑bug

在部署完Bitwarden后我发现一个问题:Bitwarden的网页页面登录正常,但是所有的浏览器插件登录全部提示密码或者用户名错误,包括桌面客户端。

如何解决

Google一下,在github看到有人给了答案,简直了。。。

Bitwarden把名字从Bitwarden换成了vaultwarden,我在部署时pull了是bitwarden/server:latest

因为浏览器插件和桌面客户端都是最新版本,导致无法登录旧版本Bitwarden镜像部署的服务,因此只能删了在重新部署vaultwarden。

pull新的镜像

docker pull vaultwarden/server:latest
docker run \
-itd \
-e PGID=1000 \
-e PUID=1000 \
--name='bitwarden' \
--net='macnet' \ #更换成你的network名称
-e TZ="Asia/Shanghai" \
-e 'SERVER_ADMIN_EMAIL'='你的邮箱地址' \
-e 'SIGNUPS_ALLOWED'='false' \
-e 'INVITATIONS_ALLOWED'='true' \
-e 'WEBSOCKET_ENABLED'='true' \
-e 'ADMIN_TOKEN'='使用openssl生成' \
-p '8086:80/tcp' \
-v '/home/data/bitwarden':'/data':'rw' 'vaultwarden/server:latest'

生成’ADMIN_TOKEN’的命令

openssl rand -base64 48

强烈建议:任何情况下,尽量开启2步认证。

使用Alist,让天翼云盘支持webdav

为什么是天翼云盘

优点

  • 速度挺快,相对于让人恶心的百度,天翼云盘的上下行基本不限速,上行基本可以达到3-4Mbps,下行可以3Mbps以上。
  • 容量够大,反正我是的容量是有14TB,不知道是不是跟用户的套餐有关,这点我不确定。
  • 我是电信用户??????

缺点

  • 不支持webdav,其实我认为不完全算是缺点,因为国内能用的云盘里面,官方原生支持webdav的好像也只有坚果云,如果都支持webdav的话,还有谁愿意去用官方客户端对吧。
  • 客户端难用

为什么需要webdav

我的NAS一直都是采用了RAID0的亡命之徒的阵列方式,只要任何一块硬盘归西,数据也就跟着丢了,而且都穷成这样了,当然就没有所谓的异地备灾这种高级组网方式了。所以为了安全考虑,我将重要的数据同步备份到云服务商上,我使用的是群晖自带的Cloud Sync,Cloud sync可以支持非常的网盘提供商,webdav以及对象存储,但它不支持天翼云。

Cloud sync可以支持webdav,但是绝大多数的云盘也不支持webdav,所以我们需要一个中间组件,使得云盘支持webdav,然后再通过cloud sync的同步功能将本地重要数据备份至云盘。

Alist

Alist是一个支持多种存储的文件列表程序,可以让多个存储提供商的云存储服务支持webdav,支持多种部署方式,安装起来也非常简单,我这里采用docker的方式进行部署,当然,如果您有支持openwrt的路由器,或者N1等设备也是可以的。

docker方式安装Alist

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest

docker部署的方式相对简单,一条命令就能搞定。pull完成后,访问http://IP:5244 端口即可访问管理页面。

如何添加天翼云盘

添加方法非常简单,只要填写电话号码、密码和挂载路径,Alist提供非常详细的使用文档,如果您使用其他云服务商,可以参考文档配置。

回到首页,可以看到我们已经成功添加天翼云盘。

如何在本地电脑上使用wendav

我这里使用了免费的RaiDrive,配置方法如下,

查看管理员密码:

docker exec -it alist ./alist admin

地址:您docker运行的IP地址
端口:您部署时的端口,我这里是5244
路径:/dav

继续阅读

一些废话

开头先说点废话

我常有一种天下兴亡匹夫有责的错觉感,因此也常常在朋友圈内分享一些不该在墙内分享的内容,我的理念是能叫醒几个算几个。这些年因工作需要,我微信加了很多体制内的,我尊重他们的观点,但往往道不同,又必须在一起谋。但其实也没什么。直到有次,我在朋友圈内分享了关于乌俄一些观念,有个多年未曾联系的人,突然留言说:“我截图保存了你翻墙违法使用Twitter的证据“,我不知道他的真实的意图是什么,或许只是开个玩笑,但我感到一阵寒意。

我跟好友说过,以后尽量不在更新朋友圈了,但看到贵州深夜转运而惨死的27人,看到新疆大火,看到河南富士康,我忍不住……

思考良久,我决定:

  • 关了朋友圈,你永远叫不醒一个装睡的人。
  • 以后没事还是写写blog,多少要对得起白嫖来的服务器
  • 可能心情会好很多

服务器问题

因为服务器是白嫖Oracle的,WordPress运行在docker上,然后使用NGINX的方向代理。但内存不足,运行在docker上的MySQL数据为经常挂死,不得不定期去重启云服务器。

所以我把WordPress迁回了家里的小服务器,虽小,但是内存2G,还是比Oracle的靠谱,Oracle上用docker运行NGINX的,反向代理到家里小服务器。由于是动态IP,用了DDNS,因此运营商更新IP地址时,可能会出现短暂无法访问的情况。

把日常工作用的Windows10 换成了elementary os

现在办公的专业软件已经不多,个别几个可以在办公室的台式机上跑,常用的Ofice、QGIS和Google earth pro 也都有Linux版本。问题不大。

OAI搭建EPC核心网,并连接商用eNodeB设备

让我们搭建一个EPC核心网玩玩

其实,本来的计划时搭建一个5GC+gNodeB,但是因为施工队没空帮忙过来安装5G BBU,刚好手头上有之前单位采购用来做测试佰才邦4G皮基站设备,因此打算先部署一个EPC核心网来尝试一下接入eNodeB设备看看。

概述

OAI的源码分为两部分,分别为EPC和eNodeB,这里由于我使用了成品eNodeB设备,因此不需要搭建额外的eNodeB网元设备。EPC跑起来后直接在eNodeB设置好MME的S1接口地址即可。OAI的EPC核心网包含:MME,SPWG(PGW和SGW合设),HSS等网元,HSS的采用Mysql数据库作为UE的数据存储单元。

我的设备及网络拓扑

我在Mac上用VirtualBox虚拟化了一台Ubuntu16.04的虚拟机作为EPC,eNodeB设备采用Baicells Neutrino 小型室内基站

我的网络拓扑结构很简单,但是不是官网推荐的EPC采用双网卡连接的方式,1台千兆路由器挂1台千兆交换机,交换机再下挂1台EPC虚拟机和1台eNodeB。

EPC IP:192.168.123.153
eNodeB IP:192.168.123.110
宿主MAC IP:192.168.123.230

开搞

按照官方推荐的系统,这里采用了ubuntu16.04 版本,OAI官方推荐使用4.7.7-oaiepc内核,但是我第一次使用默认的generic也可以成功编译,但是为了一次顺利编译,建议还是使用官方推荐的内核版本。这里我给出更换内核的版本,但是为了图方便,我这里使用默认的generic内核。

更换Ubuntu内核版本

git clone https://gitlab.eurecom.fr/oai/linux-4.7.x.git
cd linux-4.7.x
sudo dpkg -i linux-headers-4.7.7-oaiepc_4.7.7-oaiepc-10.00.Custom_amd64.deb linux-image-4.7.7-oaiepc_4.7.7-oaiepc-10.00.Custom_amd64.deb
sudo reboot

注意:gitlab.eurecom.fr 非常的慢,若没有梯子,可能需要耐心等等!(MLGB)

继续阅读

安装OAI 5G核心网

OAI是啥?

能上网搜索OAI是啥的一般也不需要我再介绍它是用来做什么的,我记录一下安装过程,避免以后忘记。
具体可以参考其官网

  • 目前OAI已实现3GPP的R17版本
  • 整体网络拓扑架构

先决条件

操作系统要求为:ubuntu 18.04版本。

安装docker和docker-compose

这里有个很大的坑,因为第一次安装的时候办公室没有梯子可用,所以直接用了ubuntu打包的docker.io和docker-compose版本,后面在运行docker的时候docker-compose开始报错,这里还是安装docker官方的安装方式。

安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

为了避免每次自行docker命令都要直行sudo命令,这里给docker管理员权限。

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker #重启docker服务,生产环境谨慎。
sudo chmod a+rw /var/run/docker.sock

安装完成后执行docker version 命令查看版本信息。

继续阅读

Linux挂载远程SMB文件夹

临时挂载

只是临时挂载到本地server上使用,记录一下,以免哪天用到又忘了。

sudo mount -t cifs //192.168.123.164/home/music /home/user/music -o username=xx,password=xx,vers=2.0

开机挂载

vim /etc/sambapasswd
username=xx
password=xx

在/etc/fstab下追加一行

//192.168.123.164/home/music   /home/user/music   cifs    credentials=/etc/sambapasswd    0 0

这样就可以了

Ubuntu20.04安装cockpit docker

在安装完成cockpit后发现没有docker的管理模块,搜索一圈,大多数的解释是用sudo apt-get install cockpit-docker 命令来安装,但实际安装时提示无法找到安装包。

虽然平常大多数的时候基本使用docker命令来操作,但cockpit的可视化界面还是非常好用的。

没有docker管理模块
找不到cockpit-docker 安装包

搜索一圈后在Youtube上发现一个Youtuber上传的教学视频,这里记录一下

这是大佬的视频链接:https://youtu.be/fbpOOoP8zA4

访问:https://packages.ubuntu.com/

继续阅读

HomeAssistant反向代理后访问出现400 BadRequest处理

为了安全起见,给HomeAssistant配置反向代理,在确保SSL证书和Nginx的反向代理配置没有问题后,访问HTTPS的URL地址后,会出现400 BadRequest的问题。

查看logs后发现系统提示

2021-12-26 23:55:17 ERROR (MainThread) [homeassistant.components.http.forwarded] A request from a reverse proxy was received from 192.168.123.XXX, but your HTTP integration is not set-up for reverse proxies

大概的意思是需要配置下反向代理服务器的地址,应该是为了安全,但这在之前的几个版本里并不存在相关的配置——坑

搜索下,有位大佬给了解决方案,链接在此:【新提醒】升级到2021.7后外网打不开web页面的解决方法 – 『HomeAssistant』综合讨论区 – 『瀚思彼岸』» 智能家居技术论坛 – Powered by Discuz! (hassbian.com)

非常感谢分享

http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.123.0/24 # Add the IP address of the proxy server

重启容器后可正常访问https的地址。

用于容器监控的命令行工具CTOP

CTOP是一款基于go语言开发的docker应用监控软件,它可用于在容器层级间监控进程,容器通过利用控制器组(cgroup)的资源管理功能,提供了操作系统层级的虚拟化环境,简单实用。

一、openEuler安装CTOP

GitHub地址:GitHub – bcicen/ctop: Top-like interface for container metrics

sudo wget https://github.com/bcicen/ctop/releases/download/0.7.6/ctop-0.7.6-linux-amd64 -O /usr/local/bin/ctop

sudo chmod +x /usr/local/bin/ctop

一些其他命令

-a:仅显示活动容器
-f :设置初始过滤字符串
-h:显示帮助对话框
-i:反转默认颜色
-r:反向容器排序顺序
-s:选择初始容器排序字段
-scale-cpu:显示cpu占系统总数的百分比
-v:输出版本信息并退出

Docker安装pgAdmin

用pgAdmin来管理之前安装postGIS数据,本地笔记本卡到不行,实在不想在安装其他的软件。

1、Docker安装pgAdmin

拉取pgAdmin

docker pull dpage/pgadmin4

运行并设置登录账号和密码

docker run -d -p 5433:80 –name pgadmin4 -e PGADMIN_DEFAULT_EMAIL=admin@XXXXXXOOOOOO.com -e PGADMIN_DEFAULT_PASSWORD=NMBD dpage/pgadmin4

在浏览器访问http://IP:5433 填入设置的登录账号和密码即可正常访问