Hoe installeer en configureer je een FTP-server met Pure-FTPd + virtuele gebruikers

Ik ben een van degenen die graag innoveren en nieuwe dingen leren, niet zo lang geleden moest ik een FTP-server installeren en configureren en ik besloot het anders te doen dan altijd.

In dit geval heb ik gekozen voor een FTP-service met virtuele gebruikers, gebruikers die worden opgeslagen in een versleuteld bestand (gebruikersnaam, wachtwoord, instellingen, enz.), allemaal met Pure FTPd.

Hier laat ik je zien hoe je dat doet... nou, laten we beginnen 

Geef allereerst aan dat de commando's in deze tutorial bedoeld zijn voor distributies zoals Debian of daarop zijn gebaseerd, maar als iemand een andere distro op zijn server gebruikt, moeten ze dezelfde pakketten installeren en de onderstaande instellingen gebruiken, het enige dat moet worden gewijzigd is het installatie commando.

Alle commando's die ze zullen lezen, worden uitgevoerd als root, als je wilt, kun je "sudo" toevoegen aan elke regel.

1. Eerst moeten we Pure FTPd installeren:

apt-get install pure-ftpd

De uitvoer eindigt als volgt:

installeren-pure-ftpd

2. De service is al geactiveerd, maar nutteloos als we deze niet correct hebben geconfigureerd. Stel dat we een lang, maar vrijwel standaard configuratiebestand hebben; het bevat de gebruikelijke zaken, zoals de bepaling dat anonieme gebruikers niet zijn toegestaan, enzovoort.

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

3. Oké, laten we ervan uitgaan dat onze FTP-map /var/www/ftp/ is en dat we een gebruiker willen aanmaken die informatie kan uploaden naar de map /var/www/ftp/sysadmin/. Laten we het volgende in een terminal invoeren:

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

Dit betekent het volgende:

pure-pw: Commando gebruikt om Pure-FTPd-gebruikers te manipuleren
useradd: We geven aan dat we een gebruiker gaan toevoegen
sysadmin: De gebruiker die ik wil aanmaken
-u 2001: UserID van die gebruiker
-g 2001: GroupID van die gebruiker
-d / var / www / ftp / sysadmin /: de map die de thuisbasis van die gebruiker zal zijn, dat wil zeggen, waar ze dingen zullen uploaden

Wanneer u de vorige regel invoert, wordt u om het wachtwoord van die gebruiker gevraagd.

Ze moeten eerder de map sysadmin hebben gemaakt in / var / www / ftp /

4. Nu moet u het gebruikersdatabasebestand vernieuwen. Ga hiervoor naar de map /etc/pure-ftpd/ (cd /etc/pure-ftpd) en typ het volgende in de terminal:

pure-pw mkdb

5. Nu moeten we Pure-FTPd starten, maar met de specificatie dat we het virtuele gebruikersbestand gaan gebruiken. Laten we eerst de service stoppen:

/etc/init.d/pure-ftpd stop

Dan zullen we ervoor zorgen dat het niet normaal start:

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

En nu beginnen we de service op onze eigen manier:

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

6. Als u een applicatie zoals FileZilla probeert te gebruiken, zult u zien dat u zonder problemen verbinding kunt maken met de aangemaakte gebruiker; u kunt echter niets kopiëren of mappen aanmaken. Dit komt doordat de map /var/www/ftp/sysadmin/ (de thuismap van de gebruiker in dit voorbeeld) niet de juiste machtigingen heeft. Dit kan worden opgelost met:

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

Onthoud dat de Uid en Gid 2001 die zijn van de gebruiker die we hebben gemaakt, we hebben deze gemaakt met de opdracht in de vorige stap 3 

7. Om de service te stoppen, drukt u op [Ctrl]+[C] op dezelfde terminal, of doet u het volgende op een andere terminal:

killall pure-ftpd

Nu zullen we aangeven dat de service automatisch zal starten met het systeem wanneer de server start, hiervoor wijzigen we het /etc/rc.local bestand en voor de laatste regel die "exit 0" zegt, plaatsen we het commando waarmee we de FTP-service starten:

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

Met andere woorden, het zou er als volgt uitzien:

rc-local-pure-ftpd

U kunt het bestand bewerken met nano, vi of uw favoriete editor, of, als u dat wilt, deze opdracht kopiëren en plakken om uw werk gemakkelijker te maken:

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

…ja ja… zoals je leest, “faciliteren”, is het een uitgebreid commando ja, maar het vervangt eenvoudigweg tekst door perl en een onschuldige echo 

8. Zodra dit is gedaan, herstart u de server. U zult zien dat de pure-ftpd-service nu is gestart en klaar is voor gebruik.

Hoe verwijder ik gebruikers?

Zoals ik al eerder zei, hebben we het commando `pure-pw` nodig om gebruikers te beheren. Om een ​​gebruiker te verwijderen (bijvoorbeeld sysadmin), gebruiken we het volgende:

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

Onthoud dat wanneer u een wijziging aanbrengt in een gebruiker, u het virtuele databasebestand van de gebruikers opnieuw moet genereren, het bevindt zich in / etc / pure-ftpd / en het wordt gegenereerd / bijgewerkt met pure-pw mkdb

Hoe dan ook vrienden, ik denk dat er niet veel meer is om toe te voegen, nodig je uit om de hulp van pure-pw te lezen, want het geeft ons veel meer dan wat ik je hier heb laten zien (dit is slechts een korte en bijna eenvoudige tutorial).

Een jaar of twee geleden was ik een van degenen die alles koppelde aan OpenLDAP of MySQL, maar naarmate de tijd verstreek besefte ik dat zoveel verbindingen met databases die als zodanig servers zijn, verbruik genereren dat we ons vaak niet kunnen veroorloven. Daarom is het gebruik van volledig haalbare alternatieven zoals het gebruik van databases in de eigen bestanden van de applicatie, zoals in dit geval van Pure-FTPd .pdb 

Elke twijfel of vraag zal ik proberen zo goed mogelijk te helpen.

Groeten en ... gelukkig hacken!


Voeg dit toe als voorkeursbron in Google.