Posts Tagged ‘debian’

sFTP server cu Debian si chRoot jail pentru useri

sftpServerul sFTP functioneaza prin SSH, mai precis pe portul 22. Intamplarea a facut sa am nevoie de un astfel de server, unde bine-nteles ca nu era suficient un simplu FTP intrucat era nevoie ca transferul sa se faca in mod securizat.

By default cand instalezi un sistem de operare, te poti autentifica cu userii locali si prin sFTP insa apare problema ca un user poate vizualiza toate folderele serverului, lucru care nu ne-ar conveni sub nici o forma. Astfel, vom apela la metoda chroot jail pentru userii creati. Autentificarea cu toate ca se face pe portul 22 (SSH) userilor nu le vom da drept de conectare SSH, doar sFTP.

Primul pas este sa creem un grup unde toti userii v vor fi adaugat. Il voi numi sftpusers:

groupadd sftpusers

Apoi vom crea un user ‘john’ care va avea home folder /incoming si shell-ul /sbin/nologin pentru a-i interzice logarea prin SSH.

useradd -g sftpusers -d /incoming -s /sbin/nologin john

Acum ii alocam o parola userului john:

passwd john

Userul il putem verifica in /etc/passwd

cat /etc/passwd

Acum trebuie sa facem cateva modificari in fisierul /etc/ssh/sshd_config. Asadar, inlocuim linia:
#Subsystem sftp /usr/libexec/openssh/sftp-server

cu

Subsystem sftp internal-sftp

Dupa ce am facut aceasta modificare, mai trebuie sa adaugam tot in acest fisier cateva linii care spun ca vom face chroot doar pentru userii folderul sftp.
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Match Group sftpusers – indica faptul ca urmatoarele linii se aplica doar utilizatorilor din grupul sftpusers.

ChrootDirectory /sftp/%u – indica locul in care userii vor avea chroot dupa autentificare

ForceCommand internal-sftp – este o comanda care forteaza executia internal-sftpsi ignora alte comenzi mentionate in ~/.ssh/rc

Urmeaza sa creem directorul sftp.

mkdir /sftp

,iar in interiorul acestui folder vom crea un alt folder care va purta numele fiecarui utilizator creat. In cazul nostru:

mkdir /sftp/john

Acum /sftp/john este echivalentul „/” pentru userul john. Ca sa izolam utilizatorii, sa nu poata vedea ce alti urtilizatori mai exista sau ce foldere mai contine /sftp, vom crea in interiorul folderului /sftp/john un director numit: incoming, prin care vom pune in valoare chroot-ul.

mkdir /sftp/john/incoming

Mai trebuie sa punem permisiuni relevante user:sftpusers pe acest folder „incoming”:

chown john:sftpusers /sftp/john/incoming

Ultimul pas este sa restartam serviciul SSH executand comanda:

/etc/init.d/ssh restart

urmand apoi sa testam in FileZilla conexiunea pe sFTP.

Debian Squeeze si virtualizarea de la Microsoft – Hyper-V

Debian Squeeze sau Debian 6 se pare ca nu are incarcate in Kernel driverele pentru Hyper-V. In acest caz instalarea este putin mai dificila in sensul ca se face instalarea folosind imaginea .iso (netinst sau oricare alta) si bine-nteles se instaleaza un sistem Debian minimal pentru ca nu ii gaseste placa de retea ca sa poata descarca pachetele de pe internet.

Astfel dupa instalare am incarcat manual modulele Hyper-V editand /etc/initramfs-tools/modules:

nano /etc/initramfs-tools/modules

unde am adaugat liniile:

hv_vmbus
hv_storvsc
hv_blkvsc
hv_netvsc

si apoi am facut update la initramfs:

update-initramfs –u

Din pacate fara rezultat dupa restart. Astfel am fost nevoit sa intervin in setarile masinii virtuale in Hyper-V Manager-> Add hardware-> Legacy Network adapter pentru a emula o interfata fizica de retea multiport DEC 21140 10/100TX 100 MB pe care Debian sa o poata gasi fara probleme.
Dupa repornire interfata de retea functioneaza, iar la lspci apare:

00:0a.0 Ethernet controller: Digital Equipment Corporation DECchip 21140 [FasterNet] (rev 20)

srv StandDuPp
Articole recente