Prevent Rust On Hand and Power Tools

Do you have your tools stored in a non-climate-controlled environment, particularly if they are used in the field and exposed to the elements? If so, you know how quickly rust may form on your equipment.

A simple solution is to place pure camphor blocks in your toolbox or other tool compartment to prevent your tools from rusting. Camphor fumes will fill a drawer, cabinet, toolbox, or any closed compartment, then condense on the surfaces of the tools, coating them with a film just a few molecules thick. And because this film is an oil, it repels moisture and helps keep your tools from rusting.

Camphor is a crystalline oil derived from naturally occurring chemicals found in laurel trees or synthetically from turpentine. It slowly evaporates from its compressed block and then condenses on metal surfaces, insulating them from moisture. You need about 1 to 2 ounces of camphor per toolbox or cabinet, and you can expect the tablet to last 6 months to 1 year in a temperate climate. Be sure to keep the toolbox or cabinet space closed during storage. Avoid naphthalene (which is what they make most mothballs from these days).

Camphor is flammable — the flash point for camphor vapor is 150 degrees F. So use caution with tools such as grinders or anything that would get very hot or throw sparks. It’s also toxic if taken internally, so keep pets, children, and well… you from eating it.

You can buy Camphor from a source like Amazon. Don’t unwrap them. Instead, cut a slit in the individual block packaging and place it in the compartment.

You know it’s time to replace your camphor block when it has significantly shrunk in size, or its scent has disappeared, as this indicates it has evaporated and is no longer providing its protective benefits. A block of 100% pure camphor will gradually shrink and eventually disappear as the camphor evaporates and its odor vanishes.

Dumb 2.4GHz Devices on Unified Wi-Fi SSID Bands

Recently, my mother received a bird feeder with a camera from the family that uses AI recognition to identify bird species and recharges itself with a solar panel. (hint: if you ever buy one of these, get one with “free AI forever”; others charge a monthly/annual subscription you don’t want to be stuck with). True, it’s a little gimmicky, but she loves her birds and it’s a thoughtful gift.

BROAIMX Bird Feeder with Camera (from Amazon.com)

However, the downside to these types of devices is that they only support 2.4GHz Wi-Fi. The upside to this is extended range (think outdoors to indoors), and it doesn’t require a lot of bandwidth anyway. Most wireless CCTV-type IP Cameras still primarily use 2.4GHz Wi-Fi to achieve the desired range and penetrate materials more effectively, such as walls.

They attempted to connect the camera to the Wi-Fi, which you’d think would have been easy. But it did not. What happens is that when you have a multi-band Wi-Fi (2.4GHz, 5GHz, 6GHz) network, all using the identical SSIDs (Wi-Fi name), it gets confused and just doesn’t work. I’ve had the same thing happen with Ring doorbells in the past, along with other devices.

A phone call to the ISP may have helped them, assuming the ISP would not tell them to call the bird feeder company for support. And no one really wants to sit on hold and try to explain the issue over the phone anyway. So they call the “expert”, aka “me”.

Here are the steps I took:

  1. Boot up the trusty laptop and connect to the Wi-Fi.
  2. Get the default gateway using ipconfig from the command prompt
  3. Connect to the router/modem using the IP I just looked up from the default gateway and tried the trusty default admin/password combos (of course, then setting a new password, so don’t even try 😉 )
  4. Look for a way to set up a new 2.4GHz SSID for devices, which I was unable to find. (this is available on some access points/routers)
  5. Disable the 5GHz and 6GHz SSIDs
  6. Connect the camera to the Wi-Fo
  7. Enable the 5GHz and 6GHz SSIDs

And now the camera and/or router remembers they want to be on 2.4GHz, and all is well; now my mom is enjoying her new smart bird feeder. What a world we live in!

#2-4ghz, #ssid, #wi-fi

Why I chose auto 4×4 for my 5th Gen RAM 1500

When I bought my 2019 RAM from Edwards Ram in Council Bluffs, Iowa, back in 2019, I received the typical car salesman knowledge: “It has 4-wheel drive, and it’s nice.” Ask the salesperson any questions, and you get the glazed-over look of “Can I see your checking account now?”

Being more technical, I did some Googling on the smartphone for an hour or two, but I didn’t find much. In particular, I wanted to find out if I wanted the “4WD AUTO” (BW 48-11) feature with a limited-slip diff or the e-locker option. In the end, I went with the “4WD AUTO” (auto four-wheel drive) option because I knew I mostly needed it on the streets in the winter.

This is now 2025 and it was the best decision. Over the years I’ve gone from 4H/4L, to just 2-wheel drive, back to 4H/4L, and now to 4WD AUTO/4H/4L. I use 4WD AUTO the most and 4H/4L only when in the thick of it (rarely). When it’s snowy or icy out here in the Midwest, I can turn that on with the additional tire traction and no tire grab during steering. I recommend this feature to all drivers in this climate.

But I still didn’t understand how this worked. Was it gears or something else? But lately, I learned the transfer case is a clutch pack, similar to what’s in the transmission. It’s not as beefy as a transfer case with a gear pack and can heat up. But for how I use it most of the time, that’s not an issue.

One hidden tip you have to learn, when you are in the thick of it, is to turn off electronic stability control, but pressing the traction control lever for 5 seconds. You will see an indication message on the dash this has been turned off. You have to be in 4H or 4L to do this. This will remove unnecessary power throttling to the wheels.

If I had gone with the e-locker, I would not have the nice traction during the winter months on the road. Though true grit offroad 4×4 needs would be better. But that’s just not what I use my truck for. Auto allows me to quickly and automatically transition from snow/icy roads to dry roads without issue.

Uninstall Bing Wallpaper

By default, Bing Wallpaper is installed with Windows 11. The image rotation feature is nice, and on the surface, it seems innocuous. I left it alone for years because… well, I liked the wallpaper images it provided. But the unwanted behaviors of something pushing me to search with Bing or move to Edge when opening Google Chrome put me over the edge.

After uninstalling Bing Wallpaper, these intrusive Bing and Edge promotions have ceased!

Interestingly enough, the wallpaper defaulted to “Windows Spotlight,” which rotates through high-quality wallpaper images, just like Bing Wallpaper, minus all the spyware and malware attributes. So it’s a win-win situation.

However, one thing I did find annoying was the annoying “Learn about this photo” feature. I removed this by following the steps outlined at https://www.elevenforum.com/t/add-or-remove-learn-about-this-picture-desktop-icon-in-windows-11.7137/.

FortiGate 80F to Unifi Security Gateway Pro 4 IPSec Tunnel Issues

I have recently replaced an older Cisco ASA 5550 with a FortiGate 80F. Firewalls are not exactly in my guru status, so I do bring in a networking consultant company to help with these types of things. They are actually the ones the recommended the FortiGate 80F. However, they are quite busy, so it’s up to me to learn the systems and troubleshoot much of it, especially when it falls out of the FortiGate brand.

For years, the Cisco ASA 5550 had an IPSec Tunnel that worked flawlessly with the Unifi Security Gateway Pro 4 (USG-PRO-4). But the Cisco did not work well for more modern firewalls with other companies and AWS, which is one of the primary reasons I changed it out.

Things seemed to go well at first after a weekend install, though we didn’t do much monitoring of the specific tunnel as we didn’t get any complaints, and it’s not used that often under sustained traffic. However, the next weekend I received a complaint that RDP from the FortiGate SSL-VPN tunnel, through the USG tunnel, was failing about every 1.5 minutes.

Being new to the FortiGate, and not having touch the Unifi interface in years, it was cold turkey learning for me.

The network consultants and I went through a great deal of troubleshooting, including turning off DTLS on SSL-VPN. They saw packet errors, via the counters, on the tunnel using the following command on the FortiGate:

get vpn ipsec tunnel summary

which returned

tx packets: 1992 bytes: 1092273 errors: 134

The USG side is connected to the Internet via a cable modem from Cox on a business plan. It isn’t exactly fiber and can be prone to oversubscription (as we saw during the pandemic), however, the Internet connection wasn’t showing any symptoms there, and we didn’t show much if any, packet loss or errors via some long ping cycles to services such as Google DNS (8.8.8.8) and the public side of the FortiGate. They saw about 300ms ping times with some Jitter coming from their network, but we didn’t feel that this really was unordinary for a cable modem. We even opened a Tier 3 ticket with Cox and they monitored the traffic for 24 hours, seeing no issues.

We did try some diagnostic tools such as iperf3 and WinMTR, but those didn’t really give us anything useful.

Dead Peer Detection (DPD) was disabled on the IPsec tunnel. DTLS was disabled on the SSL-VPN. And Perfect Forward Secrecy (PFS) was disabled.

On the FortiGate, I saw a lot of “phase 1 negotiate error w/ PAYLOAD-MALFORMED” and “phase 2 negotiate error w/ progress IPsec phase 2” errors in the VPN events section of the FortiNet UI.

After off DPD and PFS, I realized that had a big impact on the frequency of tunnel reconnections, so I did some more digging.

After disabling PFS, the “PAYLOAD-MALFORMED” errors went away and I started seeing “INVALID-ID-INFORMATION”.

I did some playing around with using IKEv2 on Phase 1. But that did not work and reverted back to IKEv1. I also messed with the AES and SH1 encryption and hashing along with the DH groups. When I change these, the tunnel starts to work in many cases. But then the issues just come back after awhile. For now I settled on AES128-SHA1 with DH 5.

I disabled allowing the USG VPN to access the site-to-site tunnel. This was causing error noise as the USG VPN IP Pool was not setup to be received on the FortiGate. I also corrected/narrowed the Phase 1 and Phase 2 selector encryption and hashing options on the FortiGate. The FortiGate had copied over settings from the Cisco 5550, which was fairly broad on allowing many options, But here, those were just causing error noise and negotiation issues. These are common across the USG for phase 1 and phase 2, but separate, hidden away under advanced, in the FortiGate. After doing this the packet errors went away!

At this time I learned how to output IPSec logs on the FortiGate via SSH:

diagnose debug duration 480
diagnose debug console timestamp enable
diagnose vpn ike log-filter dst-addr4 1.2.3.4
dia debug application ike -1
dia vpn ike gateway flush name %Tunnel-Name%
dia vpn tunnel stat flush %Tunnel-Name%
dia deb en
diagnose debug disable
diagnose debug reset

I started with -255 verbosity, which only gave me this:

ike 0:site1:3903: nat unavailable
ike 0:site1:3903:Site1-sslvpn:578090: quick-mode negotiation failed due to retry timeout
ike 0:site1:3903:Site1-sslvpn:578119: quick-mode negotiation failed due to retry timeout
ike 0:site1:3903:Site1-sslvpn:578154: quick-mode negotiation failed due to retry timeout

But once I started using -1, it gave me a great deal more useful information. This started giving me “phase 2 proposals not being received”, which was a useful clue.

This round it started failing at Phase 2 with this error around 60 hours in.

I then started doing some digging on the USG to see what I can find via SSH. VPN logs are stored on the USG at /var/log/charon.log.

tail -f /var/log/charon.log

However, these did not prove to be much use. I then found a real-time console output of the IPsec connection information using “swanctl”. See https://docs.strongswan.org/docs/5.9/swanctl/swanctl.html.

sudo swanctl --log

at which point I found these, when the cycle of constant tunnel reconnections occurs:

invalid HASH_V1 payload length, decryption failed?

It turns out the USG-PRO-4 runs the StrongSwan server, version 5.2.2, for IPSec, and the Ubuntu version is from 2019. From what I’m reading, this is the same server the Cisco ASA ran. I would assume around the same version. This version is from 2015, and there have been many gripes with issues in this version area.

After some investigation, I found that people were resolving this with a shorter pre-shared key and removing special characters. This was an IPSec connection from a mobile device. Says Android 7 worked fine, but started getting this with Android 9. Though, this seemed to appear in earlier minor versions. So I’m not confident this is related.

I’m also seeing suggestions to dumb down the encryption even further from AES128-SHA1 to 3DES-SHA1.

Now granted, it takes about 4 days for this issue to arise, so it’s possible they didn’t wait long enough and follow up in the forum. But it’s worth a shot to simplify the pre-shared key. Currently, 22 characters consisting of upper/lower and numeric. Going to just 8 upper/lower characters.

Interestingly enough, I found the config files on the USG for Strongswan that contain the IPSec/VPN configs and pre-shared keys.

The pre-shared rekey didn’t work, however, I’m not positive I got it to the state where that mattered. After a number of tries to low-key reset things (config reload, tunnel down/up, etc) it seemed that only ‘sudo ipsec restart’ (restarting the ipsec/strongswan service on the USG took care of it. A provision to the USG didn’t do the trick, not sure why.

sudo ipsec restart

So if this problem crops up again (in 4 days?), I’ll create a cron job to restart ipsec at 3am each day.

In conclusion, it appears the major issues are:

  • Dated version of the USG’s strongSwan server from 2015, even on the current firmware version
    • Potentially reducing the pre-shared key complexity/size (TBD)
  • Removing encryption/hashing options that do not exist specifically on each IPSec’s configuration
  • Removing the auto-generated tunnel selectors on the USG that do not have a policy on the FortiGate

Here is what you want to see in diagnostic console output on the FortiGate for phase 1:

2023-05-25 17:55:47.927110 ike 0:Site1:5673:873531: peer proposal is: peer:0:10.11.12.0-10.11.12.255:0, me:0:10.13.14.0-10.13.14.255:0
2023-05-25 17:55:47.927138 ike 0:Site1:5673:Site1:873531: trying
2023-05-25 17:55:47.927480 ike 0:Site1:5673:Site1:873531: matched phase2
2023-05-25 17:55:47.927509 ike 0:Site1:5673:Site1:873531: autokey
2023-05-25 17:55:47.927551 ike 0:Site1:5673:Site1:873531: my proposal:
2023-05-25 17:55:47.927575 ike 0:Site1:5673:Site1:873531: proposal id = 1:
2023-05-25 17:55:47.927598 ike 0:Site1:5673:Site1:873531:   protocol id = IPSEC_ESP:
2023-05-25 17:55:47.927621 ike 0:Site1:5673:Site1:873531:      trans_id = ESP_AES_CBC (key_len = 128)
2023-05-25 17:55:47.927645 ike 0:Site1:5673:Site1:873531:      encapsulation = ENCAPSULATION_MODE_TUNNEL
2023-05-25 17:55:47.927668 ike 0:Site1:5673:Site1:873531:         type = AUTH_ALG, val=SHA1
2023-05-25 17:55:47.927696 ike 0:Site1:5673:Site1:873531: incoming proposal:
2023-05-25 17:55:47.927718 ike 0:Site1:5673:Site1:873531: proposal id = 0:
2023-05-25 17:55:47.927741 ike 0:Site1:5673:Site1:873531:   protocol id = IPSEC_ESP:
2023-05-25 17:55:47.927763 ike 0:Site1:5673:Site1:873531:      trans_id = ESP_AES_CBC (key_len = 128)
2023-05-25 17:55:47.927786 ike 0:Site1:5673:Site1:873531:      encapsulation = ENCAPSULATION_MODE_TUNNEL
2023-05-25 17:55:47.927813 ike 0:Site1:5673:Site1:873531:         type = AUTH_ALG, val=SHA1
2023-05-25 17:55:47.927844 ike 0:Site1:5673:Site1:873531: negotiation result
2023-05-25 17:55:47.927867 ike 0:Site1:5673:Site1:873531: proposal id = 0:
2023-05-25 17:55:47.927889 ike 0:Site1:5673:Site1:873531:   protocol id = IPSEC_ESP:
2023-05-25 17:55:47.927912 ike 0:Site1:5673:Site1:873531:      trans_id = ESP_AES_CBC (key_len = 128)
2023-05-25 17:55:47.927935 ike 0:Site1:5673:Site1:873531:      encapsulation = ENCAPSULATION_MODE_TUNNEL
2023-05-25 17:55:47.927957 ike 0:Site1:5673:Site1:873531:         type = AUTH_ALG, val=SHA1
2023-05-25 17:55:47.927979 ike 0:Site1:5673:Site1:873531: using tunnel mode.

When phase 2 expires, you want to see this:

2023-05-25 18:03:36.056951 ike 0:Site1: IPsec SA {id}/{id} hard expired 23 1.2.3.4->5.6.7.8:0 SA count 2 of 4
2023-05-25 18:03:36.057106 ike 0:Site1:5673: send IPsec SA delete, spi {id}
2023-05-25 18:03:36.057224 ike 0:Site1:5673: enc {id}
2023-05-25 18:03:36.057273 ike 0:Site1:5673: out {id}
2023-05-25 18:03:36.057361 ike 0:Site1:5673: sent IKE msg (IPsec SA_DELETE-NOTIFY): 1.2.3.4:500->5.6.7.8:500, len=76, vrf=0, id={id}/{id}:{id}

If all goes well, I’ll look into adding back in DPD, PFS, and DTLS as well as increasing the encryption, hashing, and DH levels.

Other UniFi USG Commands for IPSec:

sudo ipsec statusall
sudo ipsec up <connection_name>
sudo ipsec down <connection_name>

Now that I’m aware of the legacy server versions on the USG-PRO-4, the end-game is to replace the device, perhaps with a EdgeRouter X. The current firmware is up-to-date and I’ve seen Ubiquiti’s lack of update and support for this item, even though it’s not marked end-of-life.

#80f, #fortigate, #ipsec, #networking, #security-gateway, #tunnel, #unifi, #usg-pro-4

Copying AWS EC2 Tags to EBS Using PowerShell

These days when creating an EC2 instance in the AWS console UI, by default, the tags are duplicated across Elastic Block Service (EBS) and Elastic Network Interface (ENI) attached resources being created. But what happens if you have an older instance that didn’t do that or you add tags to an EC2 instance and need it to reflect across attached resources? It’s easy when you only have a few EC2 instances. Just copy/paste in the console UI. But what if you have them in bulk?

I did my Googling and came across what seemed to be the quickest solution: AWS PowerShell (yes, I’m a Windows user)

I came across “Tag AWS EC2 EBS volumes with the instance name tag” by Alex Neihaus written in 2017 and modified it slightly to fit my needs. But as a new user to AWS PowerShell, it took me a little bit of a learning curve, especially as the method has changed from a legacy Windows-specific, single, large-module version of AWS Tools for PowerShell. Instead, I used a modularized version of AWS Tools for PowerShell where each AWS service is supported by its own individual, small module, with shared support modules AWS.Tools.Common and AWS.Tools.Installer.

Continue reading

Debloat Windows 11

Perform the following at your own risk. Microsoft does not support this program, which is maintained by an individual I do not know personally nor know their reputation well.
It is recommended to perform this cleanup only after a clean install. Using this after customizing or installing programs may end with undesired consequnces, such as missing required programs. As an example, QuickBooks requires XPS for PDF utilities (which can not be fixed with Intuit's fix tool automatically). It is highly recommended to take a snapshot or backup before proceeding.

My job and home life do not require much desktop workstation maintenance. Most CF Webtools staff are competent with their environment or use a client’s pre-packaged workstation. However, I set up workstations here and there for different reasons, mostly Windows 11.

But as you well know, Windows 11 comes with bloatware. I would manually uninstall as many programs and apps as I could. But some are forced to take residence.

BloatyNosy

Check out “BloatyNosy” (Bloaty ‘n Nosy). Self-described as “streamlines and houses all the essential settings under one app and allows you to disable and remove unnecessary features with just a simple click.”

This app is born as a way to simplify and combine “Privatezilla”, “Bloatbox for Windows 10”, and “ThisIsWin11 for Windows 11”.

After downloading the app from GitHub, you must extract and run the “BloatyNosy.exe” file. Press “Run anyway” if Microsoft Defender SmartScreen prevents you from running an unrecognized app from starting. You may bypass the “Torjan:Script/Wacatac.B!ml” virus warning at your own risk. It appears to be a false positive.

Press the “Analyze Windows x Build x.x” button to scan your computer for recommended actions. You will see results similar to this: (scroll up for more)

If you press the down arrow and press “Fix problems”, it will potentially do some things you do not prefer, such as setting a dark theme and enabling the Linux subsystem.

You may either press this “Fix problems” button and go with their recommendations listed in the list or press the (not so obvious) link below the list to choose what to do and not to do.

After completing your selections, press the “Fix problems” button.

You may have to manually input some confirmations, such as agreeing to source agreement terms when winget runs.

Once the checklist is complete, it will silently sit there without feedback. I recommend opening Task Manager and ensuring the “BlotyNosy” app is at 0% processor, then reboot. Task Manager can be found by right-clicking the Start menu icon and selecting it from the context menu.

Results

You will be left with programs such as “Xbox Game Bar” and “Xbox Live”. You will also notice bloatware apps listed in the start menu you thought would have been removed. However, they appear linked to installers and can be “unpinned “or “uninstalled” individually by right-clicking the icon. These include such programs as WhatsApp, Spotify, Disney+, TikTok, Instagram, and Messenger.

Other Options

You can also use “BloatFinder”, which removes pre-installed apps manually, and “WinModder”, which allows you to apply code snippets based on PowerShell and community scripts, individually. Also, check out “I want to set up Windows 11 for the first time”, where you can call a Windows 11 Setup/Assistant, customize your system step by step, and debloat it. And lastly, InstaPackage is integrated, which allows you to install some of the most important apps with a click and in bulk.

On the WinModder app, you may need to install the mods signature file by pressing the link:

#bloat, #windows-11

Wiki.js Active Directory Authentication Configuration

I have recently taken the opportunity to explore Wiki.js as a replacement for a MediaWiki system.

Wiki.js Docs Example

You can add authentication strategies from sources such as Auth0, Azure AD, Facebook, GitHub, Google, LDAP / Active Directory, OAuth2, Slack, and a number more. The current network has a Domain Controller with an Active Directory, so I wanted to integrate that.

The first thing that came to light was that Active Directory (AD) will talk in LDAP on port 389 and LDAPS (secure) on port 636 natively. Sounds great! However, not being an LDAP or Active Directory expert and a lack of documentation from Wiki.js, this became a challenge of “try and sees”.

Continue reading

#active-directory, #ldap, #wiki, #wiki-js

“i” is for Intel on AWS EC2

Last year, AMD-based instances came into existence on Amazon Web Service’s (AWS) Elastic Compute Cloud (EC2). AMD brought a slight performance decrease and a reasonable price discount. CF Webtools is mostly website focused, and almost all of our servers have no problem going with that decreased performance metric.

Since EC2 was created, they’ve used abbreviations, such as “M1” for general purpose (think Main) and T1 for burstable (think Turbo). The characters are the instance class, and the numbers are the generations.

Then in 2020 came the AMD, such as M5a, which appended the “a”. This year came Graviton, powered by Arm-based processors, such as M6g, which appended the “g”.

From day one, any abbreviation that lacked the last character was an Intel processor. The sixth generation has changed that. Now you will start to see “i” appended, if it runs Intel, to flow with the “a” and “g”.

There are other characters in these abbreviations, but that’s for another day.

On August 15th, 2021, AWS introduced M6i instances.

Back to Space

There’s one man’s ventures that I like to follow: Elon Musk

A citzen of South Africa, Canada and the US, he leads up SpaceX, Tesla, The Boring Company, Neuralink, and OpenAI. He worked his way from Zip2, X.com which ended up in the hands of PayPal.

A would love to own the Tesla Model S, Model 3, Model X, and Cybertruck. But I’m going to need a raise first.

But what’s most impressive to me is SpaceX. Their quick-turnaround reusable rocket sections have made space travel so much more affordable.

Since the end of the Space Shuttle era back in 2011, we’ve relied upon the Russians to get U.S. astronauts to space at a hefty price tag.

Now, if everything goes to plan, that will all change around May 7th. The date is not official and is just a target at this point. But April, May or June are likely according to Mark Geyer, director of Johnson Space Center. Whatever the date, it will mark the first human space flight by a private corporation, rather than the government. And of course, that leads to significant reduced costs.

But let’s not forget the government is what got them to their starting block. While these are new engines and, well, everything, they didn’t start from scratch.

After numerous tests from empty flights, to automated cargo deliveries to the Space Station, to testing the in-flight abort system, they are ready for the humans.

Boeing almost made the first human flight, but they’ve got some major software issues they’ve got to work out after their last mission just didn’t cut it.

I’m looking forward to this launch date, and I’m sure much of the world will be watching as well.

#elon-musk, #nasa, #space, #spacex