我如何监控我网站的 tor 隐藏服务端点的正常运行时间,以便在它离线时立即收到通知?精美的月度/年度正常运行时间报告可获得加分。
我希望我的网站可以通过 Tor 洋葱服务访问,这样 Tor 用户就可以安全地访问它。我可能很少通过其.onion
地址访问我的网站,因此安装监控软件尤为重要,以便在网站无法通过 Tor 访问时通知我。
我的整个基础设施仅由 1 台服务器组成。让监控软件运行在它所监控的同一台服务器上是没有意义的,所以我目前使用 SaaS 服务来监控我的网站(pingdom/statuscake/cula/UptimeRobot/better uptime/等)。
如何监控我的洋葱服务,以便在它发生故障时收到警报?是否有任何流行的监控 SaaS 工具支持监控作为 tor 洋葱服务运行的网站?
答案1
我不知道有任何正常运行时间 SaaS 提供商支持在其洋葱服务端点上监控网站。
计划任务
直到那一天到来(因为很难想出为什么任何管理员不应该为了使他们的网站可以通过一个.onion
地址访问(这有利于保护访问者的隐私),一个简单的解决方案就是启动一个小型微型服务器(比如谷歌云中的“永远免费”服务器),每 1 分钟通过 tor 进行一次简单的 curl,如果 curl 退出非零值,则发送电子邮件警报。
例如,如果你想监控torproject.org 的洋葱服务(qrmfuxwgyzk5jdjz.onion):
user@disp9739:~$ curl -IL --socks5-hostname 127.0.0.1:9050 http://qrmfuxwgyzk5jdjz.onion/
HTTP/1.1 200 OK
Date: Fri, 13 Nov 2020 15:16:44 GMT
Server: Apache
Content-Location: index.html.en
Vary: negotiate,accept-language,Accept-Encoding
TCN: choice
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
X-Xss-Protection: 1
Referrer-Policy: no-referrer
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline';
Last-Modified: Fri, 13 Nov 2020 15:12:24 GMT
ETag: "3cec-5b3fe74ab4600"
Accept-Ranges: bytes
Content-Length: 15596
Cache-Control: max-age=3600
Expires: Fri, 13 Nov 2020 16:16:44 GMT
Content-Type: text/html
Content-Language: en
user@disp9739:~$
如果您正在运行 debian,那么您可以执行以下命令来创建一个监控您网站的简单 cron 作业:
sudo apt-get install tor curl mailutils
cat > /etc/cron.d/tor-hidden-service-monitoring <<'EOF'
* * * * * root url='http://qrmfuxwgyzk5jdjz.onion/'; curl -IL --socks5-hostname 127.0.0.1:9050 "${url}" || echo "Unable to access ${url}" | mail -s "ALERT: hidden service inaccessible" [email protected]
EOF
上述命令将安装tor
、curl
和命令并创建一个简单的 cron 作业,如果失败则mail
尝试访问http://qrmfuxwgyzk5jdjz.onion/
每个1 minute
电子邮件。[email protected]
星期一
为了减少误报电子邮件警报,您可以mon
仅在多个连续查询失败后触发警报。
sudo apt-get install tor torsocks mon
cat > /usr/lib/mon/mon.d/torsocks_http.monitor <<'EOF'
#!/bin/bash
################################################################################
# File: torsocks_http.monitor
# Version: 0.1
# Purpose: Wraps the http.monitor script with torsocks to monitor .onion sites
# https://tech.michaelaltfield.net/monitoring-tor-onion-websites-uptime-alerts
# Authors: Michael Altfield <[email protected]>
# Created: 2021-03-12
# Updated: 2021-03-12
################################################################################
export DIR_PATH=`dirname ${0}`
exec /usr/bin/torsocks --isolate ${DIR_PATH}/http.monitor -t 60 "$@"
EOF
hostgroup torproject_onion qrmfuxwgyzk5jdjz.onion
watch torproject_onion
service http
interval 5m
monitor torsocks_http.monitor
period
alertafter 10
alertevery 1h strict
alert mail.alert [email protected]
upalert mail.alert [email protected]
systemctl restart mon.service
Tor2Web
最后,您还可以使用 Tor2Web 为您的 .onion 网站创建一个 clearnet 代理,然后将您现有的正常运行时间监控 IaaS 工具指向它。
来源
上述解决方案最初发表在以下文章中,标题为监控 Tor .onion 网站(正常运行时间警报)