Nieuw: SSH voor onze klanten!

“Rozen zijn rood, Antagonist is blauw, vandaag op deze Valentijnsdag geven wij SSH aan jou ;-)”

Yes, daar is ‘ie: SSH-toegang naar je hostingaccount! Afgelopen maanden hebben we keihard aan deze nieuwe feature gewerkt. In dit artikel heb ik de eer om jullie mede te delen dat vanaf nu SSH-toegang beschikbaar is op Slim-, Plus-, en Pro-pakketten. Graag vertel ik jullie wat meer over: wat SSH betekent, wat we precies voor jullie hebben gemaakt en hoe je ermee aan de slag kunt. Over twee weken zal mijn collega Sander dieper ingaan op een aantal hippe tools die je kunt gaan gebruiken, dankzij SSH. Maar nu eerst een uitleg, let’s go!

Introductie SSH: OpenSSH logo

Wat is SSH?

De afkorting ‘SSH’ staat voor ‘Secure Shell’. Het is een vervanging voor ‘telnet’, wat gelukkig (en vooral hopelijk) al lang niet meer wordt gebruikt. Telnet is een niet-versleuteld protocol om opdrachten naar apparaten te sturen die zijn verbonden met een netwerk.

Het SSH-protocol maakt voor de authenticatie gebruik van zogeheten ‘public-key cryptography’. Het versleutelen van de verbinding gebeurt door middel van symmetrische cryptografie. De sleutel die hiervoor wordt gebruikt, is alleen bekend bij de server en de client en wordt gemaakt zodra de verbinding wordt opgezet. Op deze manier kan er veilig gecommuniceerd worden met een server over een onveilige verbinding.

Dankzij SSH kun je dus met een versleutelde manier inloggen op een andere computer (of server). Zo kun je op afstand commando’s uitvoeren via een shell. Omdat SSH met encryptie werkt, is het voor eventuele afluisteraars zo goed als onmogelijk om wachtwoorden of commando’s te achterhalen.

Waarom SSH?

Het concrete antwoord op deze kritische vraag: onze klanten vragen hier heel erg vaak om en wij houden van onze klanten. Er zijn een aantal dingen die onze klanten graag zouden willen, zodat ze hun website beter kunnen beheren. Een korte opsomming:

  • Git: de beste tool voor ontwikkelaars om code te beheren en delen;
  • Subversion/SVN: ook een (ietwat verourderde) manier om code te beheren;
  • SFTP: bestanden beheren over een SSH-verbinding. Niet te verwarren met FTPS, iets dat we al hadden. Zie SFTP als FTP maar dan veilig;
  • Softwarebeheer: eenvoudiger installaties doen van applicaties, bijvoorbeeld met een bijgeleverd installatiescript.

‘Vroeger’ toen we nog aan traditionele shared webbhosting aanboden, was het vanwege veiligheidsoverwegingen niet mogelijk SSH-toegang aan te bieden. Klanten zien bijvoorbeeld elkaars processen (‘ps aux’) en kunnen elkaars bestanden zonder al te veel moeite inzien. Daarnaast was het gemakkelijk om overlast te veroorzaken voor andere gebruikers, want niemand had eigen toegewezen resources; dat deelde je met elkaar.

Met wat ons betreft de nieuwe standaard in webhosting maken we ons hier geen zorgen meer over. Iedere gebruiker zit in zijn eigen afgeschermde container met eigen toegewezen rekenkracht van de server. Deze nieuwe techniek lijkt erg veel op een VPS. Je krijgt de kracht en flexibiliteit van een ‘eigen server’ en toch behoud je het gemak, de eenvoud en vergelijkbare lage kosten van shared webhosting. Wat ons betreft hoort een feature als SSH-toegang hier absoluut bij.

SSH en onze implementatie

Eén van onze belangrijkste eisen voor het ontwikkelen van SSH-toegang was dat we geen compromissen wilden sluiten met betrekking tot beveiliging. Met andere woorden: je container mét SSH-toegang moet even veilig zijn als zonder deze toevoeging. Vandaar dat het ook even heeft geduurd om het op de juiste wijze te implementeren.

Naast dat het veilig moet zijn, is gebruiksvriendelijkheid erg belangrijk. Een uitdaging aangezien veiligheid en gebruiksvriendelijkheid elkaar altijd in de weg zitten. Veilig betekent vaak gebruiksonvriendelijke (extra) handelingen, bijvoorbeeld voor verificatie etc. en gebruiksvriendelijk heeft de valkuil om het te gemakkelijk en daarmee vaak onveilig te maken. We zijn deze uitdaging aangegaan en ervan overtuigd dat met onze implementatie er weinig gedoe nodig is om het veilig én gebruiksvriendelijk te houden.

Een andere eis was om (tijdelijk) toegang te kunnen verlenen aan een ander systeem of persoon, bijvoorbeeld je webdeveloper. Mede door deze eisen hebben we besloten om:

  • Inloggen alleen mogelijk te maken door middel van een ‘public-key’. Inloggen met een wachtwoord is dus niet mogelijk. We hebben dit uitgeschakeld om brute-force aanvallen te weren maar ook om te voorkomen dat je jouw wachtwoord van DirectAdmin met anderen hoeft te delen.
  • Een SSH-key kan alleen worden gebruikt vanaf een ingesteld IP-adres. Mocht een aanvaller in staat zijn geweest toch je ‘private key’ te bemachtigen, is er een extra laag beveiliging aanwezig.
Let op: de ‘private key’ is, zoals de naam aangeeft, privé. Houd deze dus te allen tijde voor jezelf!
  • Je kunt meerdere IP-adressen aan één SSH-key koppelen. Dit is handig wanneer je  vanaf verschillende locaties werkt.
  • Een IP-adres heeft een verloopdatum. Handig wanneer je iemand tijdelijk toegang wilt geven of je een uurtje vanuit een tijdelijke plek (of onderweg) werkt. Je hoeft geen reminders of mentale notities meer te maken, het terugtrekken van toegang gaat vanzelf. Wel zo veilig!
  • Je kunt meerdere SSH-keys instellen. Op deze manier kunnen meerdere personen tegelijk aan een project of website werken.
  • We staan alleen geselecteerde SSH-key algoritmes toe. Zwakke algoritmes zijn niet toegestaan. Zo ben je verzekerd van een sterk versleutelde verbinding.
  • De firewall staat alleen ingestelde IP-adressen toe. Bovenop dat een SSH-key alleen door de ingestelde IP-adressen gebruikt kunnen worden, laat de firewall alleen de instelde IP-adressen door. SSH is dus niet voor de gehele buitenwereld bereikbaar. We hebben overigens de bestaande firewall behoorlijk op de schop moeten nemen om goed overweg te kunnen met een enorme hoeveelheid IP-adressen.

Hoe krijg je toegang tot SSH?

Graag leg ik je nu in het kort uit hoe jij jezelf toegang kunt geven. Wanneer je behoefte hebt aan een uitgebreidere uitleg, dan verwijs ik je graag door naar deze handleiding.

Stap 1: log in op DirectAdmin

Om SSH-toegang in te schakelen, log je in op DirectAdmin. Vervolgens klik je daar op  ‘Antagonist SSH’, terug te vinden onder de categorie ‘Advanced Features’.

Introductie SSH: DirectAdmin

Stap 2: het IP-adres dat toegang mag krijgen instellen

De tweede stap is om in te stellen vanaf welk IP-adres je verbinding gaat maken. Je kunt kiezen of je dit adres aan een bestaande SSH-key koppelt of dat je een nieuwe key instelt.

Introductie SSH: public key

Vervolgens klik je op ‘Voeg key en IP toe’. Je SSH-key heeft nu toegang voor de ingestelde periode. Hierna zal hij verlopen maar niet verdwijnen uit het overzicht.

Introductie SSH: key overzicht

Stap 3: Inloggen

Vervolgens kun je inloggen op je webhosting container. That’s it!

Introductie SSH: login

Samenvatting

Vanaf 14 februari kun je dus via SSH een verbinding maken met je webhostingpakket.

Slim, Plus en Pro

Alle Slim-, Plus- en Pro-pakketten zijn uitgebreid met SSH-functionaliteit. Deze eenvoudige handleiding helpt je snel op weg.

Resellers

Voor Resellers is SSH op aanvraag (gratis) beschikbaar. Stuur hiervoor een e-mail naar support@antagonist.nl.

Basic, Unlimited en Premium

SSH-toegang wordt in Basic-, Unlimited- en Premium-pakketten niet ondersteund. Als je hier toch gebruik van wilt maken, dan kun je met 20% korting upgraden naar een nieuw pakket via Mijn Antagonist.

Tot slot

We zijn beland aan het einde van dit artikel over de introductie van SSH-toegang bij Antagonist. In deel twee zal mijn collega Sander je dus laten zien wat je allemaal voor gave dingen kunt doen, wanneer je bent ingelogd. Denk bijvoorbeeld aan het beheren van je website met git.

Wil jij ook een webhostingpakket dat hermetisch is afgeschermd, eigen gegarandeerde resources krijgt en SSH-toegang heeft?

Klik hier voor meer informatie

P.S. Wil je op de hoogte blijven van alle artikelen, updates, tips en trucs die verschijnen op ons blog? Dat kan! Rechts bovenin via RSS, e-mail, het liken op Facebook, het +1’en op Google+ of het volgen op Twitter.