Als u iets op uw thuisnetwerk moet openen voor het grotere internet, is een SSH-tunnel dan een veilige manier om dit te doen?
De vraag- en antwoordsessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een community-gedreven groepering van Q & A-websites.
De vraag
SuperUser-lezer Alfred M. wil weten of hij op de goede weg is met verbindingsbeveiliging:
Ik heb onlangs een kleine server opgezet met een low-end computer waarop debian draait, met als doel het te gebruiken als een persoonlijke git-repository. Ik heb ssh ingeschakeld en was nogal verbaasd over de snelheid waarmee het leed aan brute force-aanvallen en dergelijke. Toen las ik dat dit zo is heel gewoon en leerde over basisbeveiligingsmaatregelen om deze aanvallen af te weren (veel vragen en duplicaten op serverfout gaan ermee om, zie bijvoorbeeld deze of deze ).
Maar nu vraag ik me af of dit allemaal de moeite waard is. Ik besloot om mijn eigen server vooral voor de lol op te zetten: ik kon gewoon vertrouwen op oplossingen van derden, zoals die worden aangeboden door gitbucket.org, bettercodes.org, enz. Hoewel een deel van het plezier gaat over leren over internetbeveiliging, heb ik dat niet genoeg tijd om eraan te wijden om expert te worden en er vrijwel zeker van te zijn dat ik de juiste preventiemaatregelen heb genomen.
Om te beslissen of ik met dit speelgoedproject zal blijven spelen, zou ik graag willen weten wat ik daarbij echt riskeer. In hoeverre zijn bijvoorbeeld de andere computers die op mijn netwerk zijn aangesloten ook een bedreiging? Sommige van deze computers worden gebruikt door mensen met nog minder kennis dan de mijne met Windows.
Wat is de kans dat ik echt in de problemen kom als ik de basisrichtlijnen volg, zoals een sterk wachtwoord, uitgeschakelde root-toegang voor ssh, niet-standaardpoort voor ssh en mogelijk het inloggen met wachtwoord uitschakelen en een van de fail2ban-, denyhosts- of iptables-regels gebruiken?
Anders gezegd, zijn er enkele grote, slechte wolven die ik zou moeten vrezen of gaat het vooral om het wegjagen van scriptkiddies?
Moet Alfred vasthouden aan oplossingen van derden, of is zijn doe-het-zelfoplossing veilig?
Het antwoord
SuperUser-bijdrager TheFiddlerWins verzekert Alfred dat het redelijk veilig is:
IMO SSH is een van de veiligste dingen om op het open internet te luisteren. Als je je echt zorgen maakt, laat het dan luisteren op een niet-standaard high-end poort. Ik had nog steeds een firewall (apparaatniveau) tussen je box en het daadwerkelijke internet en gebruik gewoon poortdoorschakeling voor SSH, maar dat is een voorzorgsmaatregel tegen andere services. SSH zelf is behoorlijk verdomd solide.
ik hebben had mensen af en toe mijn SSH-server thuis geraakt (open voor Time Warner Cable). Nooit echt een impact gehad.
Een andere medewerker, Stephane, benadrukt hoe gemakkelijk het is om SSH verder te beveiligen:
Het opzetten van een authenticatiesysteem met openbare sleutel met SSH is echt triviaal en duurt ongeveer 5 minuten om in te stellen .
Als je alle SSH-verbindingen dwingt om het te gebruiken, zal het je systeem zo veerkrachtig maken als je maar kunt hopen zonder VEEL te investeren in beveiligingsinfrastructuur. Eerlijk gezegd is het zo eenvoudig en effectief (zolang je geen 200 accounts hebt - dan wordt het rommelig) dat het niet gebruiken ervan een openbare overtreding zou moeten zijn.
Ten slotte biedt Craig Watson nog een tip om pogingen tot inbraak te minimaliseren:
Ik run ook een persoonlijke git-server die open staat voor de wereld op SSH, en ik heb ook dezelfde brute-force-problemen als jij, dus ik kan sympathiseren met je situatie.
TheFiddlerWins heeft al de belangrijkste veiligheidsimplicaties aangepakt van het open hebben van SSH op een openbaar toegankelijke IP, maar de beste tool IMO als reactie op brute-force-pogingen is Fail2Ban - software die uw authenticatielogbestanden bewaakt, indringingspogingen detecteert en firewallregels toevoegt aan de lokale computer
iptablesfirewall. Je kunt zowel het aantal pogingen voor een ban instellen als de duur van de ban (mijn standaard is 10 dagen).
Iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden lezen van andere technisch onderlegde Stack Exchange-gebruikers? Bekijk hier de volledige discussiethread .