Installera och konfigurera en SSH-server på Linux. Hur man använder SSH-protokollet i Ubuntu: installation och konfiguration Ansluts inte via ssh ubuntu

Den här artikeln handlar om inställningar Fjärranslutning till Ubuntu Server. Anslutningsprincipen är mycket enkel: på klientsidan använder vi ett program för fjärråtkomst (till exempel Putty), på serversidan installerar och konfigurerar vi OpenSSH-paketet. Vid anslutning genomgår klienten en auktoriseringsprocedur med servern och en krypterad anslutning upprättas mellan dem. Funktionsprincipen för SSH-protokollet diskuterades mer i detalj i artikeln om.

Nätverksdiagrammet visas nedan. Fjärranslutning till servern kommer att göras från klientdatorn.

Vi installerade Ubuntu Server på en ren hårddisk. Efter installationen måste du konfigurera serverns nätverksgränssnitt för att komma åt nätverket. Ställ nämligen in IP-adress, nätverksmask, standardgateway. Om ditt gränssnitt redan är konfigurerat kan du hoppa över det här steget. inställningar nätverksgränssnitt anges i filen /etc/network/interfaces. För att redigera kommer vi att använda en textredigerare nano.

Vi kommer in i redigeringsläget för gränssnittsfilen. Vi är intresserade av allt nedan # Det primära nätverksgränssnittet. I det här ögonblicket servern får en IP-adress via DHCP, vilket inte är helt korrekt. Servern måste ha en statisk IP så att alla noder i nätverket vet exakt sin adress. Låt oss skriva ner det nätverksinställningar manuellt.

Min server är på det lokala subnätet 192.168.1.0/24. Servern är tilldelad IP 192.168.1.2, mask 255.255.255.0, standardgateway 192.168.1.1, DNS-serveradress 192.168.0.1

För att spara filen, tryck Ctrl + X –> Y –> Enter. För att tillämpa inställningarna måste du starta om nätverksprocessen. Du kan också helt enkelt starta om servern med kommandot sudo reboot.

Markera (kommando ifconfig -a) – inställningar tillämpas

Allt är klart för OpensnSS, som kan installeras från terminalen med hjälp av kommandona

$ sudo apt-get install openssh-klient

$ sudo apt-get installera openssh-server

Du kan styra start, stopp och omstart av SSH-servern med hjälp av kommandona

$sudo service ssh sluta | börja | omstart

Faktum är att du redan har SSH-åtkomst till servern. Men för mer finjustering Det finns en konfigurationsfil på /etc/ssh/sshd_config. Åtkomst till konfigurationer är endast möjlig från root.

På klientsidan, ladda ner valfritt program för att ansluta via SSH, jag rekommenderar Putty. I programmet är allt du behöver göra att ange serverns IP-adress och ansluta till den. Ange användarnamn och lösenord när du ansluter.


Prenumerera på vår


För att installera ssh-servern, kör i terminalen:

Ubuntu/Debian/Linux Mint

Redigera sedan ssh-serverinställningarna i filen /etc/ssh/sshd_config
För att göra detta, i terminalkörningen:


För att OpenSSH bara ska lyssna på vissa IP-adresser, till exempel 192.168.0.50, 192.168.0.51 på port 777, lägg helt enkelt till följande rader:

Begränsa åtkomst via SSH för användare: test test2 test3

OpenSSH-servern kan använda Rlogin-protokollet för auktorisering och kan simulera beteendet hos det äldre rsh-kommandot, så inaktivera läsning användarfiler~/.rhosts och ~/.shosts:

Aktivera varningsbannern genom att redigera följande rad och skapa följande. fil:

Spara loggar, se till att LogLevel-direktivet är inställt på INFO eller DEBUG

För att starta om OpenSSH på CentOS, Fedora eller RHEL:

I vissa fall kan du bara starta servern på detta sätt:


För att kontrollera serverstatus använd följande kommando


Nu kan du logga in på en dator med OpenSSH-server installerad så här:

Ssh [-p port]

Till exempel:

CentOS / RHEL / Fedora Linux - du kan inaktivera eller ta bort OpenSSH så här:

$ chkconfig sshd av
$ yum radera openssh-server

Huvudsakliga SSH-filer och mappar:
~/.ssh/ - användarkonfigurationskataloger
~/.ssh/authorized_keys och ~/.ssh/authorized_keys2 - listor över publika nycklar (RSA eller DSA) som kan användas för att auktorisera ett användarkonto
~/.ssh/known_hosts - servernycklar
/etc/ssh/sshd_config - OpenSSH-serverkonfigurationsfil
/etc/ssh/ssh_config - OpenSSH-klientkonfigurationsfil
/etc/nologin - om den här filen finns, kommer systemet att vägra tillåta någon annan än rotanvändaren. Det är bättre att ta bort och inte använda.
/etc/hosts.allow och /etc/hosts.deny - åtkomstkontrollistor (ACL)

I den här artikeln kommer vi att visa dig hur du installerar, konfigurerar och använder OpenSSH på Ubuntu 16.04. SSH (Secure Shell) är ett protokoll som tillåter säker åtkomst till en fjärrmaskin medan OpenSSH är en uppsättning verktyg baserade på SSH-protokollet. Idag kommer vi att visa dig hur du installerar och konfigurerar OpenSSH med Ubuntu 16.04 som operativsystem.

Installera OpenSSH på Ubuntu 16.04

Låt oss först installera OpenSSH. Uppdatera paketindex med följande kommando:

Sudo apt-get uppdatering

För att installera OpenSSH-serverapplikationen, såväl som andra relaterade paket, använd följande kommando:

Sudo apt-get install openssh-server

Observera att OpenSSH-serverpaketet kanske redan är installerat på ditt system som en del av den initiala serverinstallationsprocessen. Alternativt kan du installera OpenSSH-klientapplikationen med följande kommando:

Sudo apt-get install openssh-klient

Konfigurera OpenSSH på Ubuntu 16.04

Innan du gör några ändringar i OpenSSH-konfigurationen är det bra att veta hur du hanterar OpenSSH-tjänsten på din . För att starta tjänsten kan du använda följande kommando:

Sudo systemctl starta sshd.service

För att stoppa tjänsten kan du använda:

Sudo systemctl stoppa sshd.service

För att starta om tjänsten kan du använda:

Sudo systemctl starta om sshd.service

För att kontrollera tjänstens status kan du använda:

Sudo systemctl status sshd.service

För att aktivera tjänsten under systemstart kan du använda:

Sudo systemctl aktivera sshd.service

För att inaktivera tjänsten medan systemet startar kan du använda:

Sudo systemctl inaktivera sshd.service

Efter att ha gjort några ändringar i OpenSSH-konfigurationen måste du starta om tjänsten för att ändringarna ska träda i kraft.

Huvudkonfigurationsfilen för OpenSSH-serverapplikationen är /etc/ssh/sshd_config . Se till att du säkerhetskopierar din ursprungliga konfiguration innan du gör några ändringar:

Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

Du kan redigera den här filen med textredigerare enligt ditt val. Det första du kan göra är . Öppna filen och hitta raden som definierar lyssningsporten:

Ändra det till något annat. Till exempel 2022

Port 2022

Spara filen och stäng den. Starta sedan om tjänsten för att ändringarna ska träda i kraft.

Nu kan du prova att använda portnumret som anges i OpenSSH-serverns konfigurationsfil. Om du lyckas ansluta till servern via SSH kan du fortsätta med nästa steg som är att säkra OpenSSH.

Säker OpenSSH på Ubuntu 16.04

#PermitRootLogin ja

och ändra det till:

PermitRootLogin nr

Spara ändringarna och starta om tjänsten för att ändringarna ska träda i kraft. Nästa gång du ansluter till servern kan du använda den nyskapade SUDO-användaren.

För att skydda servern kan du även inaktivera lösenordskontroll och . Dessutom kan du.

Du kan kontrollera ytterligare konfigurationsalternativ med hjälp av man-sidan:

Man sshd_config

eller så kan du besöka OpenSSH-manualsidorna på https://www.openssh.com/manual.html.

Det här avsnittet av Ubuntu Server Guide introducerar en kraftfull samling verktyg för fjärrkontroll av och överföring av data mellan nätverksanslutna datorer som kallas OpenSSH. Du kommer också att lära dig om några av de konfigurationsinställningar som är möjliga med OpenSSH-server applikation och hur du ändrar dem på ditt Ubuntu-system.

OpenSSH är en fritt tillgänglig version av Secure Shell (SSH) protokollfamiljen av verktyg för fjärrstyra eller överföra filer mellan datorer. Traditionella verktyg som används för att utföra dessa funktioner, såsom telnet eller rcp , är osäkra och överför användarens lösenord i klartext när de används. OpenSSH tillhandahåller en serverdemon och klientverktyg för att underlätta säker, krypterad fjärrkontroll och filöverföring, som effektivt ersätter de äldre verktygen.

OpenSSH-serverkomponenten, sshd , lyssnar kontinuerligt efter klientanslutningar från något av klientverktygen. När en anslutningsbegäran inträffar ställer sshd upp rätt anslutning beroende på vilken typ av klientverktyg som ansluter. Till exempel, om fjärrdatorn ansluter till ssh-klientapplikationen, ställer OpenSSH-servern upp en fjärrkontrollsession efter autentisering. Om en fjärranvändare ansluter till en OpenSSH-server med scp initierar OpenSSH-serverdemonen en säker kopia av filer mellan servern och klienten efter autentisering. OpenSSH kan använda många autentiseringsmetoder, inklusive vanligt lösenord, offentlig nyckel och Kerberos-biljetter.

Installation

Installationen av OpenSSH-klienten och serverapplikationerna är enkel. För att installera OpenSSH-klientapplikationerna på ditt Ubuntu-system, använd det här kommandot vid en terminalprompt:

sudo apt installera openssh-klient

För att installera OpenSSH-serverapplikationen och relaterade supportfiler, använd det här kommandot vid en terminalprompt:

sudo apt installera openssh-server

Openssh-serverpaketet kan också väljas att installeras under installationsprocessen för Server Edition.

Konfiguration

Du kan konfigurera standardbeteendet för OpenSSH-serverapplikationen, sshd , genom att redigera filen /etc/ssh/sshd_config . För information om konfigurationsdirektiven som används i den här filen, kan du se lämplig manualsida med följande kommando, utfärdat vid en terminalprompt:

man sshd_config

Det finns många direktiv i sshd-konfigurationsfilen som styr sådana saker som kommunikationsinställningar och autentiseringslägen. Följande är exempel på konfigurationsdirektiv som kan ändras genom att redigera filen /etc/ssh/sshd_config.

Innan du redigerar konfigurationsfilen bör du göra en kopia av originalfilen och skydda den från att skrivas så att du har de ursprungliga inställningarna som referens och kan återanvändas vid behov.

Kopiera filen /etc/ssh/sshd_config och skydda den från att skrivas med följande kommandon, utfärdade vid en terminalprompt:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original

Följande är exempel på konfigurationsdirektiv som du kan ändra:

    För att ställa in din OpenSSH att lyssna på TCP-port 2222 istället för standard TCP-port 22, ändra portdirektivet som sådant:

    För att sshd ska tillåta offentliga nyckelbaserade inloggningsuppgifter, lägg till eller ändra raden:

    PubkeyAuthentication ja

    Om raden redan finns, se till att den inte kommenteras bort.

    För att få din OpenSSH-server att visa innehållet i filen /etc/issue.net som en förinloggningsbanner, lägg till eller ändra raden:

    Banner /etc/issue.net

    I filen /etc/ssh/sshd_config.

Efter att ha gjort ändringar i filen /etc/ssh/sshd_config, spara filen och starta om sshd-serverapplikationen för att utföra ändringarna med följande kommando vid en terminalprompt:

sudo systemctl starta om sshd.service

Många andra konfigurationsdirektiv för sshd är tillgängliga för att ändra serverapplikationens beteende för att passa dina behov. Observera dock om din enda metod för åtkomst till en server är ssh , och du gör ett misstag när du konfigurerar sshd via /etc /ssh /sshd_config-filen kan du upptäcka att du blir utelåst från servern när du startar om den. Dessutom, om ett felaktigt konfigurationsdirektiv tillhandahålls, kan sshd-servern vägra att starta, så var extra försiktig när du redigerar den här filen på en fjärrserver .

Vi kom på vad det är SSH och vilka är dess fördelar, vi implementerade också det enklaste exemplet SSH- server och klient.

Idag kommer jag att prata om mer detaljerade inställningar SSH- server.

Som den berömda frasen lyder, "in Linux allt är en fil", så att konfigurera SSH- server, är det nödvändigt och tillräckligt att redigera en konfigurationsfil. Hans fullständig sökväg/etc/ssh/sshd_config. För att redigera, öppna den här filen med superanvändarrättigheter med valfri textredigerare.

Innan vi redigerar gör vi det för säkerhets skull. säkerhetskopiering fil:

Sudo cp /etc/ssh/sshd_config(,.bak)

Låt oss nu titta på innehållet:

Sudo nano /etc/ssh/sshd_config

Efter varje ändring av denna fil måste du starta om ssh- server för att tillämpa våra ändringar.

Som vi kan se finns det ganska många parametrar här, vi kommer att hantera var och en av dem gradvis.

Hamn

Här anger vi vilken port vår server ska lyssna på. Som standard lyssnar den 22 hamn TCP/IP. Intressant fakta att du kan ange flera portar. Till exempel:

ListenAddress

Den allmänna vyn av inställningarna kan skrivas på följande sätt:

ListenAddress värd | IPv4_addr | IPv6_addr ListenAddress :port

Anger nätverksadressen som servern kommer att "lyssna på".
Om servern har flera nätverksgränssnitt som är konfigurerade att använda olika IP adresser, då kan du begränsa åtkomsten med denna parameter.
Till exempel på servern följande 4 nätverksgränssnitt:

Eth0 – 192.168.0.1 eth1 – 192.168.0.2 eth2 – 192.168.0.3 eth3 – 192.168.0.4

Standard ssh- servern väntar överhuvudtaget på anslutning IP adresser. Om du vill att användare ska kunna logga in endast på gränssnitt 2 Och 3 , då bör du göra så här:

ListenAddress 192.168.0.2 ListenAddress 192.168.0.3

Du kan även ange porten här. Till exempel:

ListenAddress 192.168.0.2:222

Om porten inte anges, ssh kommer att lyssna på denna adress och
på den port som anges i alternativet Hamn. Om du använder ListenAddress utan att ange porten, sedan alternativet Hamn måste föregås av en option ListenAddress. Om du inte specificerar det alls ListenAddress, då lyssnar servern som standard på alla lokala adresser.

Adress Familj

Anger vilken familj IP adresser måste användas av tjänsten ssh. Möjliga alternativ:
"några"- vilken som helst
"inet"(endast IPv4)
"inet6"(endast IPv6)
Standard - "några".

Det är vettigt att om möjligt begränsa den behandlade adressfamiljen till de som faktiskt används, d.v.s. om du bara använder IPv4- inaktivera IPv6, och vice versa.

Till exempel att lösa IPv4 och förbud IPv6:

AdressFamily inet

Protokoll

ssh kan arbeta med protokoll SSH1 Och SSH2. Samtidigt, användningen av osäkra SSH1 rekommenderas starkt inte. Tvinga ssh fungerar endast med protokollet SSH2 du kan göra det här:

Protokoll 2

PermitRootLogin

Som standard loggar du in på fjärrservern som användare rot ingen förbjuder det. Men det är inte helt säkert. Istället vore det mer korrekt att logga in med användarnamnet konto och öka dina privilegier med kommandot 'su -', eller använda 'sudo'.

Om din organisation har flera systemadministratörer och alla ansluter till servern som en superanvändare, så är det inte alltid möjligt att ta reda på vilken administratör som finns på servern. Därför, efter att ha inaktiverat möjligheten att logga in direkt under användaren rot systemadministratörer först kommer de att logga in under sitt konto och först efter det kommer de att få superanvändarprivilegier; Detta kommer att göra det lättare att granska servern och de åtgärder som utförs av systemadministratörer.
För att inaktivera ovanstående funktion, inaktivera parametern PermitRootLogin, ange värdet "Nej".

PermitRootLogin nr

PermitEmptyPasswords

Blockerar tomma lösenord

PermitEmptyPasswords no

TillåtAnvändare, Tillåtgrupper

Som standard kan alla serveranvändare logga in. Det är bättre att begränsa kretsen av användare som får tillgång till ssh.
Detta kan vara användbart när du skapar ett antal användare på systemet, men tillåter åtkomst av ssh vill bara ha några.

För att göra detta, i konfigurationsfilen sshd_config du bör lägga till specifika användare som finns på servern. I exemplet nedan är dessa användare john, peter Och Michael, som får komma in på servern. Användarnamn separeras med mellanslag.

Tillåtanvändare john peter michael

När du lägger till alla användare som finns i en specifik grupp bör du ange det enligt exemplet nedan. Grupper av användare som får logga in på servern är också åtskilda av ett mellanslag.

AllowGroups utvecklare administratörer

DenyUsers, DenyGroups

I motsats till att tillåta åtkomst till specifika användare eller grupper kan du också ange användare eller grupper som nekas åtkomst till servern.
För att göra detta, lägg till i konfigurationsfilen sshd_config parameter Neka användare, där, separerade med ett mellanslag, indikerar de användare som är förbjudna att komma åt servern. I exemplet nedan är detta system apache och dessutom ganska verklig boris.

DenyUsers apache boris

Det finns också ett alternativ som låter dig neka åtkomst inte för enskilda användare, utan för hela grupper som användare tillhör. Detta är en parameter DenyGroups och grupper anges också med ett mellanslag.

DenyGroups marknadsföringshackare

Observera att du kan använda kombinationer av förbjudande och aktiverande parametrar: Neka användare, TillåtAnvändare, DenyGroups, Och Tillåt grupper.

Logga inGraceTime

När du försöker logga in med ssh på den server du har 2 minuter för att ange ditt användarnamn och lösenord. Om du inte gör detta kommer anslutningen till servern att förloras. 2 minuters väntan på behörighetsdata är ganska mycket. Bör begränsas till 1 minuter eller till och med upp till 30 sekunder

För att göra detta, ändra parametern Logga inGraceTime genom att redigera filen sshd_config och ange den tid som krävs där. I exemplet nedan är det 1 minut.

Logga inGraceTime 1m

ClientAliveInterval

Frånkoppling när det inte finns någon aktivitet i skalet

Efter att du lyckats logga in på servern, kanske du vill göra det möjligt att koppla från automatiskt efter en tid som du inte har utfört någon åtgärd på konsolen. Detta kallas vanligtvis vilotid.

Använder sig av Våldsamt slag, du kan uppnå detta genom att ändra miljöfaktor TMOUT.

I ÖppnaSSH detta uppnås genom en kombination av parametrar ClientAliveCountMax Och ClientAliveInterval i konfigurationsfilen sshd_config.

  • ClientAliveCountMax— anger maximal kvantitet checklive skickade meddelanden ssh- server där den inte får något svar från ssh- klient. Standard är 3.
  • ClientAliveInterval— indikerar väntetiden (timeout) i sekunder. Efter den angivna tiden ssh- servern skickar checklive meddelande till klienten och förväntar sig ett svar från honom (svar). Standard är 0, det vill säga, servern kommer inte att skicka meddelanden för verifiering.

För att din ssh- klienten kopplades automatiskt ur efter 10 minuter ( 600 sekunder) bör du göra ändringar i konfigurationsfilen sshd_config på följande sätt:

ClientAliveInterval 600 ClientAliveCountMax 0

Det var allt tills vidare. I princip tror jag att detta redan räcker för bra konfiguration och förbättrad säkerhet ssh. I nästa del ska vi titta på några fler parametrar ssh- server och kanske kan vi diskutera nyckelbaserad autentisering.

Lycka till alla och vi ses snart på vår blogg!




Topp