OpenSSH (Beveiligde shell openen) is een set applicaties die gecodeerde communicatie via een netwerk mogelijk maakt met behulp van de protocol SSH. Het is gemaakt als een gratis en open alternatief voor het programma Secure Shell, dat is eigen software. « Wikipedia.
Sommige gebruikers denken misschien dat goede praktijken alleen op servers moeten worden toegepast en dat is niet het geval. Veel GNU / Linux-distributies bevatten standaard OpenSSH en er zijn een paar dingen om in gedachten te houden.
Veiligheid
Dit zijn de 6 belangrijkste punten om in gedachten te houden bij het configureren van SSH:
- Gebruik een sterk wachtwoord.
- Wijzig de standaardpoort van SSH.
- Gebruik altijd versie 2 van het SSH-protocol.
- Schakel root-toegang uit.
- Beperk gebruikerstoegang.
- Gebruik sleutelverificatie.
- Andere opties
Een sterk wachtwoord
Een goed wachtwoord is een wachtwoord dat alfanumerieke of speciale tekens, spaties, hoofdletters en kleine letters enz. bevat. Hier binnen DesdeLinux We hebben verschillende methoden laten zien om goede wachtwoorden te genereren. Kan bezoeken dit artikel y deze andere.
Wijzig de standaardpoort
De standaardpoort voor SSH is 22. Om dit te wijzigen, hoeven we alleen maar het bestand te bewerken / Etc / ssh / sshd_config. We zoeken naar de regel die zegt:
#Port 22
we verwijderen het commentaar en veranderen de 22 voor een ander nummer .. bijvoorbeeld:
Port 7022
Om de poorten te kennen die we niet gebruiken op onze computer / server, kunnen we uitvoeren in de terminal:
$ netstat -ntap
Om toegang te krijgen tot onze computer of server, moeten we dit doen met de optie -p als volgt:
$ ssh -p 7022 usuario@servidor
Gebruik protocol 2
Om er zeker van te zijn dat we versie 2 van het SSH-protocol gebruiken, moeten we het bestand bewerken / Etc / ssh / sshd_config en zoek naar de regel die zegt:
#Protocol2
We verwijderen het commentaar en starten de SSH-service opnieuw.
Sta geen toegang toe als root
Om te voorkomen dat de rootgebruiker op afstand toegang kan krijgen via SSH, kijken we in het bestand/ Etc / ssh / sshd_config de lijn:
#PermitRootLogin no
en we maken er geen commentaar op. Ik denk dat het de moeite waard is om te verduidelijken dat voordat we dit doen, we ervoor moeten zorgen dat onze gebruiker de nodige machtigingen heeft om administratieve taken uit te voeren.
Beperk de toegang door gebruikers
Het kan ook geen kwaad om alleen bepaalde vertrouwde gebruikers toegang via SSH toe te staan, dus keren we terug naar het bestand / Etc / ssh / sshd_config en we voegen de regel toe:
Sta gebruikers toe elav usemoslinux kzkggaara
Waar uiteraard de gebruikers elav, usemoslinux en kzkggaara degenen zijn die toegang zullen hebben.
Gebruik sleutelverificatie
Hoewel deze methode het meest wordt aanbevolen, moeten we extra voorzichtig zijn omdat we toegang krijgen tot de server zonder het wachtwoord in te voeren. Dit betekent dat als een gebruiker erin slaagt onze sessie binnen te komen of onze computer wordt gestolen, we in de problemen kunnen komen. Laten we echter kijken hoe we het moeten doen.
Het eerste is om een paar sleutels te maken (openbaar en privé):
ssh-keygen -t rsa -b 4096
Vervolgens geven we onze sleutel door aan de computer / server:
ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7
Ten slotte moeten we in het bestand ongecommentarieerd hebben / Etc / ssh / sshd_config de lijn:
AuthorizedKeysFile .ssh/authorized_keys
Andere opties
We kunnen de wachttijd waarin een gebruiker succesvol kan inloggen op het systeem terugbrengen tot 30 seconden
LoginGraceTime 30
Om ssh-aanvallen via TCP-spoofing te voorkomen, waarbij de ssh-kant maximaal 3 minuten versleuteld blijft, kunnen we deze 3 opties activeren.
TCPKeepAlive geen ClientAliveInterval 60 ClientAliveCountMax 3
Schakel het gebruik van rhost- of shosts-bestanden uit, die om veiligheidsredenen niet mogen worden gebruikt.
IgnoreRhosts ja IgnoreUserKnownHosts ja RhostsAuthentication nee RhostsRSAAuthentication nee
Controleer de effectieve machtigingen van de gebruiker tijdens het inloggen.
StrictModes yes
Maak scheiding van bevoegdheden mogelijk.
UsePrivilegeSeparation yes
Conclusiones:
Door deze stappen uit te voeren kunnen we extra beveiliging toevoegen aan onze computers en servers, maar we mogen nooit vergeten dat er een belangrijke factor is: wat is er tussen de stoel en het toetsenbord. Daarom raad ik aan om te lezen dit artikel.
bron: Hoe te smeden
Uitstekende post @elav en ik voeg een aantal interessante dingen toe:
InloggenGraceTime 30
Hierdoor kunnen we de wachttijd waarin een gebruiker succesvol kan inloggen op het systeem terugbrengen tot 30 seconden
TCPKeepAlive nr
ClientAliveInterval 60
ClientAliveCountMax 3
Deze drie opties zijn erg handig om ssh-aanvallen te vermijden door middel van TCP Spoofing, waarbij het versleutelde actief aan de ssh-kant maximaal 3 minuten actief blijft.
IgnoreRhosts ja
IgnoreUserKnownHosts ja
RhostsAuthenticatie nr
RhostsRSA Authenticatie nr
Het schakelt het gebruik van rhost- of shosts-bestanden uit, die om veiligheidsredenen niet worden gebruikt.
StrictModes ja
Deze optie wordt gebruikt om de effectieve machtigingen van de gebruiker tijdens het inloggen te controleren.
UsePrivilegeSeparation ja
Maak scheiding van bevoegdheden mogelijk.
Nou, straks zal ik het bericht bewerken en aan het bericht toevoegen 😀
Geen commentaar geven om de lijn niet te veranderen is overbodig. De commentaarregels tonen de standaardwaarde van elke optie (lees de toelichting aan het begin van het bestand zelf). Root-toegang is standaard uitgeschakeld, enz. Daarom heeft het zonder commentaar absoluut geen effect.
Ja, maar hoe weten we bijvoorbeeld dat we alleen versie 2 van het protocol gebruiken? Omdat we misschien 1 en 2 tegelijk kunnen gebruiken. Zoals de laatste regel zegt, wordt de standaardoptie overschreven door deze optie uit de commentaren te verwijderen. Als we standaard versie 2 gebruiken, prima, zo niet, dan gebruiken we het JA of JA 😀
Bedankt voor de reactie
Zeer goed artikel, ik wist verschillende dingen, maar een ding dat me nooit duidelijk is, is het gebruik van sleutels, echt wat ze zijn en welke voordelen heeft het, als ik sleutels gebruik, kan ik dan wachtwoorden gebruiken ??? Zo ja, waarom verhoogt het de beveiliging en zo niet, hoe krijg ik er toegang toe vanaf een andere pc?
Gegroet, ik heb debian 8.1 geïnstalleerd en ik kan geen verbinding maken vanaf mijn Windows-pc met Debian met WINSCP, moet ik protocol 1 gebruiken? alle hulp .. bedankt
doei
Mogelijk bent u geïnteresseerd in deze video over openssh https://m.youtube.com/watch?v=uyMb8uq6L54
Ik wil hier een aantal dingen proberen, verschillende heb ik al geprobeerd dankzij de Arch Wiki, andere vanwege luiheid of gebrek aan kennis. Ik bewaar het voor als ik mijn RPi start