Openssh

Hoppa till: navigering, sök


OpenSSH
Openssh.png
General
Hemsida: http://www.openssh.com
Skapare: Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, Dug Song, Ben Taylor, Chip Salzenberg, Chris Saia, Dan Brosemer, Jim Knoble, Marc G. Fournier, Nalin Dahyabhai, Niels Kristian Bech Jansen, Phil Hands, Thomas Neumann, Tudor Bosman, Damien Miller
Licens: BSD 3-Clause; X11/MIT
openSUSE
Kategori: Säkerhet
Ålder: {{från 16 år}}
Paket: Klicka för att söka
Secure Shell Client och Server (Fjärrinloggningsprogram)

SSH (Secure Shell) är ett program får att logga in och exekvera kommandon på en fjärrstyrd dator. Det är tänkt att ersätta rsh (rlogin och rsh) och erbjuder en öppen ssl (säker krypterad kommunikation) mellan två datorer över ett osäkert nät.


xorg-x11 (X Window System) anslutningar och slumpmässiga TCP/IP portar kan också bli vidarebefodrade över den säkra överföringen.


Konfiguration

All konfiguration av openSSH klienten görs genom att editera /etc/ssh/sshd_config. Med openSUSE kan extra inställningar läggas till på ssh-tjänsten via filen /etc/sysconfig/ssh (se man 8 ssh för mer information).

Icon-info.png Du måste ladda om inställningarna varenda gång du gör en förändring. Gör detta genom att kalla på tcsshd reload som root användaren.

YaST gör detta automatiskt ifall du gör förändringar via YaST.


Konfigurera SSH för endast SSH2 åtkomst

Modifiera /etc/ssh/sshd_config och ändra PROTOCOL raden från:

#PROTOCOL    1,2

till:

PROTOCOL 2


Icon-info.png Detta är ej längre nödvändigt för openSUSE 10.3 eller senare, Protokoll 1 är som standard inaktiverat.


Begränsa per användare

SSH tillåter dig att begränsa inloggningen för speciella användare eller grupper. Varhelst om möjligt använd grupper för att aktivera/inaktivera åtkomst. Det är mycket lättare att ändra åtkomst rättigheter efteråt.

Icon-info.png Tillåt/Neka direktiven behandlas i följande ordning: DenyUsers, AllowUsers, DenyGroups, och till sist AllowGroups.


Eftersom det är väldigt lätt att lägga till eller ta bort användare från eller till en grupp, vi förklarar bara Allow/DenyGroups inställningarna.

Följande inställningar finns:

  • AllowGroups - Detta nyckelord kan efterföljas med en lista på gruppnamn, separerade med ett mellanslag. Ifall specificerat, inloggningar är bara tillåtna för användare som vars primära grupp eller sekundära grupper matchar en av de i listan på gruppnamn. Endast gruppnamn är giltiga; ett numeriskt grupp ID känns inte igen. Som standard är inloggning tillåten för alla grupper.
  • DenyGroups - Detta nyckelord kan efterföljas med en lista på gruppnamn, separerade med ett mellanslag. Inloggning är ej tillåten för de användare vars primära eller sekundära grupper matchar en av de i listan på gruppnamn. Endast gruppnamn är giltiga; ett numeriskt grupp ID känns inte igen.

Här är ett enkelt exempel:

  1. starta YaST
  2. gå till Security & Users -> Edit and Create groups
  3. Lägg till en ny grupp kallad sshlogin (om den inte redan existerar)
  4. göra alla normala användare (inte root), vilka du tillåter att använda ssh för att få åtkomst till systemet medlemmar i denna grupp.

Efteråt lägg till följande:

AllowGroups sshlogin

till /etc/ssh/sshd_config och ladda om konfigurationen.


Begränsa per klienter

I /etc/hosts.allow kan du lägga till följande rader för de klienter du specifikt vill tillåta, o.s.v.:

sshd : 127.0.0.1 : allow
sshd : 192.168.  : allow
sshd : 130.57.5.70 : allow
sshd : 10.         : allow

Lägg sedan till alla som du inte vill tillåta:

sshd : ALL         :deny


SFTP chroot med ChrootDirectory

Sedan OpenSSH 4.8p1 (och därför tillänglig för varenda openSUSE distribution), är det möjligt att på ett enkelt sätt begränsa användarna till sin hemmakatalog, om dom endast skall kunna överföra filer via sftp.

Detta gör det möjligt att byta vanlig FTP tjänst utan krångligheten med att aktivera kryptering eller aktiv/passiv FTP när man går via en NAT router. Detta är också enklare än paket typ, rssh, scponly eller andra patchar för att det inte kräver att man sätter upp och administrerar en (e.x. säkerhetsuppdateringar) chroot miljö.

Icon-info.png Du måste ladda om inställningarna varenda gång du gör en förändring. Gör detta genom att kalla på tcsshd reload som root användaren.

YaST gör detta automatiskt ifall du gör förändringar via YaST.


För att möjliggöra det behöver du lägga till/editera några rader i /etc/sshd_config:

1) Konfigurera OpenSSH till att använda sitt interna SFTP subsystem och inte den riktiga sftp-servern:

# override default of no subsystems
#Subsystem  sftp    /usr/lib/ssh/sftp-server
Subsystem sftp internal-sftp

2) Nu måste vi skapa en matchande regel för att begränsa åtkomst för sftp endast till dom som finns i "sftponly" gruppen (se Begränsa SSH åtkomst per användare för detaljer):

Match group sftponly
   ChrootDirectory %h
   X11Forwarding no
   AllowTcpForwarding no
Icon-info.png %h byts ut till hemmakatalogen för användaren som är på väg att bli verifierad. Du kan också använda %u som en ersättning för användarnamnet.


3) Förbered chroot katalogen och användarinställningarna. katalogen i vilken till att peka chroot() måste vara ägd av root. Efter att chroot() blivit anropad, ändrar sshd katalog till hemmakatalogen relativt till den nya root katalogen. För att användaren skall kunna skriva till sin hemmakatalog så i dagsläget måste det skapas underkataloger där användaren kan skapa/lägga till filer i.

Här är ett enkelt exempel vilket förbereder den fysiska hemmakatalogen för en användare, anpassar inställningarna i /etc/passwd och lägger till personen i sftponly gruppen (vilken måste finnas) och tills sist skapar ett par standardkataloger där användaren kan ladda upp eller ner sina filer.

Skapa gruppen sftponly (Behöver endast göras 1 gång):

groupadd sftponly

Byt "username" på första raden med användarens namn vilken du vill begränsa:

export USERNAME="username"
chown root:root /home/$USERNAME
groupmod -A $USERNAME sftponly
mkdir /home/$USERNAME/Dokument
mkdir /home/$USERNAME/Bilder
mkdir /home/$USERNAME/Filer
chown -R $USERNAME:root /home/$USERNAME/*

Mer information

  1. man sshd_config
  2. man sshd
  3. man hosts.allow
  4. man host.deny


Se också

Inga av dessa länkar finns på svenska än.