Interessante tip om SSH-beveiliging te verbeteren

Deze keer zullen we een korte en simpele tip dat zal ons helpen verbeteren veiligheid van onze externe verbindingen met SSH.


OpenSSH, het pakket dat door GNU / Linux-systemen wordt geleverd om SSH-verbindingen af ​​te handelen, heeft een breed scala aan opties. Het boek lezen SSH De veilige shell en de man-pagina's vond ik de -F optie, die de SSH-client vertelt om een ​​ander configuratiebestand te gebruiken dan degene die standaard in de / etc / ssh directory staat.

Hoe gebruiken we deze optie?

Als volgt:

ssh -F / path / to_your / configuration / file user @ ip / host

Als we bijvoorbeeld een aangepast configuratiebestand hebben met de naam my_config op het bureaublad, en we willen verbinding maken met de gebruiker Carlos met de computer met het ip 192.168.1.258, dan gebruiken we het commando als volgt:

ssh -F ~ / Desktop / mijn_config carlos@192.168.1.258

Hoe helpt het de beveiliging van de verbinding?

Bedenk dat een aanvaller die zich in ons systeem bevindt, onmiddellijk zal proberen om beheerdersrechten te verkrijgen als hij deze nog niet heeft, dus het zou vrij gemakkelijk voor hem zijn om ssh uit te voeren om verbinding te maken met de rest van de machines op het netwerk. Om dit te voorkomen, kunnen we het / etc / ssh / ssh_config-bestand configureren met onjuiste waarden, en wanneer we verbinding willen maken via SSH, zullen we het configuratiebestand gebruiken dat we hebben opgeslagen op een locatie die alleen wij kennen (zelfs op een externe opslagapparaat), dat wil zeggen, we zouden zekerheid hebben door duisternis. Op deze manier zou de aanvaller verbaasd zijn om te ontdekken dat hij geen verbinding kan maken via SSH en dat hij de verbindingen probeert te maken volgens wat is gespecificeerd in het standaard configuratiebestand, dus het zal moeilijk voor hem zijn om te beseffen wat er gebeurt, en we zal hem het werk veel compliceren.

Dit is toegevoegd om de luisterpoort van de SSH-server te wijzigen, SSH1 uit te schakelen, aan te geven welke gebruikers verbinding kunnen maken met de server, expliciet toe te staan ​​welk IP-adres of bereik van IP's verbinding kan maken met de server en andere tips die we kunnen vinden in http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux ze zullen ons in staat stellen om de beveiliging van onze SSH-verbindingen te vergroten.

Alles wat hierboven is beschreven, kan op één regel worden gedaan. Naar mijn smaak zou het nogal vervelend zijn om elke keer dat we proberen in te loggen via SSH op een externe pc een grote regel met meerdere opties te moeten schrijven, het volgende zou bijvoorbeeld een voorbeeld zijn van wat ik je vertel:

ssh -p 1056 -c blowfish -C -l carlos -q -ikzelf 192.168.1.258

-p Specificeert de poort waarmee verbinding moet worden gemaakt op de externe host.
-c Geeft aan hoe de sessie moet worden versleuteld.
-C Geeft aan dat de sessie moet worden gecomprimeerd.
-l Geeft de gebruiker aan waarmee moet worden ingelogd op de externe host.
-q Geeft aan dat diagnostische berichten worden onderdrukt.
-i Geeft het bestand aan waarmee moet worden geïdentificeerd (private key)

We moeten ook onthouden dat we de geschiedenis van de terminal kunnen gebruiken om te voorkomen dat we elke keer dat we het nodig hebben de hele opdracht moeten typen, iets waar een aanvaller ook van zou kunnen profiteren, dus ik zou het niet aanbevelen, althans bij het gebruik van SSH-verbindingen.

Hoewel het beveiligingsprobleem niet het enige voordeel is van deze optie, kan ik andere bedenken, zoals het hebben van een configuratiebestand voor elke server waarmee we verbinding willen maken, dus we zullen vermijden om de opties elke keer dat we verbinding willen maken te schrijven. een server SSH met een specifieke configuratie.

Het gebruik van de optie -F kan erg handig zijn als u meerdere servers met verschillende configuraties heeft. Anders moeten alle instellingen worden onthouden, wat praktisch onmogelijk is. De oplossing zou zijn om een ​​configuratiebestand te hebben dat perfect is voorbereid volgens de vereisten van elke server, waardoor de toegang tot die servers wordt vergemakkelijkt en gegarandeerd.

In deze link http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config U kunt lezen hoe u het SSH-clientconfiguratiebestand bewerkt.

Onthoud dat dit nog maar een tip is van de honderden die we kunnen vinden om SSH te garanderen, dus als u veilige externe verbindingen wilt hebben, moet u de mogelijkheden combineren die OpenSSH ons biedt.

Dat is alles voor nu, ik hoop dat deze informatie je zal helpen en wacht op een nieuwe post over SSH-beveiliging volgende week.

Opmerking: als je het boek "SSH The Secure Shell" wilt lezen, raadpleeg dan zeker de man-pagina's van de versie die je hebt geïnstalleerd, aangezien het boek behoorlijk achterloopt wat betreft de opties die worden ondersteund door OpenSSH.
Bedankt Izkalotl voor de bijdrage!
Geïnteresseerd in een bijdrage leveren?

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   HacKan & CuBa co. zei

    Dat? Ik denk dat je naar een ander bericht verwijst, want ik begrijp niet wat je zegt. Dit bericht geeft een kleine tip die je kunt toepassen bij het tot stand brengen van de verbinding met een apparaat. Het heeft geen betrekking op het wijzigen van de instellingen ervan, of het oplossen van iets als iemand erin slaagt binnen te komen. Het idee is om de communicatie tussen de computers te beveiligen, waarbij de standaardparameters worden omzeild die mogelijk niet het adequate beveiligingsniveau bieden.
    Port-knocking is interessant om aanvallen te beperken (het voorkomt ze niet volledig, maar het doet zijn ding), hoewel ik het een beetje lastig vind om te gebruiken... misschien heb ik er niet veel ervaring mee.
    Er zijn verschillende programma's die de logbestanden scannen om de toegang via IP te blokkeren wanneer onjuiste aanmeldingen worden gedetecteerd.
    Het veiligste is om wachtwoordloos in te loggen met behulp van sleutelbestanden.

    Groeten!

  2.   HacKan & CuBa co. zei

    Dat? Ik denk dat je naar een ander bericht verwijst, want ik begrijp niet wat je zegt. Dit bericht geeft een kleine tip die je kunt toepassen bij het tot stand brengen van de verbinding met een apparaat. Het heeft geen betrekking op het wijzigen van de instellingen ervan, of het oplossen van iets als iemand erin slaagt binnen te komen. Het idee is om de communicatie tussen de computers te beveiligen, waarbij de standaardparameters worden omzeild die mogelijk niet het adequate beveiligingsniveau bieden.
    Port-knocking is interessant om aanvallen te beperken (het voorkomt ze niet volledig, maar het doet zijn ding), hoewel ik het een beetje lastig vind om te gebruiken... misschien heb ik er niet veel ervaring mee.
    Er zijn verschillende programma's die de logbestanden scannen om de toegang via IP te blokkeren wanneer onjuiste aanmeldingen worden gedetecteerd.
    Het veiligste is om wachtwoordloos in te loggen met behulp van sleutelbestanden.

    Groeten!

  3.   HacKan & CuBa co. zei

    Ook zal ssh zoeken naar de standaard gebruikersconfiguratie in ~/.ssh/config
    Tenzij u de daemon zo hebt geconfigureerd dat hij dit niet doet, maar dat doet hij standaard wel.
    Het is belangrijk om rekening te houden met het algoritme dat voor hashes wordt gebruikt, met de optie -m; Ik raad hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 aan omdat deze de beste beveiliging bieden. Wees voorzichtig, want standaard gebruikt het MD5 (of sha1 met een beetje geluk)!! Dat zijn de dingen die jij niet begrijpt...
    Hoe dan ook, een goed idee zou zijn om het uit te voeren met:
    ssh -p POORT -c aes256-ctr -m hmac-sha2-512 -C IP
    met -c wordt het gebruikte versleutelingsalgoritme gespecificeerd, waarbij de ctr (tellermodus) het meest wordt aanbevolen (aes256-ctr en aes196-ctr), en zo niet de cbc (cipher-block chaining): aes256-cbc,aes192-cbc , kogelvis-cbc, cast128-cbc

    Groeten!

  4.   HacKan & CuBa co. zei

    Ook zal ssh zoeken naar de standaard gebruikersconfiguratie in ~/.ssh/config
    Tenzij u de daemon zo hebt geconfigureerd dat hij dit niet doet, maar dat doet hij standaard wel.
    Het is belangrijk om rekening te houden met het algoritme dat voor hashes wordt gebruikt, met de optie -m; Ik raad hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 aan omdat deze de beste beveiliging bieden. Wees voorzichtig, want standaard gebruikt het MD5 (of sha1 met een beetje geluk)!! Dat zijn de dingen die jij niet begrijpt...
    Hoe dan ook, een goed idee zou zijn om het uit te voeren met:
    ssh -p POORT -c aes256-ctr -m hmac-sha2-512 -C IP
    met -c wordt het gebruikte versleutelingsalgoritme gespecificeerd, waarbij de ctr (tellermodus) het meest wordt aanbevolen (aes256-ctr en aes196-ctr), en zo niet de cbc (cipher-block chaining): aes256-cbc,aes192-cbc , kogelvis-cbc, cast128-cbc

    Groeten!

  5.   iaan11 zei

    wat ik wilde is dat niemand toegang zou krijgen tot mijn pc en deze op afstand zou kunnen besturen
    dus ik begrijp uit uw woorden dat als ik de poort niet open, er in ieder geval op deze manier geen toegang is

    bedankt voor het antwoorden!

  6.   iaan11 zei

    hallo hallo
    Ik heb een aantal trucjes gevolgd en ik heb een vraag! van de opties heb ik ook veranderd
    de poort voor een andere dan de traditionele. Als ik die poort in de router niet open, kan het dan onmogelijk zijn om verbinding te maken met mijn pc? of wordt het omgeleid naar een andere poort?

    Ik hoef geen enkele verbinding op afstand te maken, dus ik wilde weten wat effectiever zou zijn als ik de poort zou openen of geblokkeerd zou laten.

    Ik wacht op antwoorden!

  7.   Sergio Weizenegger zei

    >Het veiligste is om wachtwoordloos in te loggen met behulp van sleutelbestanden.
    Het is precies wat ik wilde zeggen... dat de enige manier om in te loggen op verschillende computers is met een sleutel die op een flashdrive om je nek hangt 😉
    De aanvaller kan zijn hele leven verspillen door met brute kracht een wachtwoord te kraken, en hij zal nooit beseffen dat hij geen wachtwoord nodig heeft, maar een XD-bestand

  8.   linux izkalotl zei

    Ik ben geen expert op het gebied van beveiliging en netwerken, maar om uw beveiligingssysteem te doorbreken met wachtwoordloos inloggen, zou het voldoende zijn om simpelweg een script te maken om uw sleutel die op een flashstation is opgeslagen te kopiëren wanneer u deze koppelt, zodat u binnen enkele seconden toegang zou hebben tot de server met uw eigen sleutel op afstand (en natuurlijk zonder de noodzaak van een wachtwoord), is het probleem met wachtwoordloos dat u zich hierdoor een valse veiligheid voelt, aangezien u, zoals u kunt zien met een paar regels in een script het zou heel gemakkelijk zijn om controle te krijgen over uw externe servers. Houd er rekening mee dat een aanvaller geen tijd of middelen zal verspillen aan het kraken van wachtwoorden als er een kortste manier is om uw beveiliging te doorbreken. Ik raad je aan om minstens 20 van de opties te gebruiken die SSH je biedt om te configureren en zoiets toe te voegen als TCP Wrappers, een goede Firewall en zelfs dan zou je server niet 100% beschermd zijn, de ergste vijand op het gebied van beveiliging is te vertrouwen.

  9.   Gorlok zei

    Het is interessant, hoewel ik niet zeker ben van het werkelijke voordeel, omdat we het hebben over het iets moeilijker maken van de zaken zodra een aanvaller al in het team heeft ingebroken, en het toevoegen van meer complexiteit aan beheerders.
    Een honeypot-techniek die waarschuwt (en actie onderneemt?) lijkt nuttiger bij verdachte activiteiten, of een soort sandbox die de acties van de aanvaller beperkt.
    Of ik zou op zoek gaan naar andere soorten technieken die toegang verhinderen, zoals port-kloppen.
    Ook bedankt voor het delen en openen van de discussie.