Openssh
|
---|
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.
|
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).
![]() |
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
![]() |
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.
![]() |
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:
- starta YaST
- gå till Security & Users -> Edit and Create groups
- Lägg till en ny grupp kallad sshlogin (om den inte redan existerar)
- 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ö.
![]() |
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
![]() |
%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
- man sshd_config
- man sshd
- man hosts.allow
- man host.deny
Se också
Inga av dessa länkar finns på svenska än.