MortyDot
21/12/09, 15:15
Voor de mensen die er belang bij hebben, hieronder een simpele tutorial over het beveiligen van SSH gebruik op een DirectAdmin server (dedicated, vps, CentOs, DirectAdmin or not, have fun! :p).
Deze tutorial is bij ons in de f.a.q. terug te vinden als: http://webcenter.mortydot.com/knowledgebase.php?action=displayarticle&id=5
Hier op WHT is het mijn eerste tutorial. Heb je tips (opmaak of inhoudelijk) hou het graag opbouwend. :lovewht:
------------------------------------------------------------------------------------
In deze tutorial gaan we SSH beter beveiligen. SSH is de meest en best gebruikte wijze van remote beheer van een Linux systeem. Terecht, met SSH kunt u een machine geheel op afstand beheren, onderhouden, etc. Maar stel dat een kwaadwillende toegang krijgt tot SSH? Dan zijn de gevolgen niet te overzien. Normaliter word er bij SSH ter beveiliging gebruik gemaakt van een username en password.
Deze tutorial is getest met een CentOS 5 basic installatie, DirectAdmin en CSF.
1) Gebruik sterke wachtwoorden
Een van de zwakste punten bij wachtwoorden is altijd de gebruiker en de moeilijkheid van een wachtwoord. Let op dat bij DirectAdmin SSH gebruik het wachtwoord overeenkomt met het wachtwoord van de DirectAdmin user. Uiteraard geld voor een DirectAdmin wachtwoord de zelfde geadviseerde punten als een SSH wachtwoord (en ieder ander mogelijk wachtwoord):
Minimaal 8 karakters/tekens
Gebruik grote en kleine letters
Mix getallen en letters door elkaar
Gebruik speciale tekens (!@#$%^&*_+)
2) Beperkt SSH gebruikers
Stel dat een van uw DirectAdmin gebruikers zijn/haar inloggegevens in kwaadwillende handen vallen (of zij hebben zelf slechte intenties). Het laatste wat u wil is dat deze gebruiker met wat voor een rechten dan ook SSH toegang heeft tot uw server. Het is daarom sterk aan te raden om DirectAdmin users en resellers GEEN SSH toegang te geven. Bij gebruikers die dit wel wensen kunt u altijd zelf, individueel toegang geven. U kunt SSH toegang uitschakelen tijdens het aanmaken als optie van user en reseller hosting pakketten.
U kunt een lijst van toegestane SSH users terug vinden in /etc/ssh/sshd_config.
Normaliter staat onderaan deze config file een lijst met users die SSH toegang hebben. Als u verder niemand behalve uzelf toegang wil geven zal er enkel deze lijn staan:
AllowUsers root.
Na wijzigingen moet u sshd service herstarten met:
#service sshd restart 3) Standaard protocol 2
SSH heeft standaard op dit moment twee protocols om langs te communiceren. Protocol 1 is ouder en minder veilig. Wij gaan daarom protocol 2 als standaard instellen.
Bewerk /etc/ssh/sshd_config en zoek/wijzig de volgende regel op in /etc/ssh/sshd_config:
#Protocol 1,2
Protocol 2 Na wijzigen van het bestand herstart de sshd service:
# service sshd restart4) Wijzig standaard ssh poort
Een andere belangrijke wijziging is het veranderen van de standaard SSH poort. In dit voorbeeld gaan we SSH van poort 22 naar poort 1022 veranderen. Let op dat bij deze wijziging u bij uw gebruikte SSH cliënt nu wel de nieuwe poort moet opgeven voor connecten!
Stap 1)
Eerst gaan we de firewall zodanig instellen dat op ook op de nieuwe poort geluisterd kan worden. Hoe is afhankelijk van uw gebruikte firewall. Gebruikt u CentOS dan zal deze hoogstwaarschijnlijk de 'setup' tool inbegrepen hebben. Servers met CSF kunnen dit vanuit het DirectAdmin CSF pagina instellen of via de CSF config file.
Setup wijze:
#setup u kunt bij firewall en netwerk opties de toegestane poorten opgeven. Zorg ervoor dat poort 1022 niet meer geblokkeerd word. (1022:tcp kunt u bij custom ports toevoegen)
CSF Wijze:
Bij CSF zult u de ingaande en uitgaande poort moeten opgeven. Voeg de poort 1022 toe op de CSF config pagina. (zowel TCP_in als TCP_out).
Beschikt u niet over CSF dan is deze config file terug te vinden als: /etc/csf/csf.conf
Zoek naar TCP_in en TCP_out en voeg hier de poort 1022 toe.
Als het goed is heb je nu nu de nieuwe poort 1022 opengezet voor gebruil.
Stap 2)
Nadat de nieuwe poort 1022 openstaat voor buitenaf gaan we SSH configureren dat die ook daadwerkelijk op deze poort luistert.
Open de SSH config file: /etc/ssh/sshd_config en wijzig de volgende instellingen:
# Run ssh on a non-standard port:
Port 1022 #Change me Na het opslaan van de config file zal SSH de volgende keer dat het gestart worden op de nieuwe poort luisteren.
SSH herstarten:
# service restart sshdStap 3)
Nu SSH op een nieuwe poort luistert (1022) moeten we mogelijk opnieuw connecten met de server.
Echter staat de oude poort nu nog wel open volgens de firewall. Verwijder deze poort zoals je gedaan hebt door een nieuwe poort toe te voegen (stap 1). Enkel nu voegen we geen poort 1022 toe, maar verwijderen we poort 22.
Optioneel, geen SSH root toegang
Beheert u uw server niet als root via SSH? Dan is het ook niet nodig om dit op afstand toe te staan. Wijzig het volgende in /etc/ssh/sshd_config:
# Prevent root logins:
PermitRootLogin no Na het wijzigen moet u enkel nog SSH server herstarten
# service sshd restart
Deze tutorial is bij ons in de f.a.q. terug te vinden als: http://webcenter.mortydot.com/knowledgebase.php?action=displayarticle&id=5
Hier op WHT is het mijn eerste tutorial. Heb je tips (opmaak of inhoudelijk) hou het graag opbouwend. :lovewht:
------------------------------------------------------------------------------------
In deze tutorial gaan we SSH beter beveiligen. SSH is de meest en best gebruikte wijze van remote beheer van een Linux systeem. Terecht, met SSH kunt u een machine geheel op afstand beheren, onderhouden, etc. Maar stel dat een kwaadwillende toegang krijgt tot SSH? Dan zijn de gevolgen niet te overzien. Normaliter word er bij SSH ter beveiliging gebruik gemaakt van een username en password.
Deze tutorial is getest met een CentOS 5 basic installatie, DirectAdmin en CSF.
1) Gebruik sterke wachtwoorden
Een van de zwakste punten bij wachtwoorden is altijd de gebruiker en de moeilijkheid van een wachtwoord. Let op dat bij DirectAdmin SSH gebruik het wachtwoord overeenkomt met het wachtwoord van de DirectAdmin user. Uiteraard geld voor een DirectAdmin wachtwoord de zelfde geadviseerde punten als een SSH wachtwoord (en ieder ander mogelijk wachtwoord):
Minimaal 8 karakters/tekens
Gebruik grote en kleine letters
Mix getallen en letters door elkaar
Gebruik speciale tekens (!@#$%^&*_+)
2) Beperkt SSH gebruikers
Stel dat een van uw DirectAdmin gebruikers zijn/haar inloggegevens in kwaadwillende handen vallen (of zij hebben zelf slechte intenties). Het laatste wat u wil is dat deze gebruiker met wat voor een rechten dan ook SSH toegang heeft tot uw server. Het is daarom sterk aan te raden om DirectAdmin users en resellers GEEN SSH toegang te geven. Bij gebruikers die dit wel wensen kunt u altijd zelf, individueel toegang geven. U kunt SSH toegang uitschakelen tijdens het aanmaken als optie van user en reseller hosting pakketten.
U kunt een lijst van toegestane SSH users terug vinden in /etc/ssh/sshd_config.
Normaliter staat onderaan deze config file een lijst met users die SSH toegang hebben. Als u verder niemand behalve uzelf toegang wil geven zal er enkel deze lijn staan:
AllowUsers root.
Na wijzigingen moet u sshd service herstarten met:
#service sshd restart 3) Standaard protocol 2
SSH heeft standaard op dit moment twee protocols om langs te communiceren. Protocol 1 is ouder en minder veilig. Wij gaan daarom protocol 2 als standaard instellen.
Bewerk /etc/ssh/sshd_config en zoek/wijzig de volgende regel op in /etc/ssh/sshd_config:
#Protocol 1,2
Protocol 2 Na wijzigen van het bestand herstart de sshd service:
# service sshd restart4) Wijzig standaard ssh poort
Een andere belangrijke wijziging is het veranderen van de standaard SSH poort. In dit voorbeeld gaan we SSH van poort 22 naar poort 1022 veranderen. Let op dat bij deze wijziging u bij uw gebruikte SSH cliënt nu wel de nieuwe poort moet opgeven voor connecten!
Stap 1)
Eerst gaan we de firewall zodanig instellen dat op ook op de nieuwe poort geluisterd kan worden. Hoe is afhankelijk van uw gebruikte firewall. Gebruikt u CentOS dan zal deze hoogstwaarschijnlijk de 'setup' tool inbegrepen hebben. Servers met CSF kunnen dit vanuit het DirectAdmin CSF pagina instellen of via de CSF config file.
Setup wijze:
#setup u kunt bij firewall en netwerk opties de toegestane poorten opgeven. Zorg ervoor dat poort 1022 niet meer geblokkeerd word. (1022:tcp kunt u bij custom ports toevoegen)
CSF Wijze:
Bij CSF zult u de ingaande en uitgaande poort moeten opgeven. Voeg de poort 1022 toe op de CSF config pagina. (zowel TCP_in als TCP_out).
Beschikt u niet over CSF dan is deze config file terug te vinden als: /etc/csf/csf.conf
Zoek naar TCP_in en TCP_out en voeg hier de poort 1022 toe.
Als het goed is heb je nu nu de nieuwe poort 1022 opengezet voor gebruil.
Stap 2)
Nadat de nieuwe poort 1022 openstaat voor buitenaf gaan we SSH configureren dat die ook daadwerkelijk op deze poort luistert.
Open de SSH config file: /etc/ssh/sshd_config en wijzig de volgende instellingen:
# Run ssh on a non-standard port:
Port 1022 #Change me Na het opslaan van de config file zal SSH de volgende keer dat het gestart worden op de nieuwe poort luisteren.
SSH herstarten:
# service restart sshdStap 3)
Nu SSH op een nieuwe poort luistert (1022) moeten we mogelijk opnieuw connecten met de server.
Echter staat de oude poort nu nog wel open volgens de firewall. Verwijder deze poort zoals je gedaan hebt door een nieuwe poort toe te voegen (stap 1). Enkel nu voegen we geen poort 1022 toe, maar verwijderen we poort 22.
Optioneel, geen SSH root toegang
Beheert u uw server niet als root via SSH? Dan is het ook niet nodig om dit op afstand toe te staan. Wijzig het volgende in /etc/ssh/sshd_config:
# Prevent root logins:
PermitRootLogin no Na het wijzigen moet u enkel nog SSH server herstarten
# service sshd restart