introduktion
När du först skapar en ny server finns det några konfigurationssteg som du bör ta tidigt som en del av den grundläggande installationen. Detta ökar säkerheten och användbarheten för din server och ger dig en solid grund för efterföljande åtgärder.
steg ett-Root Login
för att logga in på din server måste du känna till din servers offentliga IP-adress och lösenordet för ”root” – användarens konto. Om du inte redan har loggat in på din server kanske du vill följa den första handledningen i den här serien, Hur du ansluter till din droppe med SSH, som täcker denna process i detalj.
om du inte redan är ansluten till din server, gå vidare och logga in som root
användare med följande kommando (ersätt det markerade ordet med serverns offentliga IP-adress):
- ssh [email protected]_IP_ADDRESS
Slutför inloggningsprocessen genom att acceptera varningen om värdens äkthet, om den visas, och ge sedan din root-autentisering (lösenord eller privat nyckel). Om det är första gången du loggar in på servern, med ett lösenord, kommer du också att uppmanas att ändra rotlösenordet.
om Root
rotanvändaren är den administrativa användaren i en Linux-miljö som har mycket breda privilegier. På grund av de ökade privilegierna för root-kontot är du faktiskt avskräckt från att använda det regelbundet. Detta beror på att en del av kraften i root-kontot är förmågan att göra mycket destruktiva förändringar, även av misstag.
nästa steg är att skapa ett alternativt användarkonto med minskat inflytande för det dagliga arbetet. Vi lär dig hur du får ökade privilegier under de tider när du behöver dem.
steg två-skapa en ny användare
När du är inloggad som root
, är vi beredda att lägga till det nya användarkontot som vi kommer att använda för att logga in från och med nu.
detta exempel skapar en ny användare som heter ”demo” , men du bör ersätta den med ett användarnamn som du gillar:
- adduser demo
tilldela sedan ett lösenord till den nya användaren (igen, ersätt ”demo” med användaren som du just skapade):
- passwd demo
Ange ett starkt lösenord och upprepa det igen för att verifiera det.
steg tre – root privilegier
nu har vi ett nytt användarkonto med vanliga kontobehörigheter. Vi kan dock ibland behöva utföra administrativa uppgifter.
för att undvika att behöva logga ut från vår vanliga användare och logga in igen som root-konto kan vi ställa in det som kallas ”superanvändare” eller root-privilegier för vårt vanliga konto. Detta gör det möjligt för vår vanliga användare att köra kommandon med administratörsbehörighet genom att sätta ordet sudo
före varje kommando.
för att lägga till dessa privilegier till vår nya användare måste vi lägga till den nya användaren i gruppen ”hjul”. Som standard får användare som tillhör gruppen ”hjul” på CentOS 7 använda kommandot sudo
.
som root
, kör det här kommandot för att lägga till din nya användare i hjulgruppen (ersätt det markerade ordet med din nya användare):
- gpasswd -a demo wheel
Nu kan din användare köra kommandon med superanvändarrättigheter! För mer information om hur detta fungerar, kolla in vår sudoers-handledning.
Steg fyra-Lägg till public Key Authentication (rekommenderas)
nästa steg för att säkra din server är att ställa in public key authentication för din nya användare. Om du ställer in detta ökar säkerheten för din server genom att kräva en privat SSH-nyckel för att logga in.
generera ett nyckelpar
Om du inte redan har ett SSH-nyckelpar, som består av en offentlig och privat nyckel, måste du generera en. Om du redan har en nyckel som du vill använda hoppar du till kopiera den offentliga nyckeln.
för att skapa ett nytt nyckelpar, ange följande kommando vid terminalen på din lokala maskin:
- ssh-keygen
förutsatt att din lokala användare heter” localuser”, kommer du att se utdata som ser ut som följande:
ssh-keygen outputGenerating public/private rsa key pair.Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Hit return för att acceptera detta filnamn och sökväg (eller ange ett nytt namn).
därefter kommer du att bli uppmanad till en lösenfras för att säkra nyckeln med. Du kan antingen ange en lösenfras eller lämna lösenfrasen tom.
notera: Om du lämnar lösenfrasen Tom kan du använda den privata nyckeln för autentisering utan att ange en lösenfras. Om du anger en lösenfras behöver du både den privata nyckeln och lösenfrasen för att logga in. Att säkra dina nycklar med lösenordsfraser är säkrare, men båda metoderna har sina användningsområden och är säkrare än grundläggande lösenordsautentisering.
detta genererar en privat nyckel, id_rsa
och en offentlig nyckel, id_rsa.pub
, i katalogen .ssh
I lokalanvändarens hemkatalog. Kom ihåg att den privata nyckeln inte ska delas med någon som inte borde ha tillgång till dina servrar!
kopiera den offentliga nyckeln
När du har skapat ett SSH-nyckelpar vill du kopiera din offentliga nyckel till din nya server. Vi kommer att täcka två enkla sätt att göra detta.
Obs: metodenssh-copy-id
fungerar inte på DigitalOcean om en SSH-nyckel valdes under Droppskapandet. Detta beror på att DigitalOcean inaktiverar lösenordsautentisering om en SSH-nyckel finns, och ssh-copy-id
förlitar sig på lösenordsautentisering för att kopiera nyckeln.
Om du använder DigitalOcean och valt en SSH-nyckel under Droppskapandet, använd alternativ 2 istället.
alternativ 1: Använd SSH-copy-id
om din lokala dator har skriptet ssh-copy-id
kan du använda det för att installera din offentliga nyckel till alla användare som du har inloggningsuppgifter för.
kör skriptet ssh-copy-id
genom att ange användaren och IP-adressen till servern som du vill installera nyckeln på, så här:
- ssh-copy-id [email protected]_IP_ADDRESS
När du har angett ditt lösenord vid prompten läggs din offentliga nyckel till fjärranvändarens .ssh/authorized_keys
– fil. Motsvarande privata nyckel kan nu användas för att logga in på servern.
alternativ 2: Installera nyckeln manuellt
förutsatt att du skapade ett SSH-nyckelpar med föregående steg, använd följande kommando vid terminalen på din lokala maskin för att skriva ut din offentliga nyckel (id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
detta ska skriva ut din offentliga SSH-nyckel, som ska se ut som följande:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
välj den offentliga nyckeln och kopiera den till Urklipp.
Lägg till offentlig nyckel till ny fjärranvändare
för att aktivera användningen av SSH-nyckel för att autentisera som ny fjärranvändare måste du lägga till den offentliga nyckeln i en speciell fil i användarens hemkatalog.
på servern, somroot
användaren, ange följande kommando för att byta till den nya användaren (ersätt ditt eget användarnamn):
- su - demo
nu kommer du att vara i din nya användares hemkatalog.
skapa en ny katalog som heter .ssh
och begränsa dess behörigheter med följande kommandon:
- mkdir .ssh
- chmod 700 .ssh
Öppna nu en fil i .ssh kallas authorized_keys
med en textredigerare. Vi använder vi för att redigera filen:
- vi .ssh/authorized_keys
Ange insert mode, genom att trycka på i
, ange sedan din offentliga nyckel (som ska finnas i Urklipp) genom att klistra in den i redigeraren. Tryck nu ESC
för att lämna inmatningsläget.
Ange :x
sedan ENTER
för att spara och avsluta filen.
begränsa nu behörigheterna för authorized_keys-filen med detta kommando:
- chmod 600 .ssh/authorized_keys
Skriv detta kommando en gång för att återgå tillroot
användare:
- exit
Nu kan du SSH logga in som din nya användare, använda den privata nyckeln som autentisering.
För att läsa mer om hur nyckelautentisering fungerar, läs den här handledningen: så här konfigurerar du SSH-nyckelbaserad autentisering på en Linux-Server.
Steg fem-konfigurera SSH Daemon
Nu när vi har vårt nya konto kan vi säkra vår server lite genom att ändra dess SSH daemon-konfiguration (programmet som låter oss Logga in på distans) för att inte tillåta fjärr SSH-åtkomst till root-kontot.
börja med att öppna konfigurationsfilen med din textredigerare som root:
- vi /etc/ssh/sshd_config
Här har vi möjlighet att inaktivera root-inloggning via SSH. Detta är i allmänhet en säkrare inställning eftersom vi nu kan komma åt vår server via vårt vanliga användarkonto och eskalera privilegier vid behov.
för att inaktivera fjärrrotsinloggningar måste vi hitta raden som ser ut så här:
#PermitRootLogin yes
Tips: för att söka efter den här raden, skriv /PermitRoot
och slå sedan ENTER
. Detta bör föra markören till” P ” – tecknet på den raden.
Avkommentera raden genom att ta bort symbolen ” # ”(tryck på Shift-x
).
flytta nu markören till” ja”genom att trycka på c
.
ersätt nu ”ja”genom att trycka på cw
och skriv sedan in”nej”. Hit Escape
när du är klar med redigeringen. Det ska se ut så här:
PermitRootLogin no
inaktivera fjärrrotinloggning rekommenderas starkt på varje server!
Ange :x
sedan ENTER
för att spara och avsluta filen.
ladda om SSH
Nu när vi har gjort våra ändringar måste vi starta om SSH-tjänsten så att den kommer att använda vår nya konfiguration.
Skriv detta för att starta om SSH:
- systemctl reload sshd
nu, innan vi loggar ut från servern, bör vi testa vår nya konfiguration. Vi vill inte koppla bort förrän vi kan bekräfta att nya anslutningar kan upprättas framgångsrikt.
öppna ett nytt terminalfönster. I det nya fönstret måste vi börja en ny anslutning till vår server. Den här gången, istället för att använda root-kontot, vill vi använda det nya kontot som vi skapade.
för servern som vi konfigurerade ovan, Anslut med det här kommandot. Ersätt din egen information där det är lämpligt:
- ssh [email protected]_IP_ADDRESS
Obs: Om du använder PuTTY för att ansluta till dina servrar, se till att uppdatera sessionens portnummer så att det matchar din servers nuvarande konfiguration.
Du kommer att bli ombedd att ange den nya användarens lösenord som du har konfigurerat. Därefter loggas du in som din nya användare.
Kom ihåg, om du behöver köra ett kommando med root-privilegier, skriv ”sudo” innan det så här:
- sudo command_to_run
om allt är bra kan du avsluta dina sessioner genom att skriva:
- exit
vart ska du gå härifrån?
vid denna tidpunkt har du en solid grund för din server. Du kan installera någon av de program du behöver på din server nu.
om du inte är säker på vad du vill göra med din server, kolla in nästa handledning i den här serien för ytterligare rekommenderade steg för nya CentOS 7-servrar. Det täcker saker som att aktivera fail2ban
för att minska effektiviteten av brute force-attacker, grundläggande brandväggsinställningar, NTP och swap-filer. Det ger också länkar till handledning som visar hur du ställer in vanliga webbapplikationer.
Om du bara vill utforska, ta en titt på resten av vårt samhälle för att hitta fler handledning. Några populära förslag är att konfigurera en LAMP stack eller en LEMP stack, som kommer
kan du vara värd för webbplatser.