[ssh] SCPonly en WinSCP: wel auth, geen group/dir

Pagina: 1
Acties:
  • 249 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Wij hebben servers waarop SCPonly is geïmplementeerd als een veilige file transfer oplossing.
Met het script in /usr/share/doc/scponly/setup_chroot heb ik in de home folders van familie en klanten een jailed root gemaakt met alleen de commandoset die een SSH cliënt mag gebruiken.
De home folder van onze privé server als voorbeeld nemend, ziet dat er nu zo uit:
code:
1
2
3
4
5
6
7
8
9
drwxr-xr-x  10 root      root       4096 Jul  3  2006 .
drwxr-xr-x   6 root      root       4096 Jul  3  2006 ..
drwxrwxr-x 513 myth      myth       12288 Feb 10 18:56 Music
drwxrwxr-x   2 gast      users      4096 Jul 25  2006 Documents
drwxrwxr-x   8 myth      myth       4096 Feb 10 20:40 Video
drwxr-xr-x   2 root      root       4096 Jun  3  2006 bin
drwxr-xr-x   2 root      root       4096 Jun  3  2006 etc
drwxr-xr-x   3 root      root       4096 Jun  3  2006 lib
drwxr-xr-x   4 root      root       4096 Jun  3  2006 usr

De jailed home directory zelf en de subdirectories met systeemgereedschappen zijn eigendom van root, zodat de gebruikers daarin geen bestanden kunnen vervangen om zodoende door de beveiliging heen te kunnen breken. In dit geval is de 'Video' map in beheer van een andere gebruiker, read-only voor de gastgebruiker.

Met Fugu als client kan ik op de server inloggen en bestanden kopiëren, en er is voorheen ook probleemloos een oudere versie van WinSCP gebruikt. Maar met de nieuwste WinSCP werkt het niet. Er zijn 2 problemen, waarvan ik vermoedelijk de eerste al heb opgelost:

Probleem 1 (opgelost, maar misschien niet helemaal goed):
Een gebruiker met WinSCP kon wel inloggen maar werd er daarna meteen uitgeknikkerd. Op de server stond dit in /var/log/auth.log:
code:
1
2
3
4
5
Feb 11 19:24:03 myth sshd[3920]: Accepted keyboard-interactive/pam for gast from xx.xx.xx.xx port 62549 ssh2
Feb 11 19:24:03 myth sshd[3927]: (pam_unix) session opened for user gast by (uid=0)
Feb 11 19:24:03 myth scponly[3928]: running: /usr/bin/groups (username: gast(1001), IP/port: xx.xx.xx.xx 62549 2222)
Feb 11 19:24:03 myth scponly[3929]: failed: /usr/bin/groups with error No such file or directory(2) (username: gast(1001), IP/port: xx.xx.xx.xx 62549 2222)
Feb 11 19:24:03 myth sshd[3927]: (pam_unix) session closed for user gast

Het bleek dat de client het commando 'groups' gebruikt in /home/gast/usr/bin/, maar dit is een shell-script, en de shell scripting omgeving is afwezig in de jailed root. Het leek me een beetje dom dat het SCPonly pakket het shell script wel dupliceert naar de home folders, om er vervolgens een omgeving van te maken waar de shell is afgeschermd. Maar goed, het installatie-script teruglezend zag ik dat ie wel aangeeft dat het probleem bestaat en ook een hint geeft om het op te lossen.
In /usr/share/doc/scponly staat een vervanging voor het 'groups' shell-script: 'groups.c'. Volgens de handleiding zou er een binary programma moeten staan 'groups', ik zag alleen 'groups.c', dus ik heb maar 'gcc groups.c' gedaan en het gecompileerde resultaat op de plek '/home/gast/usr/bin/groups' gezet in plaats van het oude shellscript. Als je vanaf de command line het /home/gast/usr/bin/groups opstart geeft ie 'root' terug, hetzelfde als het shell script in het gewone systeem.

Probleem 2:
Nu krijgt de WinSCP client deze foutmelding te zien:
code:
1
Error getting name of current remote directory

In de server logs niets bijzonders verder:
code:
1
2
3
4
Feb 13 09:51:45 myth sshd[14856]: Accepted keyboard-interactive/pam for gast from xx.xx.xx.xx port 64215 ssh2
Feb 13 09:51:45 myth sshd[14865]: (pam_unix) session opened for user gast by (uid=0)
Feb 13 09:51:46 myth scponly[14866]: running: /usr/bin/groups (username: gast(1001), IP/port: xx.xx.xx.xx 64215 2222)
Feb 13 09:51:46 myth sshd[14865]: (pam_unix) session closed for user gast

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Wacht even, ik had mijn moeder gevraagd om het ook even te testen, zij is aan de lijn en schijnt het probleem al te hebben opgelost, ze zit al druk door mijn videocollectie te bladeren :D

Meer info volgt, voor wie later op dit probleem stuit...

Acties:
  • 0 Henk 'm!

Verwijderd

lol... een tweakmoeder.. _/-\o_

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Tweakoma zelfs :) Ze is een heel enthousiaste computergebruiker, en heeft zich wel eens laten ontvallen 'Ik ben helemaal in de de verkeerde tijd geboren!' :>

Wat nou precies het probleem is, is me nog niet helemaal duidelijk. Het is waarschijnlijk een Windows client side probleempje, dus misschien wordt dit topic straks richting WOS gestuiterd :X Ik had dit gemaild, nog geen reactie teruggehad:
Omdat ik zelf geen Windows XP computer bij de hand heb, had ik (o)ma gevraagd om ook WinSCP te proberen. Net belde ze terug, ze kon zonder problemen inloggen [...]
Wat ik me nu zit te bedenken, bij het inlogscherm kun je die 'remote directory' wel ergens opgeven, het zit waarschijnlijk onder 'Advanced options' of zo. Misschien heb je om alles uit te proberen wat meer ingevuld dan nodig is. In principe moet er niets bij 'remote directory' ingevuld zijn, zodat je op de server gewoon in de 'home root' uitkomt [...]
Het kan 'm ook in het 'Protocol' knopje zitten, zet die eens in het midden 'SFTP - allow SSCP fallback'... maar als dat verschil uitmaakt dan zou mijn server nog steeds niet goed zijn ingesteld. We kunnen natuurlijk ook aan oma vragen hoe haar instellingen eruit zien.
Probeer nog maar even dus. Bel of mail je even als het lukt (en helemaal als het niet lukt)? Ik had het probleem al gepost op het forum (...), dus daar zet ik graag ook een oplossing bij.
Dit was ik nog vergeten in de TS te vermelden:
- SCPonly: versie 4.6-1, in het geval van mijn home server onder Ubuntu Edgy.
- WinSCP: versie 3.8.2, van de WinSCP downloadpagina

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
* benoni schopt zichzelf
(omdat ik 't weer eens vergeten was, en daarom een paar uur voor Janviool heb lopen zoeken...)

Onder Debian Etch werkt de standaard scponlyc niet en moet er getweakt worden:
Installing scponly on Debian 4.0(Etch) with apt

Installing scponly on an Debian 3.1(sarge) is no problem, after apt-get install scponly and choosing scponly or scponlyc option you only have to creat the users with the setup_chroot.sh file. But with Debian 4.0(Etch) you are running into Problems. So here is an solution that might help a bit:
1. Login on the shell aus root
2. Get the scponly package:
apt-get install scponly
3. Copy the setup_chroot.sh file from /usr/share/doc/scponly/setup_chroot/ to /root for easier access (in some cases the file is in the setup_chroot.sh.gz file)
4. Edit the config.h file in /usr/share/doc/scponly/setup_chroot
Choose the type of sconly you want to use.
If you want scponlyc (no shell(ssh) connection for users but sftp is enabled) write scponlyc into the CHROOTED_NAME:
#define CHROOTED_NAME "scponlyc"
Save file and exit.
5. Run ./setup_chroot.sh and creat a user
Enter username, user_home_dir and user_working_dir (this has to be below the user_home_dir)
6. Write scponlyc to /etc/shells
which scponlyc >> /etc/shells
7. Set SUID-Bit for scponlyc
chmod u+s /usr/sbin/scponlyc
8. Creat dev dir
cd /home/username
mkdir dev
cd dev
mknod -m 666 null c 1 3
Done!
En vergeet voor de WinSCP gebruikers niet om de meegeleverde groups.c te compileren als vervanging voor /home/gast/usr/bin/groups (in het geval dat groups een shellscript is en geen binary, zoals bij Debian of Redhat). Zie verder startpost.

}:O :)

Addit:
De ondersteuning voor rsync is ook verbroken (vanwege mogelijke veiligheidsproblemen met de -e / -rsh= optie) en weer hersteld, maar dat is niet bijgewerkt in Etch.
John at http://rsync.net notified me a couple of days ago that support for
rsync-3.0 was broken. I have confirmed that it was an issue and I have fixed
it in CVS, after confirming on the rsync mailing list that '-e' when used as
a server option (eg. with --server also present) is safe.

A new snapshot is available at sourceforge.
Een mogelijkheid is om bij sourceforge.net deze snapshot te downloaden, deze zelf te compileren met rsync support. Ik heb een tijdelijke map aangegeven voor de installatie, en alleen de gecompileerde binaries over de bestaande heen gekopieerd.
cd scponly-20080308
mkdir ../scponly-install
./configure --enable-chrooted-binary --enable-rsync-compat \
 --prefix=../scponly-install --exec-prefix=../scponly-install
make
make install

[ Voor 27% gewijzigd door benoni op 03-07-2008 23:58 ]