关注

长毛象社区搭建详解
guide.mastodon.im/

一份技术草履虫也可以跟着做的长毛象搭建指南。希望看到越来越多的长毛象社区建立起来。 :blobcatpeek:

指南还在持续更新中,目前先写了前期搭建的步骤。欢迎使用指南底部的链接提供编辑建议。 :blobcatheart:

@salt 棒!
(让我研究一下docker怎么搞异地备份……)

@flyover
(Docker的我也没研究过……
刚发现了你写的教程,好棒!已将教程链接收录 :0450:

@salt @flyover Docker 安装会方便一些,但是坑挺多的,并不适合新手。官方到现在都没个 Docker 安装的文档。

@salt为了写教程,这是又去注册了新域名&开了个新实例嘛🙈 赞美站长~

@salt 一提到scaleway还是有点头痛…… 之前也尝试过注册并使用它,但不知道是不是因为我开着vpn的缘故,绑定玩信用卡后账号被锁定了,要求我出示身份证或护照驾照正反面照片才可以继续使用。 我不愿意出示这些,就给scaleway发ticket说明我使用vpn的原因。 之后他们说在第二天巴黎时间xx点给我来电,出于跟不愿拍身份证照片同样的理由我没有留86手机号,我出示的是Google voice手机号完全没想到它虽然收发短信很正常,电话却接不到。 过了那个时间我去ticket联系客服,就在也没有回复了,可能是已经被加入黑名单。 由于绑定了信用卡,我想申请销毁账户,发ticket客服说他没办法解决这个问题,要我根据邮件提示发送邮件给相应部门。 我按照要求发了前后两次邮件,全部没有得到回复,之后我有点生气地右键催促处理,得到了希望我耐心等待的回复——从注册scaleway到今天已经过了快要一个月,我的账户依旧存在。 当初使用vpn注册是因为不开的话登录验证码无法显示,但是似乎没有人遇到跟我同样的问题。

@suica
可能是注册时触发风控了,被认定有信用卡盗刷嫌疑又无法提供身份证明……
可以尝试再注册一个账号,或者使用其他对象存储服务。

本站也遇到了Scaleway风控问题 

@salt @suica
周六部署的,周日服务突然被冻结了
今天才发现“Your account requires manual review by the Trust&Safety team. Please open a ticket for more information.”,要求提交身份证。
现在媒体文件全在对象存储上,API调用不了(“Aws::S3::Errors::SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.”)上面的文件也没法转移下来了....
目前看来只能提交身份证解除风控了

@salt 第五章中使用的 swap 脚本在 Debian 上使用时会出现问题,需要为 fallocate 加上 -x/--posix 选项。

@salt DigitalOcean 那里的那篇教程并没有提到选项之类的东西,要用脚本的话这样就 OK 了:
wget moerats.com/usr/shell/swap.sh && sed -i 's/fallocate/fallocate -x/' swap.sh && bash swap.sh

@salt 好详细……

还有,这个网站页面是用什么编写的?

@salt
简单看了一下,发现了几个坑点:

坑点一:支付方式。
支付方式绝对是重大坑点,但全文都没有提到这一点。
服务器:DIgitalOcean只支持paypal与信用卡,Vultr 虽然现在支持支付宝,但代价是国人超级多,极大的影响了服务的稳定性。其余两家没有过,不清楚。
域名:著名的 namecheap 不能使用国内支付宝、微信等支付方式。
对象存储:wasabi只支持信用卡。scaleway也只支持信用卡,而且scaleway限制的更加严格,scaleway注册时便要验证信用卡,没有信用卡,你连帐户都注册不了,wasabi好歹你还可以注册一个账户。
所以请在最开头写明:本教程部分服务支付方式只支持信用卡,为了方便起见,请您办理一张带有Visa或Mastercard的信用卡。

坑点二:域名重要性与警示不够。
域名是网站的根本,而且Mastodon 的 Local Domain 一旦设置就很难更改。域名的重要性怎么强调都不为过。
但文档中对域名的强调实在不够,就轻飘飘的提了一句。
不要使用国内域名以及tk等免费域名,更不要使用他人提供的二级域名,这样的警示应当放大加标红。
更为关键的是:虽然文中有说不要使用注册局位于国内的顶级域,但如何判断一个顶级域是否位于国内。
你既没有提供一个完整的排除列表,也没有提供相应的判断方法。还谈何不要使用国内域名。
附:如何判断一个顶级域的注册商是否位于国内?
最直接有效的方法是:查看该顶级域的注册信息。
IANA提供了Root Zone Database
iana.org/domains/root/db
在这个页面,找到相应顶级域,打开对应页面即可。
如果你使用Linux的话,可以使用whois命令。
如:whois top

坑点三:不应使用未经审计的一键脚本。
使用未经审计的一键脚本会给服务器带来重大安全隐患。未经审计的脚本是不安全的,这个脚本可能会抹除你磁盘上的文件,也可能会向你的机器安装恶意软件,让你的机器沦为被黑客控制的肉鸡,所以不应当运行任何来自他人又未经审计的脚本。
你作为教程的书写者,不应当推荐这样存在重大安全隐患的操作。
你可能会说,我已经对链接中提到的脚本进行了审计,它不存在任何不安全的操作。我刚刚也阅读了该脚本,确实是这样的。但是 moerats.com/usr/shell/swap.sh 所对应的脚本并非是不可变的,这个脚本很可能现在虽然没有恶意代码,但未来其可能会偷偷加入恶意代码。所以请使用经审计的存档地址,例如:web.archive.org/web/2020092001

另外 fallocate 是否可用只与底层文件系统相关,并不与某个特定发行版相关。所以教程中说,debian用户添加 -x 参数是没有道理的。而且我使用相关关键词在google中搜索,并没有找到支持你这种说法的证据。
添加 -x 参数后会成倍的增加所需时间,统一推荐添加 -x 参数并不明智。正确的做法是:默认 fallocate ,如果失败尝试添加 -x 参数,如果还失败回退至 dd 。

附:DigitalOcean 的添加 swap 教程:digitalocean.com/community/tut

坑点四:教程中备份操作的存在的问题。
备份不仅仅是为了防止服务器因物理故障而丢失数据,更是为了防止因黑客入侵而造成的数据损失。不正确的备份方式可能达不能备份的目的。

你的教程中采用了,本地生成备份之后,然后推送(push)至对象存储中去的备份方式。但这种方式是不安全不可靠的,正确的做法是由另一台机器拉取(pull)备份。采用push方式的备份,如果黑客取得了你服务器的控制权,那他就可以以相同的方式将你的备份文件删除,请记住 VFEmail 血的教训:solidot.org/story?sid=59558
如果你的服务器被黑客入侵了,自然用户数据泄露光光。但如果你的服务器并没有被黑客入侵,但是你的 scaleway 帐户被黑客猜测出来,此时虽然你的服务器没有被入侵,但黑客却从备份文件中获得了你实例的用户数据。在上传备份文件之前,你应当先对备份文件进行加密来避免这种情况。

附上我站的备份脚本:
gist.github.com/yingziwu/b976e
虽然我站也是采用 push 的方式,但是通过 policy 禁用了删除权限,避免了存档被删的问题。
因为 wasabi 删除的文件还要继续收费 90 天,所以我曾打算将备份从 wasabi 移至 scaleway,但发现 scaleway 不支持 policy 就此作罢。

另外教程中使用crontab作为定时器,建议改为功能更丰富、更加可控、更方便调试的 systemd.timer 。

坑点五:定期清理媒体文件完全没提。
教程中完全没有提定期清理媒体文件,如果某实例使用的vps,又将媒体文件放置于本地,又没有定期清理,那硬盘很快就会被媒体文件撑爆。

@mayli @salt
全托管服务欢迎您。
masto.host/
hostdon.jp/
app.spacebear.ee/mastodon
不用管服务器那一堆麻烦事,每月只需要掏钱,就可以拥有一个属于自己的实例。

@mayli @salt
毕竟本身的复杂性在那摆着的,再怎么通俗的教程也有一定的难度。

@bgme @salt 应该是可以做个直接docker-compose up的版本,不过大家都懒得弄…

@bgme @mayli @salt hostdon有pleroma托管而且价格更便宜?!码了,万一有一天出现我解决不了的问题就去找托管。

@suica @bgme @salt
Hostdon真便宜,400円/月から

,就是日文看不大懂,而且不知道使用上有什么限制。不过对于新手应该算是比较好的解决方案

@bgme @salt fallocate 添加 -x 参数那个是我说的(没有了解具体原理很抱歉……),是与文件系统相关的话,那至少在 ext3 上(我的环境)是需要添加这个参数的。

@hakoesph @salt
ext3 :aru_0080: :aru_0080: :aru_0080:
我还以为没人用ext3了呢。现在的新安装的操作系统,基本上都是 ext4或xfs了吧。

@bgme @salt VPS 上面自动安装的系统…… 我今天才发现(

@salt
一些额外的建议:

建议一:服务器地理位置选择与线路。
服务器的地理位置选择很重要,像 alive.bar 服务器放置于新加坡,这就给国内访问与实例间互通带来了很多额外开销。
建议购买服务器之前,选使用全局 ping 工具,分别于一天中不同时段(清晨、日间、晚高峰)对服务商提供的测试IP测试其延时。如果可以,最好本地运行一个 smokeping 对相关IP进行一段时间的监测。

建议二:服务器配置。
教程中一开始就推荐购买10$/mo的vps,感觉有一点浪费。根据我的经验,5$/mo的vps,合理配置之后,对于用户在50人以下的实例完全够用。

建议三:第六章是不是有什么东西漏写了。
如图。

@salt
一些额外的建议:

建议一:服务器地理位置选择与线路。
服务器的地理位置选择很重要,像 alive.bar 服务器放置于新加坡,这就给国内访问与实例间互通带来了很多额外开销。
建议购买服务器之前,选使用全局 ping 工具,分别于一天中不同时段(清晨、日间、晚高峰)对服务商提供的测试IP测试其延时。如果可以,最好本地运行一个 smokeping 对相关IP进行一段时间的监测。

建议二:服务器配置。
教程中一开始就推荐购买10$/mo的vps,感觉有一点浪费。根据我的经验,5$/mo的vps,合理配置之后,对于用户在50人以下的实例完全够用。

建议三:第六章是不是有什么东西漏写了。
如图。Cloudflare SSL设置、bucket 命名建议之类的。

@[email protected] @[email protected] 地理位置真的很重要!我所有服务器都在ohio,global accelerator国内依旧不好使,最后只能手动在亚太建个出口点来保证国内速度(虽然现在封了国内访问XD

@bgme

谢谢建议,我会尽量修改。

本教程是的目的是写给(和我一样)非 IT 技术背景但又不想使用一键安装/托管服务的嘟友们,所以能简化的步骤就从简了。偏技术的可选步骤我会以外链形式补上,包括此讨论串。

@salt
但是像信用卡,域名,服务器地理位置的重要性,这类重要信息应当加大标红出现在醒目位置以做提醒。

@bgme @salt 因为资源占用方面的问题,个人实例还是推荐使用 pleroma,再用个兼容的 APP 就好。如果也凑热闹要进中继来,那就承受了很多单人实例不该承受的资源占用之苦。

@bgme @salt .
crontab 比较传统、通用、绝大多数 Un*x 系统都支持。
systemd 只有 Linux,而且安全隐患多。
/me 坚定的反 systemd 党人

@bgme @salt >但是 moerats.com/usr/shell/swap.sh 所对应的脚本并非是不可变的,这个脚本很可能现在虽然没有恶意代码,但未来其可能会偷偷加入恶意代码。所以请使用经审计的存档地址,例如:web.archive.org/web/2020092001

Internet Archive 是最好的 CDN!

@salt 提个建议,在购买服务器后装 Mastodon 前,可以先介绍一下 SSH 端口,比如默认使用的是 22,可能会存在的爆破骚扰,以及如何更改之类的。

@makito @salt SSH公网扫描器一大堆,主要是来自于各类botnet,至于活人的攻击之类基本不存在的。你开个记录的话能看到很多扫描记录

@frodo @salt 我的习惯是上手就改,算是给挑事的或者傻瓜脚本增大点爆破难度吧,也省的看日志烦人。

@frodo 我一直都是的呀,这个教程里写的就是这种,如果按照教程来在商家面板设置好之后应该部署时也是默认禁用了的。不过我觉得还是改端口+禁密码是最稳妥的办法,小心点总没错,毕竟教程主要给非专业人士看的,你不提出来别人指不定不知道这个。

@makito 小声说,非专业人士因为各种奇葩原因三天以后炸站是常有的事,最著名的比如inexist.club...…最大的威胁是管理员自己,至于安全注意事项等等反而倒是在其次

@bgme 请教一下,文中所说的第一个问题,是指非特权用户也可以打开修改后的 SSH 端口并对其进行监听吗?这个是不是可以理解成会让服务器上的其它程序有了监听 SSH 密码的风险?

@makito 意思是企业环境下,被渗透的低权限用户有可能干掉监听在非特权端口的程序然后开一个假SSH钓鱼

@frodo 感谢!这确实是以前没想到的。

@makito @frodo @salt 改端口没有多大意义,换成公钥登陆或者直接关闭登陆又或者限制可登陆IP才是比较实际的

登录以加入对话
O3O

欢迎来到o3o(嘟站)!在这里,你可以通过发布“嘟嘟”来吐槽一切、摸鱼扯皮。无论你的兴趣点是什么,我们欢迎任何热情、友好、乐于分享的朋友们加入。请遵循互相尊重的原则,并遵守《O3O主题或发言规则》。请参阅《长毛象中文用户使用文档》了解如何使用长毛象。本实例的运营管理均位于加拿大🇨🇦。