Technology

Leaving Google

I’m not going to go into a ton of detail, because I am sure I have rambled about it before, but I have had a pretty downward relationship with Google. There was a time when I was an enormous Google fanboy, and that slowly started to decline as they started just, removing services and features, and the core turn happened when they dumped Google Reader. Over the last ten years or so I’ve slowly migrated things away from Google, though I never quite outright left Google. In fact, technically i still and not quite “leaving” Google.

This is the problem with a company like Google, you can never quite “leave”. Most of what I use though wasn’t super due to choice. I use YouTube, because there isn’t really an alternative, for example. I also continues to use Gmail and Calendar, because I had a free Legacy G-suite account, that allowed me to use my domain for my email. I do also have a Legacy Gmail account, from when things were Invite Only as well. I don’t really use Docs or drive, except for a few annoying services that don’t offer alternatives. I sort of used Photos, but more as a backup to my backup to my backup, never as a primary, and I stopped when they discontinued the Unlimited Storage.

I have a variety of reasons I dislike Google, but I’m not going to get into all of that here and now.

However, it recently came to my attention that Google is discontinuing it’s free tier Legacy G-suite accounts. Previously these accounts were grandfathered, but now they are going away. This is an enormous problem for a lot of people who use this as their Primary account, central to their work flow. Thankfully, in my case, I have mostly stopped using Google for my workflow, but this is definitely giving people a bad time. The only option is essentially to pay to upgrade to a regular account, at $6/month on the lowest tier.

Part of my annoyance stems from having to hear about this from a Podcast, talking about Microsoft offering a discount to people who switch. I didn’t get the email, as the email went to my admin account, that I never check and forgot existed. Granted that is on me, but I wonder how many others are going to get screwed by this.

My only worry at the moment is what will happen to my Play Store purchases. It appears that my account will be able to downgrade to an Identity Account, which will allow me to keep my Play Store purchases. It also seems to keep YoutTube data as well. but to be safe I’m shuffling that around as well (more in a bit).

So what do I, personally, need to do about this?

The main issue is email. I use my domain email on Google a lot. It’s one of two Primary Email addresses, and it’s the top one of those two. Fortunately, I already run an email server for some secondary domains. I was planning to get rid of that email server, but it could wait for a bit while I wind down my Primary Email as well.

Fortunately, I didn’t need to go this route. I pay for Microsoft 365. I suppose it’s worth mentioning, my problem with what is happening with Google, isn’t the paying. The $6/month tier at Google is just not worth it for me. I dislike Google as a privacy nightmare for starters. The search results have been shot for years, they push a lot of weird lock ins. Docs/Sheets sucks next to MS Office as well, and you get a LOT more space with One Drive than Google Drive. The lowest tier of Google’s offerings is $72/year, and I pay $99/year for Microsoft 365, for SIX accounts, which I use across my family.

Anyway, Microsoft 365 offers the ability to use a custom domain email. The set up is designed to be simple, and uses GoDaddy, which I don’t use, but there is an easy work around to use any domain registrar. It’s all just DNS records. If you are capable enough to set up DNS records, you are capable of following this helpful guide on Reddit. You may need to massage things a bit, for some reason the guide has a 0 leading the @ entry which I didn’t need. Though I did need to set the Priority to “0” (Zero) before it took, over on Cloudflare’s DNS. I followed the guide, and around 24 hours later (probably would have been sooner but I had Priority 5), the email was coming in to my Outlook account instead of my Gmail account.

The biggest hurdle was out of the way.

It’s worth mentioning, that Gmail will still contain the older emails. It may be EASIEST, to clean out those emails BEFORE transferring the domain. You can probably still connect the old account to something like Outlook or Thunderbird, but to be sure, either make sure you already set up the Gmail account in a client, before the transfer, if you go this route. This suggestion is honestly, for any 3rd part email provider. You can do a Take Out request, but it’s much easier to just use a client, then drag and drop emails.

In my case, I already had MOST of my emails cleaned out. I keep a local email server on my Synology NAS, with a sorted archive of all my emails. If you really want to be thorough, once you have copied the emails off, go back to the Gmail web interface, select “All Mail”, then use the “Select all” button at the top of the list to delete everything.

Next step was calendars. This was fairly simple. I opened Outlook’s calendar and Google Calendar in tabs side by side. I copied the URL for any web calendars I was subscribed to (use the ical URL) over to Outlook. I then took a moment to sort out the events on my remaining user created Google Calendars, before exporting and importing them to Outlook. Lastly, Google Calendar lets you create tasks and reminders, I manually copied those all into Microsoft ToDo, (which I also, already used). The remaining task, my wife has a Google Calendar from her Gmail account that we share. I’ll transfer my half of that from my Gsuite account to my Gmail account and be done there. I’d convince her to convert it to Microsoft but frankly convincing her to do the shared calendar int he first place was enough of a hassle.

After the Calendar we have Docs, well, Drive, and mostly Sheets. I honestly could never quite get Google’s naming for it’s office suite. I don’t keep much in my Google Drive, some PDFs I had clipped and a few shared docs I had saved off. I simply downloaded everything and sorted the files out to other places in my archive structure.

Photos is tedious, but not hard either. I already have better back up systems in place for my photos, using some USB drives in a safe and One Drive in the cloud through my NAS. I did have thousands of photos uploaded to Google Photos however, from around 2005 through 2019. Mostly I am just going through periodically and deleting them all out, downloading a few here and there just to make sure that I have them saved locally, which I probably do. These “here are there” things are more like, scanned photos, some random work photos, some screen shots from my phone. Things that may have been direct uploads basically, instead of pushed up by the old Photo Uploader from my archive.

The last real potential issue is YouTube. I have several channels on YouTube, though I don’t use them a lot for posting, I do use them for different things. 3 of the 4 channels are “Brand Accounts”. I had previously converted them to Brand Accounts to consolidate ownership under this Gsuite account. This also makes it easier to shuffle ownership back to my Gmail account. I have a 4th channel that is just a regular YouTube account, that I will likely convert to a Brand account and shuffle over to the Gmail account as well. I may also just copy it’s playlists over and call it good.

The last worry, I mentioned before, is my Play Store purchases, mostly Apps, I don’t care about books and movies or music as everything I have gotten there is free. I suspect I will continue to be able to use this account as an ID account, connected to those app licenses. Ideally, I would love to transfer ownership of everything to my Gmail account, but I don’t think that’s going to be offered as an option.

Purging WordPress .ico Malware… (Hopefully)

So, this is a hopefully, because it’s been a bit since I have done this, and things seem to be clean. So, there is a reasonably common bit of Malware out there that seems to affect WordPress sites, I say reasonably common, because in my time looking for a solution, I have come across a fair number of others with the issue, but no solutions. And I have tries several solutions. As of now, I have been a few months clean, and without hacky work-arounds. I’m going to attempt to run through what I did that held it at bay, and what seems to have finally managed to purge it, in hopes of helping others.

The Malware itself basically would occasionally redirect the blog domain to a spam website. I say occasionally, because it’s not all the time, and with enough anti-advertising stuff in your browser, you may never see it happen. I have personally, never once seen it happen, on any of the sites I run on this web space. I first found it was infected because occasionally, my wife would mention that someone she had linked her blog to, was getting sent to a spam website. Initially I thought maybe someone was mistyping the domain along the line. My wife also said it would happen occasionally. In my work combating this malware, it seems like the actual redirect occurs slowly over time, as the infections spreads.

It also will spread across sites hosted on the same server. Which made it extra tricky to fight because I had to juggle several sites at once.

Part 1 – Keeping It at Bay and How it Spreads

I have no idea how the infection was initially started, which is rough, because that would be key to KNOWING it’s gone. As near as I can tell, the initial source of the infection is int he uploads directory of a blog. It eventually starts to add “gibberish code” to files like wp-config.php and settings.php. I say “Gibberish Code” because it’s actual PHP, but it’s very messy in it’s design and encoding to make it hard to read to locate files. The gibberish code would generally show up at the top of the files, but could be elsewhere.

Eventually, random folders would start showing up in the root WordPress directory, sometimes with gibberish names, sometimes with specific spammy sounding names, sometimes with names that appear to be part of the blog (like ‘site’ or ‘blog’).

The first step in holding this at bay was so dump all write permissions for several critical WordPress files that kept being infected. This seemed to only sort of help, the problem was more that the owner, www-data, still could write to the files.

The next step was to convert all of the web files to an alternative user account as the owner, then set the files so www-data could only read. This created a new problem, it meant I could not easily update anything or upload images for blog posts easily. Since www-data had no permissions to write anywhere. If I was making a new post, I would have to SSH into the server, temporarily change the permissions, then change things back.

Pain in the ass.

My temporary fix there, was to keep the current year as writable, and run a script that would probe for malware files and delete them. There were two scripts, one for the hidden .ico files that would crop up and one for any .php files that were in the Uploads folders. Both run with a cron job.

#!bin/sh
/usr/bin/find /var/www/html -name ".*.ico" -exec rm {} +

This is, admittedly, an EXTREMELY Hack way to correct this problem. Hack less in the sense of “computer hacker”, hack in the sense of “jankey or shoddy”. But it worked, while I figured out the root issues.

Part 2 – Fixing the Issue

Eventually I sat down and just sort of rebooted everything, all at once. I started with everything set up as an alternative user permissions and locked down. I then scrubbed out all infected php and ico files from the upload folders. I then thoroughly scrubbed out the wp-config files. Basically, any files I would need to moved to a fresh WordPress install, which was the uploaded images, and the configurations, were completely sanitized.

Next, I downloaded a fresh copy of WordPress, expanded it out and made copies for each site folder with websitename_new. After that, I copied the uploads folders and wp-config files to the new copies. Then i renamed each current folder as websitename_old, and renamed the new ones as simply websitename. (I actually did this and the subsequent steps once at a time for each site). This made the new, fresh installed copies live.

Except they have no plug ins and no themes. I did not transfer any old theme files or plug in files, for worry of infection. Instead I went into the old folders to get a list, then redownloaded each theme and plug in to the fresh copies. This meant doing some reconfiguring but it was worth it for clean copies. I also left out anything that wasn’t absolutely essential to the basic look and operation.

Site note, when a fresh install copy is made live, it may not load until you go into /wp-admin, and change the theme to literally anything else (Generally, the current year WordPress Default works). The config files will still be looking for the non-existent old theme.

With everything fresh and ready to go, I deleted the old potentially infected copies, to ensure the infection was now completely purged. After that, I created a backup folder, and copied all of the current fresh versions of the site folders to the back ups. This way, in the event of a reinfection, I could simply, slap a fresh back up in place easily. It might be missing a few recent images, but it would be way less work.

Still worried, I then reverted the permissions for the sites back to www-data, but I did them one at a time, roughly a week apart. Carefuly checking for reinfection with each change.

So far so good, I have not had any problems. Here is hoping it stays.

Fixing Cron Not Executing

Recently I encountered an issue I hadn’t run into before. Specifically, my Cron Jobs were not running. Everything seemed correct and I could manually run the commands at the CLI. I’ve had some issue before with getting things to run because I wasn’t using the complete path for programs but this seemed to be something different.

The problem I found was that the root password needed to be changed. Running the following:

sudo  grep CRON /var/log/syslog

Would output a long list of the same issue repeating over and over.

May 27 10:30:01 Webserver CRON[12943]: Authentication token is no longer valid; new one required
May 27 10:39:01 Webserver CRON[12978]: Authentication token is no longer valid; new one required
May 27 10:39:01 Webserver CRON[12977]: Authentication token is no longer valid; new one required
May 27 10:40:01 Webserver CRON[13049]: Authentication token is no longer valid; new one required

When running the following command:

 sudo chage -l root

Would output something like:

Password expires               : never
Password inactive              : never
Account expires                : never

Which suggests the root password has never changed. So I ran the following command:

sudo passwd root

And set a new root password (which was the same as the old root password) and suddenly everything started working again. It felt like a really odd issue, especially considering I didn’t actually change the password, and as far as I could tell I had a root password. Plus the password wasn’t set to expire at all.

Anyway, I wrapped it off by doing an (optional) truncation of the system log. Since the file had become unwieldingly huge with the following.

sudo truncate -s 0 /var/log/syslog

New Desktop Upgrade

My new desktop I mentioned at the end of my last post arrived. I am fairly good about adjusting my workflow when changes or upgrades happen, but this particular change in it’s nature, is incredibly disruptive. My whole process kind of stems out from a source, which for the most part, is either my laptop or my desktop. If I were to get a new laptop, not much would change. Most of that workflow runs off of shared drives or cloud files. On the base level, the desktop works the same way, the real trick I get to deal with is the ripple effect downstream, which I will get more into in a bit.

The machine itself runs fine. It’s much much quieter than I expected it to be, which is nice. The crazy Neon lights aren’t as slightly annoying as I expected, especially once I figured out how to adjust them to be a more toned down, non pulsating, single, cooler color. The day after ordering, I realized that I might need new monitor cables, I checked and sure enough, all of the outputs save one are Display Port. My old set up consisted of a display port adapter, a DVI port and an HDMI out, all three to DVI on the monitor end. I may update the monitors later but it’s not necessary now.

The inside is crazy empty and clean. I’m not quite sure yet where I would even put additional hard drives, though I suspect they mount to the sides.

It certainly handles every game I’ve thrown at it incredibly smoothly even with maxed out graphical settings. My current plan is to keep this machine relegated mostly for gaming (a bit more on this later), so i will keep it fairly clean and free from excess software. So far I’ve tried it out with Forza Horizon 4, Overwatch, Black Desert Online, Minecraft, Control, Quake 2, and Quake 2 RTX.

The RTX is really quite remarkable. The reflections are really neat and the shadows work very well. I look forward to finding more titles that take advantage of the ray tracing capabilities.

The Ripple Effect

Where the real change is happening is down the line. For the sake of maybe alleviating some confusion, I am going to go ahead and use the Network names for my computers. The old workflow consisted of my Windows 10 Desktop, Squall, that I originally put together back in 2012. It still runs everything perfectly fine, since 2012, I’ve bumped up the RAM quite a bit, updated to an SSD, and updated the video card to a 1050ti. Sitting under the desk next to that was Rinoa, am even older box, that I am pretty sure I got second hand somewhere, running Xubuntu Linux. Xubuntu because, it’s only 32bit hardware. It’s primary function was being a web server, for my Dashboard, and a file server. It’s got several old drives in it all shared on the network to dump less important files to, because I’m a digital packrat.

The new machine is Cloud. See a pattern here yet. If it helps my laptop is Selphie, my old laptop was Rikku, my old project server years ago was Quistis and before that Yuna, my family’s laptops are Ivine, Barret,and RedXIII. They are all Final Fantasy characters.

Rinoa running 32bit hardware has been a problem for a while. Several interesting projects I have found needed to run on a 64bit system to get up and running. It’s also woefully under powered for anything robust, like running a Minecraft Server. Rinoa has been desperately in need to replacing for a while. Which is where Squall comes in now. Squall, will become the “new Rinoa”. Squall will become the new project server.

Making this change isn’t easy, it’s still not done, and I’ve been working on it for the last week. Squall is also a much more capable machine, so it changes the workflow a bit. Where Rinoa ran headless, I’ve decided to keep Squall on one of my three monitors for now, and work with it using Synergy. I can offload the load of doing things like, running the web browser off of Cloud to Squall if I want. I also can use Squall for Discord and IRC.

The first thing I decided to do was to move the Web server aspect to a Raspberry Pi. I already had a Pi running a LAMP stack to host my WordPress Archive blob. Moving the basic Dashboard was easy. Copy the files, import/export the database, and it worked, no problem. The harder part was moving the backend processes. I’ve started doing a lot of combination projects, that often consist of some sort of Python or Bash script running that dumps data to a database, and a web based GUI. Like the Network Map, or my rudimentary Twitter Scheduler or the web based Download Queue system for a particular web video downloading software that shall not be named. Getting these to work on the Pi is trickier. Partially because I’d forgotten some steps. For example, I created some environmental variables to open the database with scripts, so I didn’t have to put raw log in credentials in them. I forgot how I had done that, so I converted them back to raw log in credentials for now. I have others that are looking for commands from packages that need to be installed that I’m not sure are available on the Pi.

I’ll get it worked out, I just need a bit more time.

I’m also not real sure I want to move TT-RSS to the same Raspberry Pi, just because it’s constantly polling. I am not sure I want to run that level of read/write on an SD card and risk losing my other files. I will probably just set up a second Pi JUST to run the TT-RSS Server.

The other major thing to move is the files. I started off by consolidating everything, for simplicity’s sake. I converted and consolidated up my video files on my NAS recently, which freed up a lot of space. I’ve been meaning to re-allocate some files off of Rinoa back to the NAS and I used the move as an excuse to do just that. At the same time I consolidated the remaining files onto the largest of the various drives in Rinoa, so I can start off by just moving one drive to Squall, to reshare on the network. Moving the webserver to the Pi also meant giving the Pi an extra USB drive, for more storage. The Video Downloader that Shall Not Be Named, pulls video files, which are larger. I set up a new network share from the Pi for “Working files” and moved all of the “working Files” folders from Rinoa to the Pi.

The process overall isn’t complicated, it’s just time consuming with large data moves and some configuration changes.

Physical Set Up

Another aspect to adjust was the physical set up. Initially I just pulled Rinoa out and stuck Cloud in it’s place on the floor. This was partially done because this was the best solution for cable lengths available until the new Display Port cables arrived. I’ve got some pretty good cable management going on and I am not a fan of cables just hanging all over, a side effect of 15 years of working around equipment racks with impeccable cable management standards. Once the monitor cables arrived, I undid everything and reran all the cables, putting Squall on the floor and Cloud up on the little floor shelf under my desk. The main downside in the end is that the cleaner cable solution puts the large side window on the new PC against the backside, so I don’t get to see inside my PC all the time. Thankfully, I’m not a big fan of this aspect of the machine to start with.

Rinoa is going to just sit behind the monitors on a shelf for a bit until I finish with her, but in the end, the plan is to retire that machine out.

Going Forward

I am actually almost more excited about the prospect of molding Squall into the new Project server than I am the flashy new Gaming Rig. The 64 bit hardware and 24gb of RAM means I can do a whole hell of a lot more than I ever could with Rinoa. I can set up a massive Minecraft server with a whole heap of worlds available. I can run Docker and everything that goes along with that, I can set up a robust and speedy OpenSIM world if I want. I also plan to continue to use Squall as my Video Edit machine, no need to bog down Cloud with all that extra overhead in software and disk space. I also can much more easily start playing around with VMs.

I could have done a lot of this before of course, but I find keeping all of that up and going on a machine you are also using for day to day use and gaming gets distracting, and you start running into resource use issues much more quickly.

A Long and Short Journey with Dogecoin

Something something, I am not a financial advisor and am not giving financial advice.

Everyone is talking about Dogecoin in the last few days. I’m not sure why exactly, there are a thousand different Crypto Currencies out there and DOGE isn’t new. Personally, I do not follow Cryptocurrency at all. It really feels like it’s just a digital MLM scam. Sure, people are making money but the long term use and sustainability isn’t going to last. People like it now because it’s all “deregulated” but at some point, if it ever became big enough to be mainstream, it’s going to become regulated, which would kill the appeal. It doesn’t help that your regular everyday person has no idea what Crypto even is. The best quote for “what is crypto” I’ve seen floating around…

“Imagine if keeping your car idling 24/7 produced solved sudokus you could trade for heroin.”

One of the most common points I see is that “Crypto is just as real as the dollar (or any other currency).” This is of course because the dollar is “worth” what it is “only because the US government says it is”. Which honestly is kind of a misrepresentation of why a dollar is worth a dollar, but ok, lets go with that. Dogecoin, or any crypto, is “worth” something, because a bunch of speculators trying to get rich quick and not be holding the bag when everything collapses say it is worth something. The Dollar is worth something because the entire economy of the US, and a lot of the world, and the Government, backed by it’s people and an army and a general long term trust, says it’s worth something. So technically the original statement is true, but in reality, the level of backing on the dollar is much larger than that of a bunch of random kooks online.

Anyway…

Back in 2014, Dogecoin got big on Reddit. It was literally just a meme making fun of Bitcoin and people were using it as a sort of upvote/award system with Dogetipbot. Which was fun. I bought around 5000 DOGE for around $5. I got some tips, I gave some tips, eventually I stuck in all in a local wallet and I think the Dogetipbot broke so the whole thing kind of gotten forgotten about.

Then, this year, for some reason, Dogecoin started booming. Fortunately I had my old wallet. Unfortunately, syncing the last 7 years of blockchain takes a long time. It took something like a month to get my wallet in a usable state, and the software felt really buggy, requiring many restarts to kickstart the sync. Suddenly my 5000 DOGE was “worth” about $1500. I admit I got a little caught up and figured, I’d see how far it would go. Everyone says they want to take it to a dollar per DOGE. Let’s see if that happens.

I could see the hype taking it to a dollar. I really can’t see it every getting to Bitcoin levels of thousands. At the very minimum, it would take long enough that by the time it happens, the Governments of the world would have started regulating crypto to the point where it all mostly died off anyway. DOGE kept climbing, fifty cents, sixty cents, seventy-five cents. At some point, I decided that if it managed to reach a dollar, I’d go ahead and buy myself a new PC. I’ve been considering updating my desktop, some of the components are around ten years old (the Processor specifically), and what better to spend my sudden surge of fake money on. I also decided to buy a pre-build machine. The main thing keeping me from working towards an upgrade was how hard components are starting to be to acquire, a lot thanks (no thanks) to crypto mining.

I found I could buy directly from NewEgg using BitPay, so I prepped up half my DOGE into a Bitpay wallet. When it got up to seventy-five cents I was really close to just going ahead and pulling the trigger. I got to a point where I cared more about my PC upgrade than the DOGE. I even dumped a bit more into my BitPay, ready to use. I also figured I should pull the trigger at eighty or ninety cents, since it seemed like a lot of people were planning to dump at $1.

But then I saw news about Elon Musk going on SNL, and being a mechanism to propel DOGE to $1. I’m not a fan of Elon Musk at all, for reasons I’m not getting into here, but I figure if anyone can make this go up, it’s probably Elon Musk. So the decision was made to just wait for SNL.

Then Elon was on SNL, and DOGE dropped from $0.70 to around $0.50. It seems to have leveled off around this point as well, even dropping a bit at times. At this point, I had to remind myself, that I am not a “cyrpto guy” and I have no interest in becoming a “crypto guy”. This was just a dumb meme that I had jumped on years ago.

Long story short, I dumped the rest of my DOGE into BitPay, and ordered up a new kick ass gaming desktop PC.

I am now super looking forward to running games in blazing FPS with RTX and all the Ultra Super Graphical bells and whistles. In the meantime I’ve got to work on shuffling some files around to make everything work once the new desktop arrives. I currently run two desktops, one is my “main PC” and the other is an old 32bit Linux PC that mostly serves as a file server and a web project server. I don’t need to run 3 PCs and the 32bit PC has been a thorn in my side for a while with it’s 32bit limitations, so I plan to shift my current main desktop to be the new Project server and dump the old Linux machine. I look forward to being able to actually host a sweet Minecraft server and OpenSIM server and getting the chance to better learn how to use Docker.