Com instal·lar i configurar un servidor FTP amb Pure-FTPd + usuaris virtuals

Jo sóc dels que els agrada innovar i conèixer coses noves, fa no gaire vaig haver de instal·lar i configurar un servidor FTP i vaig decidir fer-ho de forma diferent a com sempre ho feia.

En aquest cas vaig optar per un servei FTP amb usuaris virtuals, usuaris que estaran emmagatzemats en un arxiu xifrat (usuari, password, configuracions, etc), tot amb Pure FTPd.

Aquí els mostraré com fer-ho ... bé, comencem 😉

Primer que tot, especificar que les ordres d'aquest tutorial estan pensats per a distros com Debian o basades en elles, no obstant si algú fa servir una altra distro en el seu servidor ha d'instal·lar els mateixos paquets i usar les configuracions posades més baix, l'únic que necessita canviar és la comanda d'instal·lació.

Totes les comandes que llegiran seran executats com a root, vostès si ho desitgen poden anteposar «suo» a cada línia.

1. Primer hem d'instal·lar Pure FTPd:

apt-get install pure-ftpd

Les acabarà l'output en alguna cosa com això:

installing-pure-ftpd

2. El servei ja està activat, però no ens serveix de res si no ho hem configurat apropiadament, posem un arxiu de configuració extens però gairebé que és estàndard, conté el normal, establint que els usuaris anònims no són permesos, etc etc.

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf

3. Bé, suposem que la nostra carpeta d'FTP és / var / www / ftp / i desitgem crear un usuari pugui pujar informació a la carpeta / var / www / ftp / sysadmin /, posem el següent en una terminal:

pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/

Això vol dir el següent:

pure-pw: Comando que ens serveix per manipular usuaris de Pure-FTPd
useradd: Indiquem que afegirem un usuari
sysadmin: L'usuari que desitjo crear
-u 2001: UserID d'aquest usuari
-g 2001: GroupID d'aquest usuari
-d / var / www / ftp / sysadmin /: La carpeta que serà el home d'aquest usuari, és a dir, on pujarà les coses

A l'posar la línia anterior els preguntarà el password d'aquest usuari.

Han d'haver creat amb anterioritat la carpeta sysadmin dins de / var / www / ftp /

4. Ara han de refrescar el fitxer de base de dades d'usuaris, per això entrem a la carpeta / etc / pure-ftpd / (cd / etc / pure-ftpd) i posem a la terminal:

pure-pw mkdb

5. Ara hem d'iniciar Pure-FTPd però indicant-li que farem servir l'arxiu d'usuaris virtuals, primer aturem el servei:

/etc/init.d/pure-ftpd stop

Després ens assegurarem que no s'iniciarà per defecte de forma normal:

chmod -x /etc/init.d/pure-ftpd

I ara iniciem el servei a la nostra manera:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

6. Si proven fent servir una aplicació com Filezilla veuran que es poden connectar sense problemes amb l'usuari creat, però no podran copiar res o crear directoris, això és degut al fet que la carpeta / var / www / ftp / sysadmin / (el home de l'usuari segons l'exemple) no té els permisos apropiats, se solucionarà amb un:

chown -R 2001:2001 /var/www/ftp/sysadmin/

Recordin, el uid i Gid 2001 és el de l'usuari que vam crear, el vam crear amb la comanda en l'anterior pas 3 😉

7. Per aturar el servei n'hi ha prou amb en aquesta mateixa terminal pressionar [Ctrl] + [C] o bé en una altra terminal fer un:

killall pure-ftpd

Ara indicarem que el servei s'iniciarà automàticament amb el sistema quan el servidor iniciï, per això modifiquem l'arxiu /etc/rc.local i abans de l'última línia que diu «exit 0» posem la comanda amb el que vam iniciar el servei FTP:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

O sigui, ens quedaria així:

rc-local-pure-ftpd

Poden editar el fitxer amb nano, vaig veure o el seu editor preferit, o si ho prefereixen copiïn i enganxin aquesta comanda que els facilitarà la feina:

perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local

... si si ... com van llegir, «facilitar», és una ordre extens sí, però és simplement substituir text amb perl i un inofensiu fet 🙂

8. Un cop fet això, reinicien el servidor i veuran com ja el servei pure-ftpd està iniciat i llest per funcionar 😀

Com eliminar usuaris?

Com els vaig dir abans, la comanda pur-pw és el que necessitem per manipular usuaris, per eliminar un usuari (per exemple, sysadmin) posem el següent:

cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb

Recordin que sempre que facin un canvi en algun usuari han de tornar a generar l'arxiu virtual de base de dades dels usuaris, es troba a / etc / pure-ftpd / i es genera / s'actualitza amb pure-pw mkdb

En fi amics / es crec que no hi ha molt més que afegir, convidar-los a que es llegeixin l'ajuda de pure-pw ja que ens permet moltes més coses que les que aquí els vaig mostrar (aquest és només un tutorial breu i gairebé bàsic).

Jo fa un o dos anys era dels que tot ho vinculava a OpenLDAP o MySQL, però amb el passar el temps em vaig adonar que tantes connexions a bases de dades que siguin servidors com a tal generen un consum que moltes vegades no ens podem permetre, per això l'ús d'alternatives completament viables com la d'usar bases de dades en arxius propis de l'aplicació, com és aquest cas dels .pdb de Pure-FTPd 🙂

Qualsevol dubte o pregunta intentaré ajudar en tot el que pugui.

Salutacions i ... happy hacking!


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   ILAV va dir

    Això això .. Documentació en cas d'errors 😀

    1.    KZKG ^ Gaara va dir

      I ja estic redactant el post sobre com instal·lar Nginx + MySQL + Spawn_FastCGI com ho vaig fer en Justice, i gràcies a això el blog funciona tan bé 🙂

      Espero tenir-lo a punt per demà o passat-demà.

  2.   Rodolfo va dir

    Bon post; és graciós fa poc vaig estar batallant per posar el meu servidor ftp inclusivament no vaig poder amb vsftpd i em passi a pure-ftpd i camina el que si em sembla et mancat és posar un exemple de l'conf clar la documentació és molt bona, però al menys el bàsic . Encriptació, o al menys el port forwading en cas que es faci servir router.
    Per cert amb aquesta comanda pure-ftpwho et permet saber qui està connectat a servidor, i si aquesta baixant alguna cosa;).
    I d'acord amb tu posar una base de dades per connectar-se a el servidor no és tan necessari.

    1.    KZKG ^ Gaara va dir

      Gràcies pel comentari 🙂

      Sí en efecte, em va faltar explicar moltes coses (sobretot de fet) en la configuració, és que vaig assumir que algú que sap administrar un servidor, que desitja instal·lar un servei FTP, aquest algú no tindria més problemes per llegir els comentaris de l'arxiu de conf ^ - ^

      Salutacions i de nou, gràcies pel comentari

  3.   Tahuri va dir

    Hola Molt bo el post, jo faig servir (o almenys per ara) vsftpd però tinc alguns problemes amb el, i volia veure si em passo a aquest, tenes alguna url o doc per veure com és la seva configuració?

    Moltes gràcies};)

    1.    KZKG ^ Gaara va dir

      La configuració la pots veure aquí: http://ftp.desdelinux.net/pure-ftpd.conf
      Qualsevol dubte o si necessites alguna cosa obre un fil al fòrum que amb gust t'ajudem 🙂

  4.   Atheyus va dir

    Molt bo 😀

    Només una petita cosa, l'ordre en perl li falta el símbol de ^, perquè no canviï l'altre exit 0 que està en els comentaris:

    perl -pi -e "s[^exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" rc.local && echo "exit 0" >> rc.local

    Salutacions

  5.   Omar va dir

    excel·lent, només que tinc un dubte, com puc crear un usuari de sol lectura ?? ús Centos 6.5, pureftpd, ISPConfig i manera gràfic.

    l'ISPConfig el faig servir nomes per al ftp

    salutacions i gràcies

  6.   monsó va dir

    Aquesta forma d'instal·lar pureftp és un ASCO 🙂 deixes corrent el servei com a root, crees un usuari virtual i després canvies els permisos en el filesystem, i ufff un llarg etc. La forma en què s'instal·la el paquet ja ve llest per a ser usat, no hi ha necessitat de fer tots aquests passos

    1.    ILAV va dir

      Quedes convidat a publicar una guia menys «fastigosa» .. 😉

    2.    sedlav va dir

      ¿Q proposes? ¿Posar a escoltar el servidor ftp en un port> 1024? Si el servidor ftp aquesta a l'escolta en el seu port estàndard: 22 s'ha d'executar com root a l'llevat que modifiquis els capabilities de el nucli, si el que vols és millorar la seguretat fa servir un framework MAC amb SELinux altra variant seria fer-li jail / chroot el servidor ftp.

  7.   LlSastre va dir

    El link per al pure-ftpd.conf està caigut o no existeix. Pots restaurar?
    Gràcias

  8.   Arxius adjunts va dir

    2 anys més tard el link per a l'arxiu pure-ftpd.conf segueix caigut 🙁