750 SX Hull Cleanout

Not much to do while I wait for my parts, so I scrubbed with some comet. It’s not like new, but it’s much better than it was the day before.

03-Aug-2015 19:33, Motorola XT1060, 2.4, 4.499mm, 0.008 sec, ISO 320
03-Aug-2015 19:33, Motorola XT1060, 2.4, 4.499mm, 0.009 sec, ISO 160
03-Aug-2015 19:33, Motorola XT1060, 2.4, 4.499mm, 0.009 sec, ISO 200
 
03-Aug-2015 18:43, Motorola XT1060, 2.4, 4.499mm, 0.004 sec, ISO 160
03-Aug-2015 18:37, Motorola XT1060, 2.4, 4.499mm, 0.002 sec, ISO 160
03-Aug-2015 18:37, Motorola XT1060, 2.4, 4.499mm, 0.009 sec, ISO 160
 
03-Aug-2015 18:36, Motorola XT1060, 2.4, 4.499mm, 0.003 sec, ISO 160
 

750sx – Day 2

There isn’t much to add, I encountered a road block pretty quick. Next stop is to start working on splitting. Removing the stator cover was straightforward and was not disappointing. No massive amounts of corrosion or any other horrible findings there. Also I found that the flywheel has a very convenient pair of shoulders on it to grab, I’m not sure what people’s deal is with removing the head and stuffing wood or rags in to stop the engine from turning is. The other end took a bit of heat and a special tool, part# LONGASSPRYBAR to spin the drive coupler off. After removing I could then see the business I was after.

02-Aug-2015 17:36, Motorola XT1060, 2.4, 4.499mm, 0.035 sec, ISO 640
 

Yup, I’d guess there is an issue there. On to taking apart the other side, well while I can easily not turn the flywheel, I can’t easily remove it. It has center threads for removal, but the thread pattern is 18×1.5. I ordered the right tool, as well as all the gaskets I should need for reassembly and am now waiting on them. Day 3 should be cleaning out the inside of the hull and hopefully I’ll have some after photos to share from that. Otherwise we’re in a holding pattern until stuff arrives.

Day 1 as a PWC owner/mechanic

Admittedly, I’ve “owned” the thing for about a week now, today was my first opportunity to dip it in the lake and see if it a) floated, b) ran. It did both, but the latter it did very poorly. It was sold to me under the auspices that the stator needed to be replaced. It didn’t take me long to negate that as the case, or at least that’s not the big problem. Starts and idles on 1 cylinder, second comes in with a bit of RPMs. Crank seal all the way baby.

I bought a leakdown tester and rigged up some plugs for the intake and exhaust. I learned today that not all 2 cylinder 2 strokes have a center seal(s). How that actually works, I don’t know – but I sealed off 1 side expecting I’d be able (prefer) to do the leakdown 1 cylinder at a time and was greeted with air coming out the other cylinders intake ports. WTF? It can’t be a center seal problem because only 1 cylinder is messed up. I came to the computer and googled and saw no existence whatsoever of a center seal on this thing. Like I said – how that works I don’t know. Poorly I’d guess, but whatever. I’m not about to go re-engineering Kawasaki’s Crankshaft and Crankcase that they sold 1 bajillion of.

I took the engine out, plugged both exhaust and intake ports up as well as I could; not as good as I did with just the 1 cylinder, but I was defeated at this point. Realistically it didn’t matter anyway, I was seeking to prove to myself something I was already 99% confident of. Sealed up pretty well, back on the air, the following YouTube video clearly shows it likes blowing bubbles just like a 4 year old by with a bottle of that soapy crap and the ring:

Other mentionables, with the engine out the grime in the hull cleans away pretty easy. I think with about an hour of Comet, water and a bit of elbow grease it will look almost presentable inside.

Compression is 120 on the PTO side and 130 on the Mag side. Not sure if that’s good bad or other, but it’s going to be what it is for now. So far I’ve found the thing super easy to work on and I’d like to keep it that way as much as I can. I’m going to split off the bottom to replace the seal and hope to go no deeper than that before shoveling it all back together.

Lastly, there is one picture where you’ll go WTF am I looking at. It’s a snapshot looking into the spark plug adapter for my leakdown tester, and what you see is uncleaned metal shavings. Way to go cheap tool company, couldn’t think of a better thing to drop down into my cylinder!!!

That’s it for day 1.

01-Aug-2015 18:26, Motorola XT1060, 2.4, 4.499mm, 0.017 sec, ISO 400
01-Aug-2015 18:00, Motorola XT1060, 2.4, 4.499mm, 0.017 sec, ISO 250
01-Aug-2015 18:00, Motorola XT1060, 2.4, 4.499mm, 0.009 sec, ISO 320
 
01-Aug-2015 17:58, Motorola XT1060, 2.4, 4.499mm, 0.009 sec, ISO 400
01-Aug-2015 17:58, Motorola XT1060, 2.4, 4.499mm, 0.003 sec, ISO 160
01-Aug-2015 17:58, Motorola XT1060, 2.4, 4.499mm, 0.003 sec, ISO 160
 
01-Aug-2015 17:58, Motorola XT1060, 2.4, 4.499mm, 0.002 sec, ISO 160
01-Aug-2015 17:58, Motorola XT1060, 2.4, 4.499mm, 0.002 sec, ISO 160
01-Aug-2015 17:58, Motorola XT1060, 2.4, 4.499mm, 0.002 sec, ISO 160
 
01-Aug-2015 16:26, Motorola XT1060, 2.4, 4.499mm, 0.005 sec, ISO 160
 

Stop brute force SSH attacks from filling your authlog OpenBSD

I run OpenBSD on Soekris devices and have yet in my life to have this proven to be a poor choice of hardware. For my builds I use flashrd. Part of the design of flashrd is that /var is built from scratch during each boot and is mounted as a memory filesystem:

# mount | grep /var
mfs:14425 on /var type mfs (asynchronous, local, nodev, nosuid, size=131072 512-blocks)

While this is a really cool way to do things it does limit the size of your /var filesystem. In my case – on this box is slightly less than 62 MB. Usually this is way more than adequate, but there have been times that the script kiddies have caused me grief by filling /var/authlog with failed ssh login attempts:

Jan 24 06:35:34 firewall sshd[29119]: Invalid user hscroot from 180.131.138.32
Jan 24 06:35:34 firewall sshd[29119]: input_userauth_request: invalid user hscroot [preauth]
Jan 24 06:35:34 firewall sshd[29119]: Failed password for invalid user hscroot from 180.131.138.32 port 57894 ssh2
Jan 24 06:35:35 firewall sshd[29229]: Invalid user hscroot from 180.131.138.32
Jan 24 06:35:35 firewall sshd[29229]: input_userauth_request: invalid user hscroot [preauth]
Jan 24 06:35:35 firewall sshd[29119]: Connection closed by 180.131.138.32 [preauth]
Jan 24 06:35:35 firewall sshd[29229]: Failed password for invalid user hscroot from 180.131.138.32 port 48309 ssh2
Jan 24 06:35:35 firewall sshd[29229]: Connection closed by 180.131.138.32 [preauth]

Once /var is full all sorts of weird things start happening. In my case the firewall would still pass traffic, but dhcpd quits working properly (most likely due to its inability to log and place leases in /var/db/dhcpd.leases) and slowly the hosts on the network relying on dhcp die of attrition as they can no longer renew their leases. It’s gotta be fixed…

The most secure way to go about things would be to close ssh to the outside world. In my case that isn’t really an option, there are times that I’m out of town and if the S hit the F I could potentially lose one of my multiple ways inside the network to fix things. SSH on the outside firewall may someday (albeit it hasn’t yet) become my last hope. My solution is not unique, but it isn’t so ununique that it’s not worth mentioning. It’s all handled inside OpenBSD’s pf.conf file:

1) Create a table to hold the abusers:

table <abuse> persist

2) Make an addendum to your ssh rule that will limit the rate at which connections are allowed. For connections exceeding that limit put the source address in your abuse table  using the overload directive. Make sure the scope of the rule is such that it won’t limit other types of connections and also make sure it’s far enough down in your ruleset that other rules won’t hijack your ssh traffic. In my case I used a maximum of 2 connections per 15 minutes. You may wish to loosen that up a bit in case you find yourself remotely connecting to that  box often. I’d also suggest making the scope of that rule such that it doesn’t apply to connections coming from trusted networks:

pass in on em2 inet proto tcp from any to (em2) port ssh flags S/SA keep state (max-src-conn-rate 2/15, overload <abuse> flush)

3) Block the abuse table at or near the bottom of your pf.conf. Make sure you don’t have any quick rules up higher that might override this rule. You could put it higher up and use a quick rule, but I like to keep quick out of my ruleset as much as I can just as a matter of preference.

block in from <abuse>

Of course once you’re done setting it all up reload pf:

# pfctl -f /etc/pf.conf

I setup this configuration about 18 hours ago (by necessity, not forward thinking) and have since seen some fun additions to the abuse table:

# pfctl -t abuse -T show
 4.49.58.41
 54.146.218.7
 54.215.165.55
 61.160.247.8
 87.106.50.214
 103.41.124.18
 103.41.124.30
 103.41.124.31
 103.41.124.37
 103.41.124.111
 104.152.188.150
 123.57.134.96
 212.83.131.138
 221.235.188.205
 222.186.34.202
 222.219.187.9

Yay it works.

This is just a rehash from the official OpenBSD PF documentation, but unfortunately the search term “block ssh brute force OpenBSD” won’t lead you there.