HowTo - Chroota SFTP med MySecureShell
Postat: 15 mar 2008, 12:50
MySecureShell är en SFTP server som använder sig av OpenSSH. Den är flexibel och man har bl.a. möjlighet att fånga användarna i sina hemfoldrar eller andra foldrar. Man kan även styra bandbredd för upp- och nedladdning för enskilda användare. En annan finess är att det går att styra användarnas behörigheter genom grupper och ipnr. Av säkerhetsskäl ska man inte låta användare med root rättigheter köra MySecureShell.
MySecureShell med SFTP är mycket bra alternativ till vanlig FTP/FTPS, om man inte ska överföra alltför stora datamängder. Den är inte lika snabb som FTP/FTPS. I och med man kör SFTP är trafiken krypterad.
Avsikten med handledningen är att ge en introduktion till MySecureShell och är långt ifrån heltäckande. Mer information finns att hämta på webbplatsen http://mysecureshell.sourceforge.net
Installation
MySecureShell kräver libssl och openssh
Före hämtning förflyttar vi oss först förslagsvis till /tmp
Hämta (version 1.0 gäller i skrivandes stund):
Installera:
För att få uppdateringar förtsättningsvis lägg till nedanstående rad i /etc/apt/sources.list:
deb http://mysecureshell.free.fr/repository/debian testing main
Verifiera installationen
För att kolla att samtliga filer finns och att rättigheterna är som de ska, så kör kommandot härunder. Reparera vid behov enligt förslag.
Hantering av användare och grupper
För användare som redan har konto maskinen behöver man byta skal för dessa till /bin/MySecureShell om de ska att kunna köra MySecureShell
Ett varningens ord: Ändrar man en användares skal (från normalt bin/bash) till /bin/MySecureShell kan behörigheterna för användaren komma att påverkas efter inloggning i systemet!
I stället är det bättre (tycker jag) att skapa helt nya användarkonton bara för att användas av SFTP med MySecureShell. Nya användare skapas så här:
Skapa lösenord för användaren:
Vill man ha koll på vilka användare som kan köra sftp med MySecureShell:
Konfigurering
Konfigurering görs med en texteditor i filen /etc/ssh/sftp_config. Vi öppnar således denna:
Filen är väldokumenterad och självförklarande med sina kommentarer, men det viktiga är att det som står mellan <Default> och </Default> är globala parametrar, som gäller för samtliga användare. Vill man göra avsteg från vissa av dessa för speciella användare görs det med att skapa taggar för användare, grupper eller ipnr serier och knyta användaren till dessa. Exempel på grupper och ipnr serier finns i senare delen av filen. Man kan även använda taggar för enskild användare, typ <User nisse> ....</User>.
Men börja med att köra med konfigurationsfilen som den är - med ett undantag - ändra raden LimitConnectionByUser 1 till LimitConnectionByUser 2 för undvika strul vid anslutningsförsöken. Först när allt fungerar med de globala parametrarna, kan det finnas behov att experimentera och finlira med de övriga taggarna!
Skriver man in en ny grupp i konfigurationsfilen måste den också skapas på maskinen.
Efter att ha ändrat i konfigurationsfilen startar vi om MySecureShell:
Övervakning
När vi väl fått allt att fungera finns det några bra kommandon att känna till:
Sftp-serverns status:
Se vilka som är anslutna:
Kasta ut användare:
Klienter
FileZilla, gftp och SCP kan användas för att köra SFTP.
Övrigt
- Handledningen (med de globala parametrarna) är verifierad på en Gutsy desktop maskin.
- Har man inte haft OpenSSH installerat tidigare rekommenderas några ändringar i konfigurationsfilen /etc/ssh/sshd_config för att stärka ssh säkerheten. Hur detta görs finns beskrivit på annan plats i forumet.
- Glöm inte att öppna i brandvägg/router för portforwarding av port 22 av inkommande trafik till maskinen!
MySecureShell med SFTP är mycket bra alternativ till vanlig FTP/FTPS, om man inte ska överföra alltför stora datamängder. Den är inte lika snabb som FTP/FTPS. I och med man kör SFTP är trafiken krypterad.
Avsikten med handledningen är att ge en introduktion till MySecureShell och är långt ifrån heltäckande. Mer information finns att hämta på webbplatsen http://mysecureshell.sourceforge.net
Installation
MySecureShell kräver libssl och openssh
Kod: Markera allt
sudo apt-get install libssl0.9.8 ssh openssh-server
Kod: Markera allt
cd /tmp
Kod: Markera allt
wget http://ovh.dl.sourceforge.net/sourceforge/mysecureshell/mysecureshell_1.0_i386.deb
Kod: Markera allt
sudo dpkg -i mysecureshell_1.0_i386.deb
deb http://mysecureshell.free.fr/repository/debian testing main
Verifiera installationen
För att kolla att samtliga filer finns och att rättigheterna är som de ska, så kör kommandot härunder. Reparera vid behov enligt förslag.
Kod: Markera allt
sudo sftp-verif
För användare som redan har konto maskinen behöver man byta skal för dessa till /bin/MySecureShell om de ska att kunna köra MySecureShell
Kod: Markera allt
sudo usermod -s /bin/MySecureShell <användare>
I stället är det bättre (tycker jag) att skapa helt nya användarkonton bara för att användas av SFTP med MySecureShell. Nya användare skapas så här:
Kod: Markera allt
sudo useradd -m -s /bin/MySecureShell <användare>
Kod: Markera allt
sudo passwd <användare>
Kod: Markera allt
sudo sftp-user list
Konfigurering görs med en texteditor i filen /etc/ssh/sftp_config. Vi öppnar således denna:
Kod: Markera allt
gksudo gedit /etc/ssh/sftp_config
Men börja med att köra med konfigurationsfilen som den är - med ett undantag - ändra raden LimitConnectionByUser 1 till LimitConnectionByUser 2 för undvika strul vid anslutningsförsöken. Först när allt fungerar med de globala parametrarna, kan det finnas behov att experimentera och finlira med de övriga taggarna!
Skriver man in en ny grupp i konfigurationsfilen måste den också skapas på maskinen.
Efter att ha ändrat i konfigurationsfilen startar vi om MySecureShell:
Kod: Markera allt
sudo /etc/init.d/mysecureshell restart
När vi väl fått allt att fungera finns det några bra kommandon att känna till:
Sftp-serverns status:
Kod: Markera allt
sudo sftp-state
Kod: Markera allt
sudo sftp-who
Kod: Markera allt
sudo sftp-kill <användare>
FileZilla, gftp och SCP kan användas för att köra SFTP.
Övrigt
- Handledningen (med de globala parametrarna) är verifierad på en Gutsy desktop maskin.
- Har man inte haft OpenSSH installerat tidigare rekommenderas några ändringar i konfigurationsfilen /etc/ssh/sshd_config för att stärka ssh säkerheten. Hur detta görs finns beskrivit på annan plats i forumet.
- Glöm inte att öppna i brandvägg/router för portforwarding av port 22 av inkommande trafik till maskinen!