Maltfield Log/2025 Q1: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(mar 16) |
||
Line 8: | Line 8: | ||
# [[Special:Contributions/Maltfield]] | # [[Special:Contributions/Maltfield]] | ||
= | =Sun Mar 16, 2025= | ||
# I sent a follow-up email to Tom to confirm that his new ssh key was | |||
# I sent | |||
## generated following our best-practices as documented on the wiki and https://wiki.opensourceecology.org/wiki/OSE_Server#SSH | ## generated following our best-practices as documented on the wiki and https://wiki.opensourceecology.org/wiki/OSE_Server#SSH | ||
## probably backed-up on his veracrypt-encrypted usb drive | ## probably backed-up on his veracrypt-encrypted usb drive | ||
# ... | # ... | ||
# | # Here's TOFU 2/3 (VPN, exit in Germany) | ||
<pre> | <pre> | ||
Germany | |||
2025-03-16 | 2025-03-16 | ||
INFO: Determining Latest Version of Wordpress Core | INFO: Determining Latest Version of Wordpress Core | ||
Line 157: | Line 28: | ||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz | https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz | ||
-=O=- # # # # | |||
https://downloads.wordpress.org/release/wordpress-6.7.2.zip | https://downloads.wordpress.org/release/wordpress-6.7.2.zip | ||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
https://downloads.wordpress.org/theme/twentytwentyfive.1.1.zip | https://downloads.wordpress.org/theme/twentytwentyfive.1.1.zip | ||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
Line 176: | Line 44: | ||
dfaed40766bedcbf1879949e1a60abf816104725d5c416c1e97a4f2edcf9b7c2 v1.8.22.tar.gz | dfaed40766bedcbf1879949e1a60abf816104725d5c416c1e97a4f2edcf9b7c2 v1.8.22.tar.gz | ||
b6acbc116aabdc5a7c9bc4e861647148a1b444c1f2beec5440261b88f02c3a6e wordpress-6.7.2.zip | b6acbc116aabdc5a7c9bc4e861647148a1b444c1f2beec5440261b88f02c3a6e wordpress-6.7.2.zip | ||
user@disp8402:/tmp/tmp.rUpogE2lis$ | |||
</pre> | </pre> | ||
# ... | # ... | ||
# I | # I tried to load the wiki (on hetzner2), but I got a varnish error | ||
<pre> | <pre> | ||
Error 503 Backend fetch failed | |||
Backend fetch failed | |||
Guru Meditation: | |||
XID: 58196320 | |||
Varnish cache server | |||
</pre> | </pre> | ||
# I | # I'm still able to ssh-in | ||
# I restarted apache, but--wow--it took maybe 2 minutes for this command to finish | |||
<pre> | <pre> | ||
[root@opensourceecology ~]# systemctl restart httpd | |||
[root@opensourceecology ~]# | |||
</pre> | </pre> | ||
# ... | # ... | ||
# | # I updated the OBI CHG wiki article for the migration to hetzter3 to include both [a] a static site *and* [b] a broken wordpress site https://wiki.opensourceecology.org/wiki/CHG-2025-XX-XX_migrate_obi_to_hetzner3 | ||
# in order to test this, I need a new IP address and I'll need to update the ansible configs with a new vhost that binds to this new IP addres | |||
# I tried to login to the hetzner account using the password in the OSE shared keepass, but I kept getting "Invalid credentials." | |||
# I launched a new VM in chromium (to ensure it wasn't some b& due to my hardened firefox), and I the same error; including the account being locked | |||
# | |||
# | |||
<pre> | <pre> | ||
Invalid credentials. | |||
There have been too many login attempts! Please wait for 600 seconds before trying to log in again. | |||
</pre> | </pre> | ||
# I | # unfortunately, the credentials for the email address for this hetzner account is not listed in our ose shared keepass | ||
# | # I logged-in as my google admin account, reset the password, and added the password to our keepass | ||
# I | # I then tried to login to the email account, but google demanded an OTP sent to some phone number. | ||
# | # I sent an email to Marcin asking if he changed the creds, and asking what is the phone number | ||
# | # I found that I could remove the phone number associated with the account from the Google Workspace admin panel | ||
# | # then it said it sent an email with an otp to – the email I'm trying to login into!? | ||
## | # I found a button next to "login challenge" to disable login challenges for 10 minutes | ||
# | # that worked; I'm in. | ||
# I discovered that this email account has a *lot* of emails, and many are banking related. So I decided *not* to set it up to foward to the shared operations google group list | |||
# I see an email from Feb 19 indicating that the hetzner password changed | |||
# I tried to reset the password several times. It never sends the email! Part of the issue is that it requires us to enter both [a] the "client number or login" and [b] the "email address" | |||
## the only thing we have entered in our keepass is the email address, which is what we use for login | |||
## there's also several distinct login portals for hetzner. One for hetnzer1. One for the cloud. One for the decdicated servers. We have a client ID for hetzner1, but it's alphanumeric. And we have a distinct client ID that was included in the email from hetzner last month about the password change, but that's also alphanumeric. I tried everything I could think-of for the "client number or login", including stripping the alpha characters (so it's truly just a "number"), but the email never came and eventually I got an error indicating that the account is now disabled | |||
<pre> | <pre> | ||
Account is disabled. | |||
There have been too many login attempts! Please wait for 600 seconds before trying to log in again. | |||
</pre> | </pre> | ||
# there's no phone number to call on this page | |||
# I found a phone number, but it's a +49. I can only call +1 for free from my Google Voice account :/ https://www.hetzner.com/support-form/ | |||
# I used the form on the above page to send a cryptographically signed message to hetzner asking them to please send us our "client number" to the email address associated with our account | |||
# | |||
# ... | # ... | ||
# | # while I'm blocked and locked-out of the hetzner wui and I'm logged into the Google Workspace, I'll work on creating those accounts | ||
# crap, I just realized that the shared keepass db doesn't have an entry for the hcaptcha-specific email account that I created on 2025-02-08 | |||
## I clearly stated in my log of that day that I added this entry to the keepass db. Is it possible that the file became corrupt somehow? Or maybe I accidentally updated it on hetzner3? https://wiki.opensourceecology.org/wiki/Maltfield_Log/2025_Q1#Sat_Feb_08.2C_2025 | |||
# no, the file doesn't even exist on hetzner3 yet | |||
<pre> | <pre> | ||
root@hetzner3 ~ # ls -lah /etc/keepass | |||
ls: cannot access '/etc/keepass': No such file or directory | |||
root@hetzner3 ~ # | root@hetzner3 ~ # | ||
</pre> | </pre> | ||
# | # the file is on hetzner2, and says it's last updated today – but for some reason only I have write permissions? | ||
<pre> | <pre> | ||
[maltfield@opensourceecology ~]$ ls -lah /etc/keepass/ | |||
total 180K | |||
drwxrwx--- 2 root keepass 4.0K Mar 16 22:55 . | |||
drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. | |||
-rw-r----- 1 maltfield maltfield 45K Mar 16 22:55 passwords.kdbx | |||
-rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak | |||
-rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak | |||
-rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak | |||
-rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak | |||
-rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak | |||
root | |||
-rw-r-- | |||
root | |||
-- | |||
-rw- | |||
[maltfield@opensourceecology ~]$ | [maltfield@opensourceecology ~]$ | ||
</pre> | </pre> | ||
# | # according to the wiki https://wiki.opensourceecology.org/wiki/OSE_Server#Keepass | ||
# | |||
<pre> | <pre> | ||
user | The passwords.kdbx file should be owned by the user 'root' and the group 'keepass'. It should have the file permissions of 660 (such that it can be read & written by 'root' and users in the 'keepass' group, but not accessible in any way from anyone else). | ||
</pre> | </pre> | ||
# | # so I fixed this | ||
<pre> | <pre> | ||
root@ | [root@opensourceecology keepass]# ls -lah | ||
total 180K | |||
drwxrwx--- 2 root keepass 4.0K Mar 16 22:55 . | |||
drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. | |||
-rw-r----- 1 maltfield maltfield 45K Mar 16 22:55 passwords.kdbx | |||
-rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak | |||
root@ | -rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak | ||
-rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak | |||
-rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak | |||
-rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak | |||
[root@opensourceecology keepass]# | |||
[root@opensourceecology keepass]# chown root:keepass passwords.kdbx | |||
[root@opensourceecology keepass]# chmod 0660 passwords.kdbx | |||
[root@opensourceecology keepass]# | |||
[root@opensourceecology keepass]# ls -lah | |||
total 180K | |||
drwxrwx--- 2 root keepass 4.0K Mar 16 22:55 . | |||
drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. | |||
-rw-rw---- 1 root keepass 45K Mar 16 22:55 passwords.kdbx | |||
-rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak | |||
-rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak | |||
-rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak | |||
-rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak | |||
-rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak | |||
[root@opensourceecology keepass]# | |||
</pre> | </pre> | ||
# and | # I also went ahead and made a backup now | ||
<pre> | <pre> | ||
[root@opensourceecology keepass]# cp passwords.kdbx passwords.kdbx.20250316.bak | |||
[root@opensourceecology keepass]# | |||
[root@opensourceecology keepass]# ls -lah | |||
total 228K | |||
drwxrwx--- 2 root keepass 4.0K Mar 16 23:42 . | |||
drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. | |||
-rw-rw---- 1 root keepass 45K Mar 16 22:55 passwords.kdbx | |||
-rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak | |||
-rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak | |||
-rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak | |||
-rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak | |||
-rw-r----- 1 root root 45K Mar 16 23:42 passwords.kdbx.20250316.bak | |||
-rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak | |||
[root@opensourceecology keepass]# chown root:keepass passwords.kdbx.20250316.bak | |||
[root@opensourceecology keepass]# ls -lah | |||
total 228K | |||
drwxrwx--- 2 root keepass 4.0K Mar 16 23:42 . | |||
drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. | |||
-rw-rw---- 1 root keepass 45K Mar 16 22:55 passwords.kdbx | |||
-rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak | |||
-rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak | |||
-rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak | |||
-rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak | |||
-rw-r----- 1 root keepass 45K Mar 16 23:42 passwords.kdbx.20250316.bak | |||
-rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak | |||
[root@opensourceecology keepass]# | |||
</pre> | </pre> | ||
# | # my best-guess/hope is that the entry for hcapcha just somehow failed to get added due to a network issue. | ||
# | # I went ahead and reset the password on the hcapctha-specific google account and added it to keepass (again) | ||
# ok, the | # ok, omg, wtf. I just realized the ops entry is missing. I *definitely* just added that today! What's happening!?! | ||
# | # I created 3 new entries in keepass | ||
# | ## operations-specific email | ||
## obi-dreamhost-specific email | |||
## hetzner-specific email | |||
# I generated random passwords for each, but I didn't set them to be used in the actual accounts yet. | |||
# then I saved keepass, closed keepass, and shutdown my ose vm | |||
# I restated my ose vm, mounted & unlocked the keepass | |||
# the new entries are absent! What's happening!? | |||
# I do see an error from the keepass terminal | |||
<pre> | <pre> | ||
user@ose:~$ keepassxc | |||
Maximum depth of replacement has been reached. Entry uuid: {REDACTED} | |||
</pre> | </pre> | ||
# I | # quick google shows this error; not sure if relevant https://github.com/keepassxreboot/keepassxc/issues/1741 | ||
# omg, actually, the ops and hcaptcha entries are back. So it's like the last save is now opening, but the one before it is not. I added the other two accounts, saved, restarted, and reunlocked | |||
# I wonder if somehow there's a local copy that's being put in the mounted dir, which gets written-to during network issues | |||
# yeah, on reboot I do see a file before I mount it! | |||
<pre> | <pre> | ||
user@ose:~ | user@ose:~$ ls -lah mnt/ose/keepass/passwords.kdbx | ||
-rw------- 1 user user 44K Mar 16 18:48 mnt/ose/keepass/passwords.kdbx | |||
user@ose:~$ | |||
</pre> | </pre> | ||
# | # and, yeah, that local copy has the entries that I had added before. I'm just going to move this out of the way, mount the *real* one on hetnzer2, and confirm my new entries are finally saved | ||
<pre> | <pre> | ||
user@ose:~/ | user@ose:~$ mv mnt/ose/keepass/passwords.kdbx passwords.fail.20250316.kdbx | ||
Enter passphrase for key '/home/user/.ssh/id_rsa': | user@ose:~$ | ||
user@ose:~$ sshfs -p 32415 maltfield@138.201.84.223:/etc/keepass /home/user/mnt/ose/keepass -o IdentityFile=/home/user/.ssh/id_rsa.ose -o uid=1000 | |||
Enter passphrase for key '/home/user/.ssh/id_rsa.ose': | |||
user@ose:~$ ls -lah mnt/ose/keepass/passwords.kdbx | |||
-rw-rw---- 1 user 1005 45K Mar 16 18:57 mnt/ose/keepass/passwords.kdbx | |||
user@ose:~$ | |||
</pre> | </pre> | ||
# | # ok, all the entries are present again. Now that I'm sure the passwords are durably saved in the shared keepass file on the server, I created the two new accounts (for hetzner and obi dreamhost) | ||
# I also added catarina's personal gmail to the ops google group list | |||
# I sent a test email to the new obi-specific-dreamhost account email to confirm that Catarina is new getting forwarded those emails | |||
# I confirmed that *I* got the email forwarded to me; I'll wait for Catarina's reply | |||
# | |||
# I | |||
# I | |||
=Sat | =Sat Mar 15, 2025= | ||
# | # Marcin generated a new ssh key for me to auth his access | ||
# I | # I sent him an email asking him to confirm that the key was | ||
# on the | ## generated following our best-practices as documented on the wiki and https://wiki.opensourceecology.org/wiki/OSE_Server#SSH | ||
## probably backed-up on his veracrypt-encrypted usb drive | |||
# once he confirms, I'll add it to his authorized_keys file, and then we can confirm access is working | |||
# ... | # ... | ||
# | # Marcin sent me an email that seemed to suggest that we should delay the content fixes of osemain until after we migrate to hetzner3. I sent an email asking to confirm if that's his intention | ||
# ... | # ... | ||
# | # Catarina sent me output of `ls -lah ~/.ssh` which showed she has no ssh keypair | ||
# I sent her the commands to generate a new keypair and asked if she has a backup solution in-place | |||
# ... | # ... | ||
# | # Catarina said she found the links to login to her new wiki admin account, but the password didn't work (maybe it expired) | ||
# I logged-into the wiki today and tried to reset the password, but I got an error when trying to query for the username https://wiki.opensourceecology.org/index.php?title=Special%3AUserCredentials&target=CatarinaAdmin | |||
# | |||
<pre> | <pre> | ||
No credentials found for this user. Check that the name is spelled correctly. | |||
</pre> | </pre> | ||
# I checked the list of users in the admin group, and it includes the ones I thought I had deleted!? | |||
# According to my notes, I did this already on 2025-02-16 https://wiki.opensourceecology.org/wiki/Maltfield_Log/2025_Q1#Sun_Feb_16.2C_2025 | |||
# my best-guess is that I accidentally made the change on hetzner3, not hetzner2 | |||
# again, I edited these accounts, removing the 'administrator' role | |||
# I | |||
# | |||
# | |||
# | |||
# | |||
## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Audrey+Rampone | ## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Audrey+Rampone | ||
## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Elifarley | ## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Elifarley | ||
## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Hart | ## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Hart | ||
## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Will | ## https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Will | ||
# I | # I then tried to create the "CatarinaAdmin" user, but it said it already exists! | ||
<pre> | <pre> | ||
Username entered already in use. Please choose a different name. | |||
Please | |||
</pre> | </pre> | ||
# I | # It looks like CatarinaAdmin isn't in the admin group yet, though | ||
# first I confirmed her email address is correct. Ugh, she has 3x accounts already with the same email address | |||
<pre> | <pre> | ||
MariaDB [osewiki_db]> select user_name,user_email from wiki_user where user_name like '%Catarina%'; | |||
+---------------+--------------------------+ | |||
| user_name | user_email | | |||
+---------------+--------------------------+ | |||
| Catarina Mota | REDACTED | | |||
| Catarina | REDACTED | | |||
| Catarinamota | REDACTED | | |||
| CatarinaAdmin | REDACTED | | |||
+---------------+--------------------------+ | |||
4 rows in set (0.00 sec) | |||
[ | |||
MariaDB [osewiki_db]> | MariaDB [osewiki_db]> | ||
</pre> | </pre> | ||
# I | # I used this special page to send her a new password https://wiki.opensourceecology.org/wiki/Special:PasswordReset | ||
# once she's able to confirm access, I'll grant it admin and ask her to setup 2FA. | |||
# | |||
# ... | # ... | ||
# | # Catarina responded to my email about wordpress themes, asking me to install all of them on the new osemain site on hetzner3 – including twentytwentyfive | ||
## https://wordpress.org/themes/twentytwentyfive/ | |||
## https://wordpress.org/themes/twentytwentyfour/ | |||
## https://wordpress.org/themes/generatepress/ | |||
## https://wordpress.org/themes/astra/ | |||
## https://wordpress.org/themes/oceanwp/ | |||
## https://wordpress.org/themes/hestia/ | |||
## https://wordpress.org/themes/neve/ | |||
# time for a new 3TOFU; I needed to do one for a few of the mediawiki plugins I suggested for Marcin earlier, anyway | |||
<pre> | <pre> | ||
################################################################################ | ################################################################################ | ||
Line 6,669: | Line 297: | ||
GREP=$(which grep) || (echo "ERROR: Cannot find 'grep'"; exit 1) | GREP=$(which grep) || (echo "ERROR: Cannot find 'grep'"; exit 1) | ||
REMOTE_FILES="" | REMOTE_FILES="https://extdist.wmflabs.org/dist/extensions/DeleteBatch-REL1_43-59ffc3f.tar.gz https://extdist.wmflabs.org/dist/extensions/SmiteSpam-REL1_43-d45b08a.tar.gz https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz" | ||
WARNINGS="" | WARNINGS="" | ||
# in tails, we must torify | # in tails, we must torify | ||
if | if "`whoami`" == "amnesia" ; then | ||
CURL="/usr/bin/torify ${CURL}" | CURL="/usr/bin/torify ${CURL}" | ||
PYTHON="/usr/bin/torify ${PYTHON}" | PYTHON="/usr/bin/torify ${PYTHON}" | ||
Line 6,693: | Line 321: | ||
REMOTE_FILES="${REMOTE_FILES} $(echo "${json}" | $JQ -r '[.offers[]|select(.response=="upgrade")][0].download')" | REMOTE_FILES="${REMOTE_FILES} $(echo "${json}" | $JQ -r '[.offers[]|select(.response=="upgrade")][0].download')" | ||
themes='twentytwentyfive' | |||
themes=' | |||
echo -ne "INFO: Determining Latest Version of Wordpress Themes \n\t" | echo -ne "INFO: Determining Latest Version of Wordpress Themes \n\t" | ||
for theme in $themes; do | for theme in $themes; do | ||
Line 6,750: | Line 356: | ||
sha256sum * | sha256sum * | ||
</pre> | </pre> | ||
# | # Here's TOFU 1/3 (Exit in Germany) | ||
<pre> | <pre> | ||
Congratulations. This browser is configured to use Tor. | Congratulations. This browser is configured to use Tor. | ||
2025- | 2025-03-16 | ||
INFO: Determining Latest Version of Wordpress Core | INFO: Determining Latest Version of Wordpress Core | ||
INFO: Determining Latest Version of Wordpress Themes | INFO: Determining Latest Version of Wordpress Themes | ||
. | . | ||
https:// | https://extdist.wmflabs.org/dist/extensions/DeleteBatch-REL1_43-59ffc3f.tar.gz | ||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
https:// | https://extdist.wmflabs.org/dist/extensions/SmiteSpam-REL1_43-d45b08a.tar.gz | ||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
https://downloads.wordpress.org/ | https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz | ||
-=O=- # # # # | |||
https://downloads.wordpress.org/release/wordpress-6.7.2.zip | |||
#################### 27.6%Crash Annotation GraphicsCriticalError: |[0][GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt (t=51.5764) [GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt | |||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
https://downloads.wordpress.org/theme/ | [1]+ Done torbrowser (wd: ~) | ||
(wd now: /tmp/user/1000/tmp.sHf2RQALl0) | |||
https://downloads.wordpress.org/theme/twentytwentyfive.1.1.zip | |||
######################################################################### 100.0% | ######################################################################### 100.0% | ||
2025-03-16 | |||
120K DeleteBatch-REL1_43-59ffc3f.tar.gz | |||
Revision as of 20:59, 11 April 2025
My work log from the first quarter of the year 2025. I intentionally made this verbose to make future admin's work easier when troubleshooting. The more keywords, error messages, etc that are listed in this log, the more helpful it will be for the future OSE Sysadmin.
See Also
Sun Mar 16, 2025
- I sent a follow-up email to Tom to confirm that his new ssh key was
- generated following our best-practices as documented on the wiki and https://wiki.opensourceecology.org/wiki/OSE_Server#SSH
- probably backed-up on his veracrypt-encrypted usb drive
- ...
- Here's TOFU 2/3 (VPN, exit in Germany)
Germany 2025-03-16 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Themes . https://extdist.wmflabs.org/dist/extensions/DeleteBatch-REL1_43-59ffc3f.tar.gz ######################################################################### 100.0% https://extdist.wmflabs.org/dist/extensions/SmiteSpam-REL1_43-d45b08a.tar.gz ######################################################################### 100.0% https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz -=O=- # # # # https://downloads.wordpress.org/release/wordpress-6.7.2.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/twentytwentyfive.1.1.zip ######################################################################### 100.0% 2025-03-16 120K DeleteBatch-REL1_43-59ffc3f.tar.gz 104K SmiteSpam-REL1_43-d45b08a.tar.gz 7.7M twentytwentyfive.1.1.zip 336K v1.8.22.tar.gz 28M wordpress-6.7.2.zip 2d0080dac51ead0c72f3e2ed06c47357ee8ea09f253dc4804f2a26ced6341b91 DeleteBatch-REL1_43-59ffc3f.tar.gz 8cc71c8aa28084babc0f0f5d5616aea2d4a8f8d309cc9ee3c3a3a1fc013498cf SmiteSpam-REL1_43-d45b08a.tar.gz 7d588be49c9ad32bf47f83828756a9bb3f49b675a69a9f4daadf5b3daacd1455 twentytwentyfive.1.1.zip dfaed40766bedcbf1879949e1a60abf816104725d5c416c1e97a4f2edcf9b7c2 v1.8.22.tar.gz b6acbc116aabdc5a7c9bc4e861647148a1b444c1f2beec5440261b88f02c3a6e wordpress-6.7.2.zip user@disp8402:/tmp/tmp.rUpogE2lis$
- ...
- I tried to load the wiki (on hetzner2), but I got a varnish error
Error 503 Backend fetch failed Backend fetch failed Guru Meditation: XID: 58196320 Varnish cache server
- I'm still able to ssh-in
- I restarted apache, but--wow--it took maybe 2 minutes for this command to finish
[root@opensourceecology ~]# systemctl restart httpd [root@opensourceecology ~]#
- ...
- I updated the OBI CHG wiki article for the migration to hetzter3 to include both [a] a static site *and* [b] a broken wordpress site https://wiki.opensourceecology.org/wiki/CHG-2025-XX-XX_migrate_obi_to_hetzner3
- in order to test this, I need a new IP address and I'll need to update the ansible configs with a new vhost that binds to this new IP addres
- I tried to login to the hetzner account using the password in the OSE shared keepass, but I kept getting "Invalid credentials."
- I launched a new VM in chromium (to ensure it wasn't some b& due to my hardened firefox), and I the same error; including the account being locked
Invalid credentials. There have been too many login attempts! Please wait for 600 seconds before trying to log in again.
- unfortunately, the credentials for the email address for this hetzner account is not listed in our ose shared keepass
- I logged-in as my google admin account, reset the password, and added the password to our keepass
- I then tried to login to the email account, but google demanded an OTP sent to some phone number.
- I sent an email to Marcin asking if he changed the creds, and asking what is the phone number
- I found that I could remove the phone number associated with the account from the Google Workspace admin panel
- then it said it sent an email with an otp to – the email I'm trying to login into!?
- I found a button next to "login challenge" to disable login challenges for 10 minutes
- that worked; I'm in.
- I discovered that this email account has a *lot* of emails, and many are banking related. So I decided *not* to set it up to foward to the shared operations google group list
- I see an email from Feb 19 indicating that the hetzner password changed
- I tried to reset the password several times. It never sends the email! Part of the issue is that it requires us to enter both [a] the "client number or login" and [b] the "email address"
- the only thing we have entered in our keepass is the email address, which is what we use for login
- there's also several distinct login portals for hetzner. One for hetnzer1. One for the cloud. One for the decdicated servers. We have a client ID for hetzner1, but it's alphanumeric. And we have a distinct client ID that was included in the email from hetzner last month about the password change, but that's also alphanumeric. I tried everything I could think-of for the "client number or login", including stripping the alpha characters (so it's truly just a "number"), but the email never came and eventually I got an error indicating that the account is now disabled
Account is disabled. There have been too many login attempts! Please wait for 600 seconds before trying to log in again.
- there's no phone number to call on this page
- I found a phone number, but it's a +49. I can only call +1 for free from my Google Voice account :/ https://www.hetzner.com/support-form/
- I used the form on the above page to send a cryptographically signed message to hetzner asking them to please send us our "client number" to the email address associated with our account
- ...
- while I'm blocked and locked-out of the hetzner wui and I'm logged into the Google Workspace, I'll work on creating those accounts
- crap, I just realized that the shared keepass db doesn't have an entry for the hcaptcha-specific email account that I created on 2025-02-08
- I clearly stated in my log of that day that I added this entry to the keepass db. Is it possible that the file became corrupt somehow? Or maybe I accidentally updated it on hetzner3? https://wiki.opensourceecology.org/wiki/Maltfield_Log/2025_Q1#Sat_Feb_08.2C_2025
- no, the file doesn't even exist on hetzner3 yet
root@hetzner3 ~ # ls -lah /etc/keepass ls: cannot access '/etc/keepass': No such file or directory root@hetzner3 ~ #
- the file is on hetzner2, and says it's last updated today – but for some reason only I have write permissions?
[maltfield@opensourceecology ~]$ ls -lah /etc/keepass/ total 180K drwxrwx--- 2 root keepass 4.0K Mar 16 22:55 . drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. -rw-r----- 1 maltfield maltfield 45K Mar 16 22:55 passwords.kdbx -rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak -rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak -rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak -rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak -rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak [maltfield@opensourceecology ~]$
- according to the wiki https://wiki.opensourceecology.org/wiki/OSE_Server#Keepass
The passwords.kdbx file should be owned by the user 'root' and the group 'keepass'. It should have the file permissions of 660 (such that it can be read & written by 'root' and users in the 'keepass' group, but not accessible in any way from anyone else).
- so I fixed this
[root@opensourceecology keepass]# ls -lah total 180K drwxrwx--- 2 root keepass 4.0K Mar 16 22:55 . drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. -rw-r----- 1 maltfield maltfield 45K Mar 16 22:55 passwords.kdbx -rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak -rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak -rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak -rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak -rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak [root@opensourceecology keepass]# [root@opensourceecology keepass]# chown root:keepass passwords.kdbx [root@opensourceecology keepass]# chmod 0660 passwords.kdbx [root@opensourceecology keepass]# [root@opensourceecology keepass]# ls -lah total 180K drwxrwx--- 2 root keepass 4.0K Mar 16 22:55 . drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. -rw-rw---- 1 root keepass 45K Mar 16 22:55 passwords.kdbx -rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak -rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak -rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak -rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak -rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak [root@opensourceecology keepass]#
- I also went ahead and made a backup now
[root@opensourceecology keepass]# cp passwords.kdbx passwords.kdbx.20250316.bak [root@opensourceecology keepass]# [root@opensourceecology keepass]# ls -lah total 228K drwxrwx--- 2 root keepass 4.0K Mar 16 23:42 . drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. -rw-rw---- 1 root keepass 45K Mar 16 22:55 passwords.kdbx -rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak -rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak -rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak -rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak -rw-r----- 1 root root 45K Mar 16 23:42 passwords.kdbx.20250316.bak -rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak [root@opensourceecology keepass]# chown root:keepass passwords.kdbx.20250316.bak [root@opensourceecology keepass]# ls -lah total 228K drwxrwx--- 2 root keepass 4.0K Mar 16 23:42 . drwxr-xr-x. 104 root root 12K Dec 30 22:33 .. -rw-rw---- 1 root keepass 45K Mar 16 22:55 passwords.kdbx -rw-rw---- 1 root keepass 4.5K Jul 29 2017 passwords.kdbx.20170728.bak -rw-rw---- 1 root keepass 4.5K Jul 13 2017 passwords.kdbx.20170804.bak -rw-rw---- 1 root keepass 33K Aug 20 2019 passwords.kdbx.20190820.bak -rw-rw---- 1 maltfield maltfield 34K Sep 9 2019 passwords.kdbx.20190909.bak -rw-r----- 1 root keepass 45K Mar 16 23:42 passwords.kdbx.20250316.bak -rw-rw---- 1 root keepass 27K May 26 2018 passwords.kdbxs.20180525.bak [root@opensourceecology keepass]#
- my best-guess/hope is that the entry for hcapcha just somehow failed to get added due to a network issue.
- I went ahead and reset the password on the hcapctha-specific google account and added it to keepass (again)
- ok, omg, wtf. I just realized the ops entry is missing. I *definitely* just added that today! What's happening!?!
- I created 3 new entries in keepass
- operations-specific email
- obi-dreamhost-specific email
- hetzner-specific email
- I generated random passwords for each, but I didn't set them to be used in the actual accounts yet.
- then I saved keepass, closed keepass, and shutdown my ose vm
- I restated my ose vm, mounted & unlocked the keepass
- the new entries are absent! What's happening!?
- I do see an error from the keepass terminal
user@ose:~$ keepassxc Maximum depth of replacement has been reached. Entry uuid: {REDACTED}
- quick google shows this error; not sure if relevant https://github.com/keepassxreboot/keepassxc/issues/1741
- omg, actually, the ops and hcaptcha entries are back. So it's like the last save is now opening, but the one before it is not. I added the other two accounts, saved, restarted, and reunlocked
- I wonder if somehow there's a local copy that's being put in the mounted dir, which gets written-to during network issues
- yeah, on reboot I do see a file before I mount it!
user@ose:~$ ls -lah mnt/ose/keepass/passwords.kdbx -rw------- 1 user user 44K Mar 16 18:48 mnt/ose/keepass/passwords.kdbx user@ose:~$
- and, yeah, that local copy has the entries that I had added before. I'm just going to move this out of the way, mount the *real* one on hetnzer2, and confirm my new entries are finally saved
user@ose:~$ mv mnt/ose/keepass/passwords.kdbx passwords.fail.20250316.kdbx user@ose:~$ user@ose:~$ sshfs -p 32415 maltfield@138.201.84.223:/etc/keepass /home/user/mnt/ose/keepass -o IdentityFile=/home/user/.ssh/id_rsa.ose -o uid=1000 Enter passphrase for key '/home/user/.ssh/id_rsa.ose': user@ose:~$ ls -lah mnt/ose/keepass/passwords.kdbx -rw-rw---- 1 user 1005 45K Mar 16 18:57 mnt/ose/keepass/passwords.kdbx user@ose:~$
- ok, all the entries are present again. Now that I'm sure the passwords are durably saved in the shared keepass file on the server, I created the two new accounts (for hetzner and obi dreamhost)
- I also added catarina's personal gmail to the ops google group list
- I sent a test email to the new obi-specific-dreamhost account email to confirm that Catarina is new getting forwarded those emails
- I confirmed that *I* got the email forwarded to me; I'll wait for Catarina's reply
Sat Mar 15, 2025
- Marcin generated a new ssh key for me to auth his access
- I sent him an email asking him to confirm that the key was
- generated following our best-practices as documented on the wiki and https://wiki.opensourceecology.org/wiki/OSE_Server#SSH
- probably backed-up on his veracrypt-encrypted usb drive
- once he confirms, I'll add it to his authorized_keys file, and then we can confirm access is working
- ...
- Marcin sent me an email that seemed to suggest that we should delay the content fixes of osemain until after we migrate to hetzner3. I sent an email asking to confirm if that's his intention
- ...
- Catarina sent me output of `ls -lah ~/.ssh` which showed she has no ssh keypair
- I sent her the commands to generate a new keypair and asked if she has a backup solution in-place
- ...
- Catarina said she found the links to login to her new wiki admin account, but the password didn't work (maybe it expired)
- I logged-into the wiki today and tried to reset the password, but I got an error when trying to query for the username https://wiki.opensourceecology.org/index.php?title=Special%3AUserCredentials&target=CatarinaAdmin
No credentials found for this user. Check that the name is spelled correctly.
- I checked the list of users in the admin group, and it includes the ones I thought I had deleted!?
- According to my notes, I did this already on 2025-02-16 https://wiki.opensourceecology.org/wiki/Maltfield_Log/2025_Q1#Sun_Feb_16.2C_2025
- my best-guess is that I accidentally made the change on hetzner3, not hetzner2
- again, I edited these accounts, removing the 'administrator' role
- https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Audrey+Rampone
- https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Elifarley
- https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Hart
- https://wiki.opensourceecology.org/index.php?title=Special%3AUserRights&user=Will
- I then tried to create the "CatarinaAdmin" user, but it said it already exists!
Username entered already in use. Please choose a different name.
- It looks like CatarinaAdmin isn't in the admin group yet, though
- first I confirmed her email address is correct. Ugh, she has 3x accounts already with the same email address
MariaDB [osewiki_db]> select user_name,user_email from wiki_user where user_name like '%Catarina%'; +---------------+--------------------------+ | user_name | user_email | +---------------+--------------------------+ | Catarina Mota | REDACTED | | Catarina | REDACTED | | Catarinamota | REDACTED | | CatarinaAdmin | REDACTED | +---------------+--------------------------+ 4 rows in set (0.00 sec) MariaDB [osewiki_db]>
- I used this special page to send her a new password https://wiki.opensourceecology.org/wiki/Special:PasswordReset
- once she's able to confirm access, I'll grant it admin and ask her to setup 2FA.
- ...
- Catarina responded to my email about wordpress themes, asking me to install all of them on the new osemain site on hetzner3 – including twentytwentyfive
- time for a new 3TOFU; I needed to do one for a few of the mediawiki plugins I suggested for Marcin earlier, anyway
################################################################################ # File: 3tofu.sh # Purpose: Execute these commands on 3 distinct machines (or VMs) on 3 distinct # days using 3 distinct networks exiting from 3 distinct countries # # For more info on 3TOFU (and why this is important), see: # * https://tech.michaelaltfied.net/3tofu # # Authors: Michael Altfield <michael@michaelaltfield.net> # Created: 2025-01-01 21:21:18+00:00 ################################################################################ JQ=$(which jq) || (echo "ERROR: Cannot find 'jq'"; exit 1) CURL="$(which curl) --location --retry 5 --retry-all-errors" || (echo "ERROR: Cannot find 'curl'"; exit 1) GREP=$(which grep) || (echo "ERROR: Cannot find 'grep'"; exit 1) REMOTE_FILES="https://extdist.wmflabs.org/dist/extensions/DeleteBatch-REL1_43-59ffc3f.tar.gz https://extdist.wmflabs.org/dist/extensions/SmiteSpam-REL1_43-d45b08a.tar.gz https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz" WARNINGS="" # in tails, we must torify if "`whoami`" == "amnesia" ; then CURL="/usr/bin/torify ${CURL}" PYTHON="/usr/bin/torify ${PYTHON}" fi tmpDir=`mktemp -d` pushd "${tmpDir}" # first get some info about our internet connection ${CURL} -s https://ifconfig.co/country | head -n1 ${CURL} -s https://check.torproject.org | grep Congratulations | head -n1 # and today's date date -u +"%Y-%m-%d" echo "INFO: Determining Latest Version of Wordpress Core" json=$($CURL -s "https://api.wordpress.org/core/version-check/1.7/") REMOTE_FILES="${REMOTE_FILES} $(echo "${json}" | $JQ -r '[.offers[]|select(.response=="upgrade")][0].download')" themes='twentytwentyfive' echo -ne "INFO: Determining Latest Version of Wordpress Themes \n\t" for theme in $themes; do echo -n '. ' json=$($CURL -s "https://api.wordpress.org/themes/info/1.2/?action=theme_information&slug=${theme}") latest_version=$(echo $json | $JQ -r .version) if [ "${latest_version}" = "null" ]; then error=$(echo $json | $JQ -r .error); description=$(echo $json | $JQ -r .description); WARNINGS="${WARNINGS}\n\nWARNING: Failed to download theme ${theme}" WARNINGS="${WARNINGS}\n\t$error" WARNINGS="${WARNINGS}\n\t$description" else REMOTE_FILES="${REMOTE_FILES} $(echo $json | $JQ -r ".download_link")" fi done echo echo -e "${WARNINGS}" echo # get the file for file in ${REMOTE_FILES}; do echo "${file}" ${CURL} --progress-bar -O "${file}" done # checksum date -u +"%Y-%m-%d" du -sh * sha256sum *
- Here's TOFU 1/3 (Exit in Germany)
Congratulations. This browser is configured to use Tor. 2025-03-16 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Themes . https://extdist.wmflabs.org/dist/extensions/DeleteBatch-REL1_43-59ffc3f.tar.gz ######################################################################### 100.0% https://extdist.wmflabs.org/dist/extensions/SmiteSpam-REL1_43-d45b08a.tar.gz ######################################################################### 100.0% https://github.com/edwardspec/mediawiki-moderation/archive/refs/tags/v1.8.22.tar.gz -=O=- # # # # https://downloads.wordpress.org/release/wordpress-6.7.2.zip #################### 27.6%Crash Annotation GraphicsCriticalError: |[0][GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt (t=51.5764) [GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt ######################################################################### 100.0% [1]+ Done torbrowser (wd: ~) (wd now: /tmp/user/1000/tmp.sHf2RQALl0) https://downloads.wordpress.org/theme/twentytwentyfive.1.1.zip ######################################################################### 100.0% 2025-03-16 120K DeleteBatch-REL1_43-59ffc3f.tar.gz