Fear of 4 Wheels – Part 3

Last time I spoke to my driving instructor, I said I was going to spend some time in Tesco car park just starting and stopping our car, to get used to the clutch and the whole routine of pulling away in a controlled fashion.  Greté was kind enough to go with me tonight, and we just got back.

carstartI think in 50 minutes I managed to pull away in a controlled fashion once.  The other 99 attempts were roughly,

  • 70 stalls before even leaving the parking bay.
  • 20 juddering starts where I just about remember to keep enough petrol on to actually not stall.
  • 7 starts where I accelerate almost out of control and then slow down again into something approaching reasonable speed.
  • 2 reversing starts, which weren’t too bad actually, maybe I should drive everywhere backwards.

For added amusement, while doing slow laps we also had,

  • 1 x very close pass to a cycle rack on the back of a van
  • 1 x three miles per hour swerve out of the way of a parking vehicle
  • several sharp stops
  • far too many instances of stopping, and forgetting I was in gear before lifting my foot from the clutch.

All-in-all, much more like how I expected my first ever lesson to go.

Greté was great, and very patient and she only phantom-braked the once.

So I’m pretty much fine with steering, and my braking is getting better, but I’m really not getting the whole biting point and gentle application of petrol thing.  I guess it’ll come with time.

Next lesson is on Wednesday, not sure if I’ll ask Greté to give me another shot in Tesco’s again tomorrow.  I almost wish there was somewhere much more open, where I could practice pulling away without too much fear of driving into someting.  Tesco was pretty empty but there’s still plenty of stuff you could hit with an uncontrolled start.

 

Fear of 4 Wheels – Part 2

A picture of a car over a wall

This was not me …

One thing I didn’t talk about much in the first post in this series (here), was the sick feeling in my stomach from the moment I got out of bed on Wednesday the 8th May until the moment I sat in the car for the first time.  I was pretty nervous, in fact thinking about it now makes me nervous in a sort of sympathetic reaction that I’m not in control of.  After I got back from the drive, and my legs had stopped shaking those nerves had clearly gone away.

So a week later, I wasn’t sure how I’d be feeling.

As it turns out, pretty much the same.  My second lesson was booked for Wednesday 15th May, starting at 6pm to let the traffic die down a little.  Thanks to an alignment of planets, that week also included having someone come and look at a damaged window frame, having our old sofas removed and taking delivery of two new ones.  Thanks to both an alignment of planets and the Rule of Sod, all the sofa action was also planned specifically for the 15th May.  We’ve already covered how relaxed I am about planning, so let’s just say that both I and Grete could have done without everything converging on the same day.

In the end, the sofa stuff meant I wasn’t really thinking about the driving lesson until it was all delivered and sorted by around 1pm.  After that though, the nerves kicked in big time.  My instructor arrived a little early so I didn’t have to do too much pacing before getting into the car.  This time, we did the setup outside my house, and then I was off and driving straight away.

Right-turn out of our street onto a reasonably busy road – stalled, stuttered and then got moving.  Not a great start, but the instructor tried to relax me by saying everyone has issues in the first 15 minutes of a lesson.  We followed the route I normally follow to work (which was both good and bad) for a little while and then turned up towards the A52.  Up to this point, braking had been too sharp still, and I appeared to have totally forgotten how to pull away from junctions.  After crawling up a hill in first, to avoid having to stop and start behind a queue of traffic, we made it across Bardills roundabout-bout and were on our way into Stapleford again.

We passed, and were passed by, a lot of learner drivers so I guess the whole of Stapleford is awash with them.  It’s full of quiet side streets, so I assume drivers get a lot of chance to practice stuff, and boy did I need it.  It appears my first week was beginners luck – or at least that’s what I thought until my instructor told me off for over-thinking things.

LPlateI thought about that (yes, irony) and realised she was right.  Now that I’d had some practice, I was trying to think about everything at once, despite still not really having much clue how to actually drive.  She suggested I stop thinking about more than one thing at a time, and just focus.

  1. Coming up to the junction – worry about speed first.
  2. Once the speed is right – then worry about road position.
  3. Then think about which gear you’re going to need to be in.
  4. Then think about if you need to stop.

Obviously that’s a generalisation, but once I stopped worrying about speed, position and gear at the same time, I stopped screwing up quite as much.  I still sometimes put on too much gas before I was in gear, or lifted the clutch too quickly, but that’s just going to take a lot of practice.  By the end of the two hour lesson, I was driving much more smoothly, and when we left Nottingham and headed back out towards home, without instruction since I knew where I was going, it was all-together much better than it had been.  I even managed to come to a stop a couple of times without putting our noses against the windscreen.

One thing I absolutely improved on during this lesson was using the mirrors.  I’d looked at them previously, but now I was looking in them and seeing things, and I was remembering to check them.  However, I have a propensity to check the left mirror a lot.  My instructor made the same observation, and I reminded her that after being a passenger for 30 years, that was the only mirror I ever had, it was going to take a long time to give it up.

Of course, I’ve skipped over the 40 minutes of absolute terror in the middle of the lesson.

This is the route we took.

drivingmap

I’d like to say a few words about the numbered locations.

1: This roundabout is freakin’ huge.  Luckily, we were going straight on, and I was feeding left into the lane that stops being a bus lane just before it.  Also, it’s traffic light controlled, so even though at this stage I was still struggling with the whole being in control thing, it wasn’t too bad.  But you know what?  And if you drive this route, you already do know what.  The road after this roundabout, at 6:30pm, is always stacked with traffic, and two lanes merge into one (that should be a song).

My instructor advised me to keep left, and keep up with the car in front, so that people behind me didn’t take advantage of the gap.  I failed 3 times, but as I finally got the confidence needed to keep close to the car in front, there was a moment of pure joy.

As I looked in my right-wing mirror I could see a car right on the back of me about to come past, and as I closed the gap and they realised they wouldn’t be able to, and they were going to be stuck behind me for the rest of that road to the next junction, the look of pure frustration on the driver’s face was enough to keep me upbeat for the rest of the lesson.

2: My instructor said, we’re going left, which was fine.  Then she said something about ‘starting checking you can filter in when we pass the concrete’.  My brain was still trying to absorb that when I realised we were indeed running out of filter lane, and I was going to have to move into fast moving traffic on my right side.  I remember looking in the right hand wing-mirror, and seeing a car, and then thinking, “okay, so what do I do now?”.

I did filter into the traffic, I’m just not sure how.  I think there was some instructor ‘encouraged’ braking and maybe some instructor ‘encouraged’ steering, and then we were on the road and moving forward.

She did say that she likes to just drive and learn as you go, and I think it kind of suits me, but I’ll be honest, I was surprised to find out I was filtering right with only about 25 meters of filter lane left.

3: If you live here, you know this roundabout.  I know it.  I hate it as a passenger.  I’m pretty sure I hate it as a driver, except, I can’t remember it.  Trauma induced amnesia clearly.

4: We drove up here, and then went somewhere else for a bit.  Your guess is as good as mine, I’m still trying to work out where the piece of my brain that handled number 3 is hiding.

5: When we first moved to Nottingham, this roundabout used to cause consternation for Grete.  It’s often busy, it’s badly marked out, and it’s populated by angry people trying to get home.  I think I did quite well all-told to survive getting around it.

After the roundabout at number 5, I just drove home.  I’m pretty sure the instructor wanted me to, but I was going to anyway quite frankly.  I’d just blocked a guy from getting ahead of me, navigated what I think to be the three worst roundabouts in the bit of Nottingham I know, and had filtered into fast moving traffic using some kind of magical ‘please don’t drive into the idiot’ sign.

As we pulled into my street, and picked a place to pull over, I promised my instructor that I would actually stop the car this time before getting out.  She laughed, I think it was just a laugh, it might have been a slightly terrified release of tension, hard to tell.

It was time for more tea.  Lesson number two, done.

Fear of 4 Wheels – Part 1

LPlateAt the time of writing this, I’m forty-two years old.  As you know, forty-two is the answer to life, the universe and everything, so what better time to start to learn to drive?  I covered some reasons why I left it so late here.  This post though, is about the process of learning.  I’m bad at starting stuff, but once I’ve started I’m usually pretty good at finishing.  It’s taken me a long time to start to learn to drive, and I had a couple of false goes over the last few years.  I half promised myself I’d learn before I was 40, and then I said I’d learn before I was 42, both of those deadlines came and went.

For me, more than half the problem is that I over-think the situation.  Those of you who know me will find this utterly hard to believe, but I over-analyse most stuff, dig out all the possible issues, and then present them as a bunch of negatives.  It makes me quite good at my job (especially when I then go on to present solutions to those issues), but it sometimes makes it hard to actually get stuff done especially outside of work where the pressure to deliver is lower.

So I talk myself out of a lot of things, because of the potential issues.  I don’t mean the risks of actually driving, I mean, in this case, the complexity of sorting out lessons.  For a long time my provisional driving license was an issue, until Grete sorted that for me, and then it was questions about who to book lessons with, and how, and when to fit them in, and how and when to book the theory test, and how the whole thing would work, and endless iterations of those same questions.

It’s very easy never to click ‘book lessons’ when those things ramp up in your brain.  I actually got to the point of getting some quotes last year, from BSM, and almost booked, until they sent me some spam SMS messages to my mobile phone (mandatory field on the quote form), and that smallest trigger put me off booking with them, and the whole process collapsed.

Eventually though, there comes a moment where I finally commit to something in my head.  At that point, the issues, complexity, problems, risks and blockers all just vanish.  I’ve committed, and I will proceed.  Such a day arrived three or four weeks ago, when I finally just logged on to the AA website, bought 10 hours worth of lessons, and booked the date for the first one.

So, on Wednesday 8th May, at 5:30pm, I finally sat in the driver’s seat of a four-wheeled, petrol-engined car with the intention of starting the engine and driving it for 2 hours.  For those of you who’ve had driving lessons, you know how this goes.  The instructor takes you through the cockpit drill, tells you how a car works, covers the basics of mirrors and the like.  After this stage, I guess how it progresses depends on your instructor.

My driving instructor likes to get her pupils driving.  Her theory is once you’re moving, you’ll learn everything else you’ll need to know.  So she drove us to a quiet spot, sat me in the driver’s seat, had me adjust everything, and then we set off.

What followed was two hours of a mixture of fear, exhilaration, panic, confusion, euphoria, confidence sapping mistakes, confidence building successes and armpit sweat.  With my driving instructor talking in one ear, and me pretending to look in the mirrors (really, I was just looking at the mirrors), we pulled away from the curb, slowly pulled back in again and jerked to a complete halt.  Brakes.  Must be more gentle on the brakes.  The first lesson continued with that theme, with me never quite getting to grips with slowing down gently.

But I’m jumping ahead!  We pootled along a road I knew quite well in a quiet estate, and met my first road junction in the 42 years since I arrived in this world – a mini-round-a-bout.  My instructor said, ‘we’re going straight across’, which is a phrase I have been using for many years.  This however, was the first time my brain ever formed the thought ‘I wonder if she means I should just drive straight over the middle’.  Luckily my hands, taking control because my brain had apparently shut down, turned the wheel and we navigated the deserted obstacle with reasonable ease.  Before I had a chance to fully realise I had just navigated a round-a-bout, my instructor coaxed me to a juddering sudden stop, and we were sitting in front of a right hand turn.

Thankfully, it was into a weird single lane traffic calming measure in which I had right-of-way and there wasn’t any traffic anyway.  I gently rounded the 90 degree bend and off we went.  It was at this point that I worked out where we were headed.  We were about to rejoin the busy B6002, which when we had left it 15 minutes before had been host to two lanes of almost stationary traffic.  It hadn’t changed, and as we approached and began to slow, I heard my instructor say, “We’re going right.”

I had hoped, to be fair, that in my first ever driving lesson, I’d have been pretty much turning left only.  I’m sure we could have gotten anywhere we needed to be with only left hand turns, and I was about to explain this to my instructor, when I realised the articulated truck to my right had stopped, leaving me a gap in one lane of traffic.  This was it then, this was the moment I was supposed to check for a gap to the left, and then gently pull out and hope nothing crushed me like an out of place insect.

I stalled.  Then magically, after restarting the car, I managed to find another gap and pull out, and gently pull away and to the surprise of everyone, not least myself, I changed into second gear.  I was doing 15 miles an hour, on a B road, with traffic in front, behind and to my right.  I wasn’t dead.  The car wasn’t crushed.  No one was banging on the window screaming at me.  This was going to be okay!

I don’t remember much else for a little while, as we drove further into Stapleford, other than my instructor saying at least four times, and I quote, “this is a horrible junction, sorry”.  I know we negotiated some junctions, some more right turns, and some straight ons, but frankly it’s a blur!  It was all heavy traffic, 6pm, people trying to get home, me trying not to hold them up!  Eventually we made it to another quiet estate, and my instructor took me through some t-junctions, road position, and some other critical things that maybe one day I’ll remember but for now, are merely a smudge in my mind.

I do remember learning how to do hill starts (both up, and downhill), and I remember feeling confident about gear changes.

But most of all, I remember braking hard, every time.

We drove around the estate some more, and onto, across and through some busier roads, but I wasn’t really conscious of where I was (despite knowing the area quite well), until eventually we approached what looked like a major road, and my instructor advised we were turning right.  I noticed we had stopped at some lights, and in front of me were two lanes of traffic, a central reservation, and then another two lanes.  Only after I had crossed the two lanes and turned right did I realise I had pulled onto the A52, and we were headed back towards the M1.

Slightly terrified about what was to transpire, I revelled in the brief feeling of safety provided by traffic-light controlled round-a-bouts in which I was going left in a feeder lane.  Then, well, then I was in the clear, on a road with a 70mph limit, with cars accelerating away from me.

I took a deep breath.  Told myself that I was a man, and this was a motor vehicle, and that I was in control of my own destiny, not living in fear of success, and I got the car into 5th and did ~50mph for a little while.

50mph!

Eventually, we arrived at another round-a-bout (going left again, thankfully), navigated some more roads, made it to the A6005, and then, made it home.

I’ve been a passenger in motor vehicles, usually in the front passenger seat, for many, many years, so the process of learning to drive for me isn’t just about learning to drive, but it’s not about forgetting bad driving behaviour either (I have none), it’s about forgetting passenger behaviour, and that was about to become very evident.

We pulled back into my street, and pulled over to the left of the road, and stopped (hard, of course).  At this point, for the past 20 odd years of my life, I open the door and get out of the vehicle.  Safe in the knowledge that the driver will put on the hand-break, put the car in neutral, stop the engine, and only then get out of the car.  I’ve done it a lot, I really have.  Four times a day on weekdays and twice at weekends for most of my adult life.

It was the slight edge of panic in my instructor’s voice, which had been absent for all of the journey, that alerted me to the fact that although the engine was running, the car was still in gear, and the hand-break was off, that I was about to try and get out of the car.

I had removed my seat belt, and I was in the process of opening the door.  Luckily, I still had my foot on the foot-break and the clutch all the way down.

We laughed, as I applied the hand-break and turned off the engine, but it’s the laugh of people who realise they almost destroyed two vehicles.

I disembarked, got graded, and walked into the house.  At this point, two things were evident to me.

Firstly, I would not be writing a long blog post about my first driving lesson, because I could barely form any coherent thought beyond ‘must sit down’.

Secondly, having my right arm glued to my body for the entire 2 hour lesson meant my right arm-pit was utterly drenched in sweat.  My left arm, moving between the wheel, gears and hand-break had fared much better.

I had survived my first driving lesson at the age of 42.  It hadn’t been anywhere near as bad as I feared, and I had proven to myself that I could handle the basics of driving a four wheeled vehicle on the public highway without hitting anything else.

I needed a lot of tea.

SSH tunnelling made easy (part four)

The first three parts of this series (one, two, three) covered using SSH to tunnel across various combinations of firewalls and other hops in a forward direction.  By that, I mean you are using computer A and you’re trying to get to something on computer B or computer C.  There is another type of problem that SSH tunnels can solve.  What if you’re running a service on computer A but you can’t get to it because your network doesn’t allow any incoming connections?  Maybe it’s a home server behind a NAT router and you can’t / don’t want to poke holes in the firewall?  Maybe you’re in a cafe and no one can connect to your machine because the free wireless doesn’t allow it, but you want to share something on your local web server?

In those situations, you need reverse tunnels (or remote tunnels).  There’s nothing magical about them, they just move traffic in the other direction while still being initiated from the same starting location.

Example 4 – reverse tunnel web server

In this example, we’ll use a reverse web tunnel to enable access to a host for which incoming connections are entirely blocked.  You’re sitting with your laptop in a cafe, doing some work, and you want to show some team mates the new web site layout.  Rather than having to check the code out to a public web server, you can just allow access to the web server you run on your local machine.

The assumption here is that you can SSH into the Shared Server and that your team mate can connect to the SSH server with their web browser.

Your team mate can’t browse to the web server on your laptop, because the cafe firewall quite sensibly gets in the way.  What we need is a way to allow traffic from the SSH server into your laptop.

From your laptop, you create a reverse / remote tunnel (note -R, rather than -L),

ssh -R 203.0.113.34:9090:127.0.0.1:80 fred@203.0.113.34

I’ve used IP addresses in the tunnel so you can see what is going on.  With regular tunnels, the first IP address and port are the local machine.  With reverse tunnels, they are the interface and port on the remote server that are listening for traffic, the second IP address and port are the ones on the local machine to which that traffic is routed.  So our reverse route above connects to the ssh server (203.0.113.34) and starts listening on that network interface (203.0.113.34) port 9090.  Any traffic it gets on that port is routed over the tunnel into 127.0.0.1 port 80 (i.e. your local machine, port 80).

Your team mate can now point their browser at 203.0.113.34:9090 and will actually see the web server on your laptop.  Because you created an outgoing connection through the firewall with the tunnel, the firewall is none-the-wiser, it simply sees regular SSH traffic flowing to and from the SSH server.

In PuTTY the setup would look like this,

The Remote ports option needs to be ticked so that the tunnel will listen to external interfaces on the target machine.

NB: In order to get reverse (or remote) tunnels working in this way, you need to ensure the SSH server to which you connect supports the feature.  For OpenSSH that means you need to enable the ‘Gateway Ports’ open in the sshd_config file.

Confessions of a Raid Leader – Foul!

Previous Confessions [Part 1] [Part 2]

Being an EverQuest raid leader is a position of responsibility. Sure, it’s not on the same scale as school teacher, police officer or children’s TV presenter, but it should not be taken lightly. As a raid leader your actions and language should be an example to those you lead. Raiders are of all ages and backgrounds, ethnically and religiously diverse and you should always take care to be courteous.

Choice of words therefore is critical. I would strongly advocate never swearing.

Unless absolutely necessary.

Such as in the following situations.

Readers of a nervous disposition or delicate nature should stop reading now (also, if you’re under 18 you should seek your parent or guardian’s permission before reading, or check with your local wizard).

Polite Instructions

[Sat Jul 30 23:38:48 2005] You tell your raid, 'I remind you ALL to read the fucking charter before raiding with us'
[Sat Oct 01 23:32:56 2005] You tell your raid, 'when people then leave afterwards it really fucks us over'
[Sat Sep 09 23:15:27 2006] You tell your raid, 'patience folks please - keep an eye out for trash - welcome to why people don't fucking farm ikkinz 3'
[Sat Feb 09 21:07:03 2008] You tell your raid, 'but whle they are clicking you can't click otherwise it fucks the order up'

Gentle Planning

[Sat Jun 25 23:37:59 2005] You tell your raid, 'we never know if we should do this tower first or last, it's always a fucking pain'
[Sat Nov 05 21:36:26 2005] You tell your raid, 'then we give it 5 seconds and then i'll call assist and you come over push him onto us and burn the fucker'
[Sat Jan 07 23:27:46 2006] You tell your raid, 'ok mob has a nasty AE, hits for 3-4k, single target rampages, and memblurs all the fucking time'
[Sat Mar 18 21:37:10 2006] You tell your raid, 'if we stay near where we zone in, it's 2, if we stray it's 4, if we stray badly it's 6, if we fuck up it's 6 + Sol Ro'
[Sat Feb 25 21:55:43 2006] You tell your raid, 'the trash is fucking annoying and snares, roots, etc.'
[Sat Apr 22 22:12:00 2006] You tell your raid, 'but let's not forget, he probably hits like a fucking truck'
[Sat May 20 21:13:23 2006] You tell your raid, 'it's fucking chaotic, we just need to try and survive'
[Sat May 27 20:42:15 2006] You tell your raid, 'this is a revenge match - i hate this little fucker'
[Thu Sep 07 20:16:48 2006] You tell your raid, 'so let's not fuck about with it once we're inside'
[Thu Sep 07 22:38:09 2006] You tell your raid, 'we kill the mob to 90% while he's beating the fuck out of us'
[Sun Sep 10 00:26:06 2006] You tell your raid, 'we will 1. kill him once with extreme fucking prejudice'
[Sun Sep 10 01:08:30 2006] You tell your raid, 'top game from everyone folks, we give Derg 5 seconds and then we rush the fucker'
[Sat Feb 03 23:04:28 2007] You tell your raid, 'they both have fucking horrible AE's'
[Sat May 21 20:38:49 2005] You tell your raid, 'and from 90% you go full burn and nuke the fucker into the ground without mercy'

Courteous Announcement of Adds

[Sat Sep 08 22:56:13 2007] You tell your raid, 'GHOSTS IN THE FUCKING RAID'
[Sat Jan 07 22:08:43 2006] You tell your raid, 'Adds in the clerics fucking kite them '
[Sat Aug 09 22:01:04 2008] You tell your raid, 'Kill that fucking orc PLEASE'

Calm Apology

[Sat Jul 30 23:43:30 2005] You tell your raid, 'ok we will need to re-clear and then redo this - sorry for the fuckup'

Relaxed Information Gathering

[Sat Aug 26 22:19:13 2006] You tell your raid, 'who's not in the fucking zone?'

Clear and Concise Orders

[Sat Sep 17 20:58:06 2005] You tell your raid, 'GET THE FUCK OFF THAT TREE'
[Sat Oct 15 22:19:00 2005] You tell your raid, 'get the fuck off this mob until i call assist NOW'
[Sat Jan 07 22:07:27 2006] You tell your raid, 'FUCKING NAIL HIM'
[Sat Dec 03 20:32:12 2005] You tell your raid, 'Ok, I won't ask again - you will all move back behind me NOW and you still NOT fight the mobs in that fucking doorway'
[Sun Feb 05 00:43:24 2006] You tell your raid, 'Get off that Guardian of Dresolik and fucking assist Cheichn'
[Sat Feb 25 21:16:32 2006] You tell your raid, 'we are not engaging get the fuck off him'
[Sun Mar 26 02:46:07 2006] You tell your raid, 'BURN THE FUCKER'
[Sat Jun 24 21:38:51 2006] You tell your raid, 'FUCKING INVIS'
[Sat Aug 26 23:28:15 2006] You tell your raid, 'MOVE BACK FROM THE FUCKING EDGE NOW'
[Sat Oct 28 20:47:59 2006] You tell your raid, 'those folk not in the corner, get in the fucking corner NOW'
[Sat Nov 25 20:47:57 2006] You tell your raid, 'BACK THE FUCK OFF'
[Sat May 21 22:51:11 2005] You tell your raid, 'get off thos emobs, get them out of that fucking corridor'
[Sat Feb 23 21:27:45 2008] You tell your raid, 'and don't fucking train us'
[Sat Nov 20 21:28:56 2004] You tell your raid, 'fucking surround it - not all on the same side as me'

Excitement

[Sat Feb 18 21:56:49 2006] You tell your raid, 'It's a fucking Egg Jihad'
[Sat Feb 26 23:23:39 2005] You tell your raid, 'fucking perfect'
[Sat Apr 16 23:40:08 2005] You tell your raid, 'YES YOU DRESS WEARING FUCK'
[Sat May 07 21:05:26 2005] You tell your raid, 'and our shield will be RIGHTEOUS FUCKING ANGER'
[Sat Jan 15 20:18:14 2005] You tell your raid, 'before we go anywhere - thanks for a fucking awesome turnout'

Gallant Admission of Defeat

[Sat Oct 01 23:31:55 2005] You tell your raid, 'ahh fuck it'
[Sat Sep 17 22:05:16 2005] You tell your raid, 'fuck'
[Sat Jul 15 23:03:41 2006] You tell your raid, 'ah fuck'
[Sat Jul 28 23:23:49 2007] You tell your raid, 'fuck it'

Historical Commentary

[Sat Jan 26 23:10:50 2008] You tell your raid, 'we killed Tunat and he was fucking ugly'

Other than those situations, you should try and avoid swearing.

Confessions of a Raid Leader – Death!

You can read part one of this series, and the general background here.  But in summary, I played EverQuest, I ended up being a co-leader of a most excellent raid alliance, and these posts are about remembering some of the madness that entailed.

EverQuest was brutal about death, right from the outset.  You lost XP, you had to go and find your corpse to get your gear back, and that meant getting to it, without any existing gear.  Eventually you could get resurrected, and over time they added ways to summon your corpse to you, but they never got rid of the XP penalty.  In groups, you could expect to die a couple of times per night if you were doing tough content, in raids, depending on your role, you could expect to die 10 or more times.  Over the course of an evening, that’s a reasonable amount of lost XP even if you are getting 96% resurrections.  But that was the job, if you were a tank, puller, healer or crowd controller you were going to die more than anyone else.  Of course, everyone else was going to die as well ….

The tanks on our raids had their own channel, and death was a common topic.  Our tanks were fearless in the face of death and gave it the respect it deserved.

Confident

[Sat May 05 21:03:27 2007] You tell tnftank:7, 'i'll take dref too for ramp in case I die?'
[Sat Jun 02 23:20:38 2007] You tell tnftank:7, 'i usually go to shit when i die'
[Sat Jun 02 23:47:38 2007] You tell tnftank:7, 'but at least let me die first'
[Sat Jun 30 21:02:43 2007] You tell tnftank:7, 'no furious, expect me to die ;)'
[Sat Feb 10 21:51:02 2007] Zorblag tells tnftank:6, 'This last fight is mean.  Aaddx will likely die.'
[Sat Mar 17 22:43:06 2007] Zerblag tells tnftank:6, 'But expect to die.'
[Sat May 05 21:52:55 2007] Tinyface tells tnftank:7, 'hehe i cant wait to give mine a shot but ill probably die :)'
[Sat Sep 22 22:20:39 2007] Zerblag tells tnftank:7, 'About to die.'
[Sat Oct 06 20:03:08 2007] Nevarna tells tnftank:7, 'I'll die anyway so it's all good'
[Sat Jan 26 19:57:51 2008] Glutious tells tnftank:7, 'a good day to die '

Callous

[Sat Mar 22 21:57:11 2008] You tell tnftank:7, 'if tinyface dies, just laugh at him and then step on his corpse to take over tanking'
[Sat Apr 28 21:31:23 2007] You tell tnftank:7, 'If Cheichn is still afk he's about to die'

Encouraging

[Sat Oct 13 19:41:04 2007] Sidyenai tells tnftank:7, 'ok, nev, you go to mirror and look yourself into your eyes and say: i wil not die this raid, i will not die this raid .. 20 times .. :D'
[Sat Jul 19 20:31:51 2008] Zerblag tells tnftank:7, 'AE ramp on Nightshade.  Don't die to it or you get laughed at.'
[Sat Mar 15 21:22:17 2008] Tinyface tells tnftank:7, 'Dont fall off the walkway, you will pop to the middle and die a horrible death'
[Sat Aug 04 21:39:58 2007] Zerblag tells tnftank:7, 'It'll be faster just to die Aaddx.'

Overly Confident

[Sat May 19 21:08:49 2007] Tinyface tells tnftank:7, 'hehe i NEVER die :)'
[Sat Apr 07 23:30:50 2007] Drefaen tells tnftank:6, 'whee, day off, Aaddx nevr dies'

Draefen was Always Ready

[Sat Jan 20 21:32:22 2007] Drefaen tells tnftank:7, 'sure, I haven't died yet, I'm starting to get worried'
[Sat Jan 20 22:50:14 2007] Drefaen tells tnftank:7, 'I haven't died yet, feels odd'
[Sat Jan 27 23:18:06 2007] Drefaen tells tnftank:7, 'should I be in NW corner? or only when Brich dies? I mean if Brich dies'
[Sun Jan 28 00:17:58 2007] Drefaen tells tnftank:7, 'I suspect I'll die here, I've only fell over once so far'
[Sat Feb 03 20:16:09 2007] Drefaen tells tnftank:6, 'I recon I shouldn't get one, I always die 8)'

And of course as co-leader of the raids, it was up to me to remind our most excellent raid force of the critical strategy regarding the stuff we were killing. This mainly revolved around not dying.

Basic Survival

[Sat Sep 22 22:15:31 2007] You tell your raid, 'the important thing - just don't die'
[Sat Sep 29 21:27:48 2007] You tell your raid, 'DO NOT DIE NOW NOT THIS CLOSE'
[Sat Oct 13 20:58:40 2007] You tell your raid, 'then we kill stuff, and don't die'
[Sat Oct 13 20:59:22 2007] You tell your raid, 'ok south - don't die this time :p'
[Sat Aug 09 22:12:05 2008] You tell your raid, 'DO NOT DIE'
[Sat Aug 09 22:39:01 2008] You tell your raid, '1. don't die'
[Sat Aug 09 22:39:10 2008] You tell your raid, '2. friends don't let friends die either'
[Sat Feb 05 21:32:24 2005] You tell your raid, 'nice - don't die while we do loot'
[Sat May 07 23:14:51 2005] You tell your raid, 'we WILL NOT DIE HERE TODAY'

As you can see, I really liked this ‘not dying’ as a strategy …

[Sat Sep 22 21:24:46 2007] You tell your raid, 'so everyone tanks, no one dies'
[Sat Jan 06 20:35:03 2007] You tell your raid, 'oh and don't die'
[Sat Sep 08 19:29:38 2007] You tell your raid, 'ok same deal - only this time we don't die'
[Sat Sep 08 23:24:46 2007] You tell your raid, 'Do NOT die'
[Sat May 28 20:26:22 2005] You tell your raid, 'follow Aaddx we're charging the arena - don't die'
[Sat Jun 11 20:22:10 2005] You tell your raid, 'don't die :p'
[Sat Nov 26 23:09:25 2005] You tell your raid, 'stay focussed don't die'
[Sat Dec 03 20:53:53 2005] You tell your raid, 'don't die'
[Sun Jan 29 00:42:41 2006] You tell your raid, 'oh key thing - don't die'
[Sat Feb 11 22:35:48 2006] You tell your raid, 'NO ONE dies'

It worked for our raid team, so I stuck to it, who would have thought ‘not dying’ was the most powerful weapon a raid team could have?

[Sat Mar 04 22:21:51 2006] You tell your raid, 'don't die'
[Sat Mar 04 23:10:20 2006] You tell your raid, 'and don't die'
[Sat Apr 01 21:28:47 2006] You tell your raid, 'don't die, it's a long fight'
[Sat Oct 21 22:24:20 2006] You tell your raid, 'groups 1-3 will kill it and they won't die'
[Sat Dec 09 20:59:23 2006] You tell your raid, 'stay focussed, don't die, and we can do this'
[Sat Dec 16 23:23:37 2006] You tell your raid, 'don't die that's silly'
[Sat Feb 17 22:52:24 2007] You tell your raid, 'here we go, no one dies'
[Sat Mar 10 22:50:19 2007] You tell your raid, 'we must not die'
[Sat Mar 24 19:57:47 2007] You tell your raid, 'do not let my 3rd favourite SK die'
[Sat Apr 07 23:19:28 2007] You tell your raid, 'DO NOT DIE HERE I WILL BE UPSET'
[Sat Jun 16 20:17:40 2007] You tell your raid, 'oh AE Rampage - don't die'
[Sat Jul 21 20:58:07 2007] You tell your raid, 'All you have to do now is NOT DIE'
[Sat Jul 28 22:47:13 2007] You tell your raid, '20 mobs at a time - don't die'
[Sat Jan 05 20:17:45 2008] You tell your raid, 'off-tank, don't die'
[Sat Jan 05 21:52:17 2008] You tell your raid, 'pull him - don't die'
[Tue Dec 11 20:25:29 2007] You tell your raid, 'no one die, everyone win, easy victory'
[Sat Dec 15 21:20:11 2007] You tell your raid, 'Hold on then - refuse to die'

Positive Thinking

[Sat Mar 08 22:14:40 2008] You tell your raid, 'try not to die, but it's an UGLY raid'
[Sat Jul 02 21:40:50 2005] You tell your raid, 'we have *not* tried this before, so we will probably all die horribly'
[Sat Sep 08 18:46:19 2007] You tell your raid, 'Ok - Oly gets to die later - thanks Oly'
[Thu Sep 07 23:30:54 2006] You tell your raid, 'tank order is - all tanks form a queue and die for your country - followed by weaponshield rangers'
[Sat Apr 21 21:59:12 2007] You tell your raid, 'we have to trigger these two mobs, normally we make Aonia die, but today it's Moone's turn, I need to talk her through it so it'll take a moment longer than normal'
[Wed Aug 22 22:26:26 2007] You tell your raid, 'that's the voice of a man who expects to die again'
[Sat Dec 15 22:39:49 2007] You tell your raid, 'each week someone thinks that, and they die'

Travel Tips

[Sat Oct 29 23:28:14 2005] You tell your raid, 'we're going to kill a Dragon - don't die on the way'
[Sat Feb 25 20:23:25 2006] You tell your raid, 'please don't die in BoT it makes me sad - get invis'
[Sat Nov 04 21:47:22 2006] You tell your raid, 'and die, at Noit's feet, to provide him something to stand on'

Complex Strategy

[Sat Dec 08 22:54:51 2007] You tell your raid, 'we assist Nlaokx, we mezz the snake pops, and we refuse to die'
[Sat Jul 29 20:29:12 2006] You tell your raid, 'Fake Rallos - AE Rampage - fight at max range, do not die'
[Sat Jul 29 20:29:23 2006] You tell your raid, 'Real Rallos - AE Rampage, adds, shit, etc. do not die'
[Sat Dec 03 20:43:20 2005] You tell your raid, 'on the next named - no swarm pets, no hammer pets, no sword pets, and don't die'
[Sat Dec 03 20:49:54 2005] You tell your raid, 'Named inc with adds - do not break mezz - do not die'
[Sat Jan 14 22:15:38 2006] You tell your raid, 'ok we're going left - follow - tank 3 mezz rest - assist aaddx easy - don't die'
[Sat Feb 10 20:53:53 2007] You tell your raid, 'next mob is archetype again - we do it the same only this time, we don't die'
[Sat Feb 10 22:34:01 2007] You tell your raid, 'biggest train of undead wins - go get some - don't die, don't bring anything that might be ugly'
[Sat Mar 31 21:02:17 2007] You tell your raid, 'aggro on the snake will bounce like hell - just kill her and don't die'
[Sat Apr 14 22:54:14 2007] You tell your raid, 'there'll be a load of mobs outside the instance - just zone in - don't die :p'
[Sat Jun 16 20:15:21 2007] You tell your raid, 'i can't remember what his AE's are, what cures them, how bad they are, or anything else :) so let's pretend they don't exist, try not to die'
[Sun Sep 02 00:11:03 2007] You tell your raid, 'everyone will be in south except 7 and 8, you will burn south, you won't die'
[Sat Jun 28 20:52:29 2008] You tell your raid, 'your job is to aggro your mob and bring it into the cubby and then not die'
[Sat Jun 28 23:36:41 2008] You tell your raid, 'going to do this the same way, but not die as much'
[Sat Jul 05 22:38:17 2008] You tell your raid, 'stay on your feet - too close to die now'

Positive Encouragement

[Sat Jul 19 22:41:25 2008] You tell your raid, 'you're not allowed to die until you have no mana, no endurance and then no hitpoints'
[Sat Jul 19 20:24:12 2008] You tell your raid, 'if tanks get out of range for heals, just let them die, /tell [tankname] laugh you were out of range'
[Sat Feb 09 20:49:05 2008] You tell your raid, 'don't die, it'll be embarassing'
[Sun Oct 28 00:04:54 2007] You tell your raid, 'if you die it's your own fault :p'
[Sat Jul 29 21:23:29 2006] You tell your raid, 'if you die because you're not invis i'm gonna be really unhappy - 2 people last time'
[Sat Nov 27 23:26:24 2004] You tell your raid, '500pp to let him die'
[Sat Jul 30 23:22:28 2005] You tell your raid, 'anyone in plate who dies including clerics gets laughed at ok'
[Sat Aug 06 13:03:39 2005] You tell your raid, 'if you die, we laugh at you'
[Sun Feb 12 00:28:37 2006] You tell your raid, 'Hail the PP - if you died we laugh at you'
[Sat May 20 23:10:43 2006] You tell your raid, 'don't die to enrage or I'll kill you right after we rez you'
[Sat Feb 03 20:07:46 2007] You tell your raid, 'if you die, it will trigger a chain reaction of death and we will wipe'
[Sat Apr 14 20:59:02 2007] You tell your raid, 'every mob in here ENRAGES - based on our new policy - anyone who dies to ENRAGE buys me something nice in the bazaar for 10kpp+'
[Sat Jul 28 20:23:30 2007] You tell your raid, 'if you die to ENRAGE today, you get to clean my toilet with your toothbrush tomorrow'
[Sat Aug 04 20:23:53 2007] You tell your raid, 'ok follow please - anyone who dies does the dishes'
[Sat Aug 11 20:08:58 2007] You tell your raid, 'don't die in WoS, or we point and laugh'
[Sat Mar 08 21:56:00 2008] You tell your raid, 'if you can't cancel magic, don't bother, you're probably just gonna have to die ;)'
[Sat Mar 22 21:22:40 2008] You tell your raid, 'aug mobs inc soon, don't die to them, it's embarassing :p'
[Fri May 26 20:35:54 2006] You tell your raid, 'Jae died, we can laugh later'
[Sat Jan 07 23:42:20 2006] You tell your raid, 'which tank didn't die?'

Exasperated Encouragement

[Sat Mar 10 21:52:58 2007] You tell your raid, 'WHY DO YOU DIE TO ENRAGE?'

Confessions of a Raid Leader – Burned!

Introduction

The guild I was a member of in EverQuest was a ‘family’ guild, as they were known.  It existed for social reasons and to allow us to enjoy the group/casual element of the game.  We were also friends with a few other guilds in a similar position.  The thing with EverQuest is that it sucked you in, and so a few of us, starting small, began raiding things with a small alliance of guilds.  Over time the raids grew, but we prided ourselves on casual raiding, we enforced as few rules as possible and we avoided big raid style loot management (DKP).

We ended up beating some of the toughest content in the game, and boy, did we have fun.  These posts are random memories I have about raiding in EverQuest, both with my own raid team and with other raid guilds and alliances.

Burn!

My first experience of large scale raiding in EverQuest was with the Blood & Guts guild.  They were in a raid team formed from two European guilds so they raided pretty much in my timezone.  I’d had almost no raid experience, joined them with my wizard, and went on a learning curve that looked more like a cliff.  As a wizard, my role was simple.

  • don’t die
  • don’t get anyone else killed
  • don’t break mezz
  • nuke the mobs until they’re dead

This should be pretty easy, and to be fair, it’s one of the easiest raid roles in EverQuest.  One of the most colourful raid leaders with Blood & Guts was Kasstou.  I was always amazed that one German guild and one French guild used English as the primary language in their raids, which certainly made it easier for me, but must have made it a nightmare for them.  Not only were they typing in a foreign language, but they were doing so in a high stress environment trying to convey critical information.

Anyway, Kasstou had a habit of shouting ‘burn’ into the raid channel.  Here’s a few examples,

[Sun Jul 11 23:17:37 2004] Kasstou tells the raid,  'BURN HIM'
[Sun Jul 11 23:56:41 2004] Kasstou tells the raid,  'BURN INNO DOWN'
[Sun Jul 18 20:17:30 2004] Kasstou tells the raid,  'ok disc burn'
[Sun Jul 18 21:11:01 2004] Kasstou tells the raid,  'BURN NOW'
[Sun Jul 18 23:23:43 2004] Kasstou tells the raid,  'BURN LIKE HELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL'
[Sun Jul 25 20:56:40 2004] Kasstou tells the raid,  'DISC BURN KILL FASTTTTTT'

This used to frustrate me, because calling for burn suggested I hadn’t been trying to do as much DPS as I could have, the rest of the time.  I was a conscientious wizard, I was always trying to ride that line between aggro and DPS, I was always burning!  Once or twice I even complained about this to fellow group members.

When I started co-running my own raids, however, all that moaning went out of the window.  It became obvious very quickly that sometimes, you needed a single word to inspire greatness in your raid team, to elevate them to greater heights of damage.  At those times, BURN was the right choice, and so over time, I found myself using it more and more as we raided!

Reading back these log entries, even now, reminds me of the events, the mobs and the people involved in raiding in EverQuest, I miss you all, they were good times!

So, for your nostalgic pleasure, Grayhelm calls BURN!

Simple Burns

[Sat Jul 02 22:41:40 2005] You tell your raid, 'BURN NOW'
[Sat Jun 04 23:47:56 2005] You tell your raid, 'burninate'
[Sun Aug 14 00:03:55 2005] You tell your raid, 'burn dis nuke whatever'
[Thu Oct 20 21:08:39 2005] You tell your raid, 'BURN HIM ALL OUT'
[Wed Mar 22 20:39:59 2006] You tell your raid, 'WE CAN DO IT BURN BURN BURN'
[Wed Apr 05 20:28:33 2006] You tell your raid, 'DISC BURN NUKERISE'
[Thu Aug 24 22:13:13 2006] You tell your raid, 'BURN BURN BURN BURN'
[Sat Feb 02 22:51:35 2008] You tell your raid, 'more burn'
[Sat Jul 12 21:49:05 2008] You tell your raid, 'ok mini burn on Emperor Draygun, the Lich King'

Urgent Burns

[Sun Jan 28 00:27:06 2007] You tell your raid, 'BURN COME ON YOU CAN DO IT'
[Sun Mar 26 02:46:07 2006] You tell your raid, 'BURN THE FUCKER'
[Sat Sep 08 20:22:42 2007] You tell your raid, 'ALL GO BURN KILL SHOUT THROW THINGS DIE DIE KITE DOOM DEATH GO'
[Sun Dec 11 00:06:25 2005] You tell your raid, 'OH NO UNIVERSAL CHAT DOWN - BURN Velitorkin'
[Sun Mar 11 00:09:10 2007] You tell your raid, '30 seconds MORE BURN'
[Sat May 20 23:10:59 2006] You tell your raid, 'DISC BURN - throw laundry'
[Thu Aug 24 22:14:30 2006] You tell your raid, 'burn him - use harsh words'
[Sat Jan 13 20:44:10 2007] You tell your raid, 'Full burn - all discs go go go'
[Sat Jun 09 23:34:53 2007] You tell your raid, 'BURN with ANYTHING YOU HAVE'
[Sat Sep 01 21:51:08 2007] You tell your raid, 'BURN clerics light on mana'
[Sat May 10 23:23:03 2008] You tell your raid, 'Burn hard, Burn early, Burn often'

Anatomical Burns

[Sat Aug 27 22:05:21 2005] You tell your raid, 'burn his ass'

Directional Burns

[Sat Sep 29 21:28:34 2007] You tell your raid, 'BURN MY MOB'
[Sat Sep 29 21:29:04 2007] You tell your raid, 'burn east'
[Sat Sep 29 21:30:34 2007] You tell your raid, 'BURN WEST'
[Sat Nov 10 21:03:01 2007] You tell your raid, 'BURN SOUTH NOW'

Complex Burns

[Sat Aug 27 23:33:09 2005] You tell your raid, 'BURN TT - KITE ADDS'
[Sat Feb 10 22:02:59 2007] You tell your raid, 'GO GO BURN KITE KITE BURN KITE'
[Sat Mar 24 19:57:05 2007] You tell your raid, 'BURN DO NOT PUSH BURN BURN BURN'
[Sat Jun 02 23:49:19 2007] You tell your raid, 'Full swarm pets - burn burn burn etc.'

Exasperated Burns

[Sat Aug 20 22:24:37 2005] You tell your raid, 'BURN FFS ARGH - when you see that, go full DPS'
[Sun Sep 11 00:44:02 2005] You tell your raid, 'for gods sake BURN'
[Sun Jan 28 00:24:40 2007] You tell your raid, 'BURN Innoruuk ffs'
[Sat Jul 14 22:02:10 2007] You tell your raid, 'If you have Endurance left - WHY? BURN DISCS NOW'
[Sat Jul 21 22:15:06 2007] You tell your raid, 'If you have ENDURANCE LEFT - ask yourself WHY - BURN THIS MOB'
[Sat Oct 13 21:04:59 2007] You tell your raid, 'someone burn south ffs'
[Sat Dec 01 23:57:55 2007] You tell your raid, 'health going up? BURN'

Polite Burns

[Sat Mar 10 22:27:04 2007] You tell your raid, 'BURN Tqiv Araxt the Enraged please someone'
[Sat Sep 15 23:50:16 2007] You tell your raid, 'ok someone burn this thing to the ground please'

Inverted Burns

[Sat Oct 29 22:17:02 2005] You tell your raid, 'control your aggro this is not a burn competition'
[Sat Sep 29 21:21:50 2007] You tell your raid, 'slow burn'

Pre-emptive Burns

[Sat Aug 11 20:35:03 2007] You tell your raid, 'remember - full burn from the outset - dying with any mana or endurance is a waste'
[Sat May 21 20:38:49 2005] You tell your raid, 'and from 90% you go full burn and nuke the fucker into the ground without mercy'

Complacent Burns

[Mon Oct 29 20:38:21 2007] You tell your raid, 'Grats Burn - loot up'

Apocalyptic Burns

[Sat Nov 27 21:33:32 2004] You tell your raid, 'burn disc or it's all over'

Burns Which Could Be Misunderstood

[Sat Mar 15 20:31:09 2008] You tell your raid, 'burn the cat'

Wrong Burns

[Mon Apr 07 21:16:07 2008] You tell your raid, 'electrical burning smell here, if we go LD,send fire engines'
[Sat May 31 23:16:18 2008] You tell your raid, 'Burn SIDDHAYA'

And finally, When Burns Go Bad

[Sat Mar 15 22:02:19 2008] You tell your raid, 'there will be NO BURN call - we CONTROL this fight all the way through'
and then
[Sat Mar 15 23:27:53 2008] You tell your raid, 'FULL BURN Emperor Draygun, the Lich King DOTS and SWARM PETS GO'

SSH tunnelling made easy (part three)

In the previous two parts of this series, I covered simple tunnels to access services you couldn’t reach, and tunnels which let you hop from one server to another on an otherwise unreachable network.  In this article I’ll cover a powerful feature of SSH, the ability to provide port forwarding via the SOCKS mechanism.

SOCKS is a standard method to allow clients to connect to services via a proxy server.  SSH can turn any computer you can connect to (over SSH) into a proxy server for you, and you alone (so it’s secure).

Example 3 – using SOCKS proxy to access multiple services on a network via a secure server

There are several different reasons why you may need to employ SSH to deliver a SOCKS proxy.  Two common reasons are if you’re connected to a public network you don’t trust (like a cafe Wi-Fi network), or if you want to get to a range of services inside a secured network to which you only have SSH access.

Since the process is identical in both cases, I won’t cover them separately.

The diagram below shows a shared workstation (maybe in a library) connected to a public Wi-Fi network.  You can’t trust the network, anyone could be intercepting unencrypted traffic on it.

There is however a sever somewhere to which you have SSH access (and which in theory, you control and so trust).  What you would like to do is browse several websites or connect to some other SOCKS supporting services, without anyone on the public Wi-Fi being able to intercept that traffic.  If you were only connecting to a single service you could use simple tunnelling as per the previous two examples, but this time, you want to browse a few websites, and it’s not sensible to try and create a tunnel for each one.  In this instance, you use SSH to set up a dynamic tunnel, which provides a SOCKS proxy.

The command is even easier.

ssh -D 127.0.0.1:9090 fred@shell.example.net

Similar to the previous commands, but you’ll notice there is no target destination, only a listening address and port.  The -D tells SSH to listen on 127.0.0.1 port 9090 in this case, and operate as a SOCKS proxy, starting at the server you’ve connected to.

In PuTTY you would configure this as below,

Note that the destination address is left blank.

In order to use this tunnel, you need to do a little more work than previously.  Assuming we’re going to use it primarily for web browsing, you would need to tell your web client to use a SOCKS proxy.  In Firefox, you would configure it like this,

Now, when you try and browse anything in Firefox, it sends the requests to what it believes is a SOCKS proxy server (127.0.0.1, port 9090).  That’s really your SSH connection to shell.example.net.  At the other end, your SSH connection sends the data on to the correct web server, receives it, and passes it back to your workstation and into Firefox.

The net result (pun intended) results in a diagram which looks like this.

So your browsing is secure as far as the Public Wi-Fi is concerned.  SOCKS supports a number of different protocols, and different clients are configured in different ways.  But as long as your tool supports SOCKS, you can point it at the 127.0.0.1 9090 server, and it will work as above.

SOCKS via SSH is extremely powerful.  Here’s a further diagram of another situation where you may want to use it.

Your company has a number of web servers internally which provide time recording, project planning and other information.  While working away from the office you need to access those services.  There are too many to set up individual tunnels.  There is an SSH server in the company’s control which can be reached from the Internet.  Using the -D option, you can turn that server into your own SOCKS proxy and browse to the company web servers to complete your work.

While not intended as a replacement for a VPN (mainly because it only really supports a subset of network protocols), this SOCKS implementation is very useful.

SSH tunnelling made easy (part two)

In part one of this set of posts, I covered using SSH tunnelling to access a service on a server, from a particular machine that can SSH to the target server, but not access the service directly (due to firewalls or sensible security reasons).  In this post, I’ll cover a three computer scenario.

Example 2 – three computers – can’t access third server directly

This situation covers a few different scenarios.  Perhaps you can SSH to a server in a DMZ (i.e. firewalled from all sides), and from there you can SSH to another server, or perhaps access a website on another server, but you can’t get directly to that server from your computer (you always have to use the middle hop).  Maybe you want to interrogate a web management GUI on a network switch which is connected to a network you’re not on, but you can SSH to a machine on the same network.  There are plenty of reasons why you might want to get a a specific service, on Server 2, which you can’t access directly, but you can access from Server 1, which in turn you can SSH to from your local computer.

The process is identical to the steps followed in the first example, with the only significant difference being the details in the SSH command.  So let’s invent a couple of different scenarios.

Scenario 1 – remote MySQL access

In this example, your web server (www.example.net) provides web (port 80) and ssh (port 22) access to the outside world, so you can SSH to it.  In turn you have another server on the same network as your web server (mysql.example.net) which handles your MySQL database.  Because your sysadmin is sensible, mysql.example.net is behind a software firewall which blocks all remote access except for MySQL and SSH access from www.example.net.

So your workstation can’t SSH to mysql.example.net and hence you can’t use the simple example in the previous article.  You can SSH to www.example.net but you can’t run the GUI up on that computer.  So you need a way to tunnel through to the third machine.  I’ll show you the command first, and it will hopefully be obvious what’s going on.

ssh -L 127.0.0.1:3306:mysql.example.net:3306 fred@www.example.net

So as before, we open the tunnel by connecting to www.example.net as fred via SSH.  The tunnel we are creating starts on our local machine (127.0.0.1) on port 3306.  But this time, at the other end, traffic ejected from the tunnel is aimed at port 3306 on the machine mysq.example.net.  So rather than routing the traffic back into the machine we’d connected to via SSH, the SSH tunnel connects our local port, with the second server’s port using the middle server as a hop.  There’s nothing naughty going on here.  SSH is simply creating an outbound connection from www.example.net to mysql.example.net port 3306, and pushing into that connection traffic it is collecting from your local machine.

Once the tunnel is in place, you would start up the MySQL GUI exactly the same as previously, filling 127.0.0.1 as the ‘server’, and the correct credentials as held by mysql.example.net.  SSH will pick up the traffic, encrypt it, pass it over port 22 to www.example.net, un-encrypt it, and then pass it to port 3306 on mysql.example.net, and do the same in reverse.

The only difference between this and the example in part one, is the destination for our tunnel.  Rather than telling SSH to talk back to the local address on the server we connect to, we simply tell it which server we want to connect to elsewhere in the network.  It’s no more complex than that.

Here’s the setup for PuTTY.

Scenario 2 – network switch GUI

Maybe you support a set of servers which you can SSH to, but which also have their own private network running from a switch that itself isn’t connected to the public network.  One day you need to use the web GUI on the switch (perhaps management have asked for a screenshot and they don’t understand why you sent them an ssh log file first time around) which runs over port 80.

So, we can ssh as user fred to say, the server endor using ssh fred@endor.  We can’t connect to our network switch (192.168.0.1) from our own workstation, but we can from endor.  What we need to do is create a tunnel from our machine, which goes to endor, and then from endor into port 80 on the switch.  This time, we won’t use port 80 on our local machine (maybe we’re already running a local web server on port 80), we’ll use port 8000.  The command therefore is this,

ssh -L 127.0.0.1:8000:192.168.0.1:80 fred@endor

So, make SSH listen locally (127.0.0.1) on port 8000, anything it sees on that port should be sent over port 22 to endor, and from there, to port 80 on 192.168.0.1.  SSH will listen for return traffic and do the reverse operation.

This is how that looks in PuTTY.

Once we’ve connected to endor, and the tunnel is in place, we can start a web browser on our own local machine, and tell it to go to the url,

http://127.0.0.1:8000

At that point, SSH will see the traffic and send it to the network switch, which responds, and the tunnel is in place.

Once again, this process works for all simple network protocols such as POP3, SMTP, etc.

SSH tunnelling made easy (part one)

SSH tunnelling is powerful and useful.  If you can get your head around networking and ports it’s pretty easy to set up, but it’s one of those things that either sticks or doesn’t, and it’s easier to work out when you’ve got a specific problem to solve by using it.  I personally use Cygwin under Windows and so my tunnelling is done using the command line OpenSSH client, however I used to use PuTTY which will do tunnelling as well, and there are plenty of other options.  If you’re already on a UNIX-like setup with OpenSSH then the same command line options are valid as for the Cygwin version.

I wanted to run through some simple examples, and then show how the tunnelling is configured to support them and what actually happens.  But first, a general statement.  SSH tunnelling allows you to make a connection from your local computer, to a service on another computer than your local computer can’t get to directly, via a computer you can get to over SSH.  That includes a two machine situation where you want to get to service X on a computer but can’t because of say a firewall, but you can SSH to the very same machine.  It also includes a three computer scenario where you hop from a middle computer to a computer it can access but you can’t.

Example 1 – two computers – can’t access service directly

So in this example, we have your local computer (your laptop for example, but this could be any computer you are logged on to), and a remote web server.  The web server has MySQL installed but the sensible sysadmin has ensured it’s only listening to local connections so that evil people can’t connect to it and do bad things.  You want to use a nice MySQL GUI you’ve got (say MySQL Query Browser) but can’t connect.

We assume for this example that you have a shell account on your web server with the username of fred.  What you need to achieve, is to let software running on your workstation access a local port, which SSH then picks up, shoves across to the remote server, and dumps onto the local port at that end (i.e. a tunnel).  To keep things easy, we’ll use the same local port on our workstation that MySQL is listening on at the other (3306) end but you don’t have to.

In plan English then, we need to convince SSH to listen for stuff on our workstation arriving on port 3306, tunnel that across to our server, and pass it to the local port 3306 over there, and bring back any traffic in the opposite direction.  To achieve that, SSH has to make a connection over it’s own regular port first, and then it sets things up.

The OpenSSH command line to achieve this is,

ssh -L 127.0.0.1:3306:127.0.0.1:3306 fred@www.example.net

That’s the long hand version, you might see that written as,

ssh -L 3306:127.0.0.1:3306 fred@www.example.net

or

ssh -L 3306:localhost:3306 fred@www.example.net

They will all work and achieve the same thing, but the long hand version for me, is the easiest to take and apply elsewhere.  So reading it, you get the following.

Using PuTTY you would set up a normal SSH configuration to get to www.example.net, and then you would add the following to the Connection / SSH / Tunnels section,

and clicking Add makes it look like this,

You would then connect to the server using PuTTY.

Once all this has been configured, and you have connected to the remote computer and logged in over SSH normally, any traffic sent to 127.0.0.1:3306 (i.e. port 3306 on your own local computer) is spotted by SSH, tunnelled over to www.example.net and pushed out to 127.0.0.1:3306 from there (i.e. that server’s loopback network connection, onto port 3306 on which we hope, MySQL is listening).

From this point, you treat any application you run that wants to connect as if you were running the MySQL server locally, for example with Query Browser you would start it, and tell it to connect to the localhost on port 3306, and then fill in the credentials of the MySQL service running on your remote server.

This example covers all cases of trying to connect to simple services, running on remote servers where you can SSH to them, but not connect remotely to the service due to either a firewall or local configuration.

Maybe your server runs a POP3 service that you don’t want anyone connecting to remotely and you want to encrypt all your traffic to and from.  Configure the POP3 server to only listen to local connections and then use the following tunnel,

ssh -L 127.0.0.1:110:127.0.0.1:110 fred@www.example.net

Now you can point your local mail client at 127.0.0.1 port 110 to collect mail, and it will be tunnelled to the remote POP3 server in the background.