HowTo - VSFTPD med virtuella användare och mysql

Här kan du dela med dig av dina bästa tips och knep.
Kategoriregler
Här ligger de utförliga instruktionerna vi kan tänkas behöva. Leta här om du tex behöver installera nåt program eller sätta upp någon funktion. Starta inte trådar utan att ha ett svar.
Användarvisningsbild
northface
Inlägg: 501
Blev medlem: 15 dec 2007, 02:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

HowTo - VSFTPD med virtuella användare och mysql

Inlägg av northface »

I ett flertal trådar i forumet har frågan varit uppe om man måste ha ett systemkonto på maskinen för att kunna köra ftp. Det behövs naturligtvis inte. Man kan istället skapa virtuella ftp-användare. Denna handledning beskriver hur man kan göra detta. Då jag själv kör Debian Etch server är handledningen baserad på konfigurering av vsftpd ftp-server på denna, men det bör fungera på Ubuntu också.

Följande försätts vara installerat på maskinen:
- vsftpd server ( sudo apt-get install vsftpd )
- MySQL server ( se http://www.howtoforge.com/perfect_server_ubuntu7.10_p4 )


0. Bli root

Kod: Markera allt

sudo su

1. Skapa en databas för vsftpd

Kod: Markera allt

mysql -u root -p
b) Ersätt ftpdpass nedan med önskat lösenord för användaren vsftpd. Skriv upp lösenordet - du behöver det senare!

Kod: Markera allt

CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;

Kod: Markera allt

USE vsftpd;

Kod: Markera allt

CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;

Kod: Markera allt

quit;

2. Konfigurera vsftpd.
a) Skapa användaren vsftpd, som ska tillhöra gruppen nogroup med hemfoldern /home/vsftpd. vsftpd kommer att köras under denna användare.

Kod: Markera allt

useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
b) Skapa en ny vsftpd.conf
Ta först en kopia på gällande.

Kod: Markera allt

cp /etc/vsftpd.conf /etc/vsftpd.conf_orginal
c) Skapa en tom vsftpd.conf och öppna denna.

Kod: Markera allt

cat /dev/null > /etc/vsftpd.conf
nano /etc/vsftpd.conf
d) Klistra in följande och spara:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
pasv_min_port=50505
pasv_max_port=50510
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf


e) Skapa en folder

Kod: Markera allt

mkdir /etc/vsftpd_user_conf
I denna kan man om så önskas lägga användarspecifika konfigurationsfiler. Vi glömmer detta i denna HowTo.


3. Konfigurera PAM.
Vi ska nu konfigurera PAM som ska använda MySQL för att autentisera våra virtuella användare. Kontrollera att libpam-mysql är installerat.

Kod: Markera allt

apt-get install libpam-mysql
a) Ta en kopia på gällande PAM konfigurering för vsftpd

Kod: Markera allt

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orginal
b) Skapa en tom fil vsftpd och öppna denna

Kod: Markera allt

cat /dev/null > /etc/pam.d/vsftpd
nano /etc/pam.d/vsftpd
c) Klistra in följande och spara (OBS!! Glöm inte ersätta ftpdpass med det lösenord du skapade tidigare):
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2



4. Starta om vsftpd

Kod: Markera allt

/etc/init.d/vsftpd restart

5. Skapa nu en virtuell användare (nisse med lösenordet hemlis)

Kod: Markera allt

mysql -u root -p

Kod: Markera allt

USE vsftpd;

Kod: Markera allt

INSERT INTO accounts (username, pass) VALUES('nisse', PASSWORD('hemlis'));

Kod: Markera allt

quit;
Vi måste också skapa en folder för virtuelle användaren nisse

Kod: Markera allt

mkdir /home/vsftpd/nisse
chown vsftpd:nogroup /home/vsftpd/nisse
Dags för nisse att provköra! Glöm inte att öppna portarna 21 och 50505-50510 i brandvägg/router för inkommande trafik till maskinen.
Senast redigerad av 3 northface, redigerad totalt 5 gång.
Started out with nothing and have most of it left
Användarvisningsbild
gholen
Hedersmedlem
Inlägg: 1332
Blev medlem: 05 apr 2006, 19:27
OS: Ubuntu
Utgåva: 10.04 Lucid LTS
Ort: Uddevalla
Kontakt:

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av gholen »

Jag får detta?

Kod: Markera allt

root@Nikita:/home/gholen# mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Vad betyder det?
Bild
Användarvisningsbild
northface
Inlägg: 501
Blev medlem: 15 dec 2007, 02:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av northface »

Är din sql-server startad?
Started out with nothing and have most of it left
Användarvisningsbild
gholen
Hedersmedlem
Inlägg: 1332
Blev medlem: 05 apr 2006, 19:27
OS: Ubuntu
Utgåva: 10.04 Lucid LTS
Ort: Uddevalla
Kontakt:

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av gholen »

Hur gör man det?
Bild
Användarvisningsbild
northface
Inlägg: 501
Blev medlem: 15 dec 2007, 02:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av northface »

sudo /etc/init.d/mysql start

Här kan du läsa mer om mysql längst ned på sidan.
http://www.howtoforge.com/perfect_server_ubuntu7.10_p4
Started out with nothing and have most of it left
Användarvisningsbild
Buggen
Inlägg: 133
Blev medlem: 23 dec 2006, 20:15
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: skara

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av Buggen »

Hej, jag är lite sugen på att testa din guide :)
men jag undrar vad som är fördelen med en virtuell FTP mot en vanlig?
linux: amd 3800+, 2048mb ddr2, geforce 9500gt 512mb
windowz: intel c2d e8400, 2048mb ddr2, radeon hd3870 512mb
Användarvisningsbild
northface
Inlägg: 501
Blev medlem: 15 dec 2007, 02:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av northface »

Finessen är att ftp-användarna inte behöver ha något konto på maskinen. Du skapar användare och lösenord helt fristående från dina systemkonto. Bra ur säkerhetssynpunkt och lätt att administrera speciellt om man har många ftp-användare.
Senast redigerad av 1 northface, redigerad totalt 26 gånger.
Started out with nothing and have most of it left
Användarvisningsbild
northface
Inlägg: 501
Blev medlem: 15 dec 2007, 02:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av northface »

HowTo - uppdatering #1

Uppdateringarna är införda i Howto:n
Senast redigerad av 1 northface, redigerad totalt 5 gånger.
Started out with nothing and have most of it left
Användarvisningsbild
maths57
Inlägg: 2911
Blev medlem: 22 jun 2007, 15:10
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av maths57 »

Tack northface för din väldigt pedagogiska howto. Jag testade och lyckades direkt.

Om man installerar MySQL i Ubuntu så ska programmet starta automatiskt. Det hamnar också i /etc/init.d så det startar när datorn gör det. Felet tyder på att det är något inloggningsproblem. gholen, det är inte på en fjärrdator du försöker logga in?
Användarvisningsbild
Buggen
Inlägg: 133
Blev medlem: 23 dec 2006, 20:15
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: skara

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av Buggen »

Jag har möjligtvis en dum fråga..
Om man gör på detta sätt, kan man då streama tex. mp3?  ::)

*startar en ny tråd med lite undringar :)
Senast redigerad av 1 Buggen, redigerad totalt 29 gånger.
linux: amd 3800+, 2048mb ddr2, geforce 9500gt 512mb
windowz: intel c2d e8400, 2048mb ddr2, radeon hd3870 512mb
Användarvisningsbild
maths57
Inlägg: 2911
Blev medlem: 22 jun 2007, 15:10
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av maths57 »

Buggen, inga frågor är dumma. Den här är kanske lite OT. Men har du tänkt strömma till dig själv, för i så fall är virtuella användare inte rätt metod. Har du ett eget konto på datorn och vill köra FTP, kan du bara aktivera alternativet att lokala användare kan ha konton. Sedan avaktiverar du anonyma användare.
Användarvisningsbild
northface
Inlägg: 501
Blev medlem: 15 dec 2007, 02:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: HowTo - sätta upp vsftpd server med virtuella användare

Inlägg av northface »

HowTo - uppdatering #2
- Hur komma åt foldrar utanför "hemfoldern" -

http://ubuntu-se.org/smf/index.php/topi ... #msg171717
Started out with nothing and have most of it left
Yelles
Inlägg: 94
Blev medlem: 02 jul 2008, 11:00
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Falun
Kontakt:

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av Yelles »

När jag skriver
cat /dev/null > /etc/vsftpd.conf
Så får jag "Premission denied". Även när jag testar med sudo får jag samma medelande...

Någon som vet varför?
Datorn: P-4 HT 3,4 ghz, 2 gb, 250gb*3 sata, geforce 8800 gts 512 mb - Win Vista
Servern: P-D q-core 2,6 ghz 1066 fsb, 4 gb, 2x500 sata - Ubuntu 8,04
Bärbara: P-Dual core 2 ghz, 4gb, 300 gb IDE, geforce G105M 512 mb - Ubuntu 9,04
HP: Yelles.se - Inleed.se
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av andol »

Yelles skrev:När jag skriver
cat /dev/null > /etc/vsftpd.conf
Så får jag "Premission denied". Även när jag testar med sudo får jag samma medelande...

Någon som vet varför?
Problemet här är att det bara är "cat /dev/null" vilket körs utav sudo. Själva ompekandet (skrivandet) till /etc/vsftpd.conf görs däremot utav skalet, som din vanliga användare. I länken nedan finns det ett par förslag på hur man kan kringgå problemet. Lättast i sådana här sammanhang är nästan att köra "sudo -i" och få upp ett root-skal, med full behörighet.

https://help.ubuntu.com/community/RootS ... ing%20sudo
Yelles
Inlägg: 94
Blev medlem: 02 jul 2008, 11:00
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Falun
Kontakt:

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av Yelles »

andol skrev:
Yelles skrev:När jag skriver
cat /dev/null > /etc/vsftpd.conf
Så får jag "Premission denied". Även när jag testar med sudo får jag samma medelande...

Någon som vet varför?
Problemet här är att det bara är "cat /dev/null" vilket körs utav sudo. Själva ompekandet (skrivandet) till /etc/vsftpd.conf görs däremot utav skalet, som din vanliga användare. I länken nedan finns det ett par förslag på hur man kan kringgå problemet. Lättast i sådana här sammanhang är nästan att köra "sudo -i" och få upp ett root-skal, med full behörighet.

https://help.ubuntu.com/community/RootS ... ing%20sudo

sudo -i gav samma medelande... förlåt om jag ställer jobbiga frågor men är helt ny med ubuntu ???
Datorn: P-4 HT 3,4 ghz, 2 gb, 250gb*3 sata, geforce 8800 gts 512 mb - Win Vista
Servern: P-D q-core 2,6 ghz 1066 fsb, 4 gb, 2x500 sata - Ubuntu 8,04
Bärbara: P-Dual core 2 ghz, 4gb, 300 gb IDE, geforce G105M 512 mb - Ubuntu 9,04
HP: Yelles.se - Inleed.se
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av andol »

Hmm, nu ska vi se så vi inte missförstår varandra... Körde du "sudo -i" följt utav resten på samma rad, eller enbart "sudo -i", punkt. Förövrigt det sista som är rätt :)
Yelles
Inlägg: 94
Blev medlem: 02 jul 2008, 11:00
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Falun
Kontakt:

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av Yelles »

opsi... de där va inte jag ;D Tack så hemskt mycket i alla fall :-*
Datorn: P-4 HT 3,4 ghz, 2 gb, 250gb*3 sata, geforce 8800 gts 512 mb - Win Vista
Servern: P-D q-core 2,6 ghz 1066 fsb, 4 gb, 2x500 sata - Ubuntu 8,04
Bärbara: P-Dual core 2 ghz, 4gb, 300 gb IDE, geforce G105M 512 mb - Ubuntu 9,04
HP: Yelles.se - Inleed.se
Yelles
Inlägg: 94
Blev medlem: 02 jul 2008, 11:00
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Falun
Kontakt:

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av Yelles »

Har fått igång allting nu... får anslutning till ftpn men när jag lägger till användare och skapat mappen så när jag ska logga in får jag username or/and password incorrect... så något måste jag gjort fel. Någon som vet var jag borde kolla? Uppgifterna i databasen stämmer, de har inget med privlieger att göra på burken så jag inte kommer åt den?

Tack :)
Datorn: P-4 HT 3,4 ghz, 2 gb, 250gb*3 sata, geforce 8800 gts 512 mb - Win Vista
Servern: P-D q-core 2,6 ghz 1066 fsb, 4 gb, 2x500 sata - Ubuntu 8,04
Bärbara: P-Dual core 2 ghz, 4gb, 300 gb IDE, geforce G105M 512 mb - Ubuntu 9,04
HP: Yelles.se - Inleed.se
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av andol »

Säger /var/log/vsftpd.log något intressant?
Yelles
Inlägg: 94
Blev medlem: 02 jul 2008, 11:00
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Falun
Kontakt:

Re: HowTo - VSFTPD med virtuella användare och mysql

Inlägg av Yelles »

andol skrev:Säger /var/log/vsftpd.log något intressant?
Listar lite försök att ansluta till servern och att "användarnamnet fail login...
Datorn: P-4 HT 3,4 ghz, 2 gb, 250gb*3 sata, geforce 8800 gts 512 mb - Win Vista
Servern: P-D q-core 2,6 ghz 1066 fsb, 4 gb, 2x500 sata - Ubuntu 8,04
Bärbara: P-Dual core 2 ghz, 4gb, 300 gb IDE, geforce G105M 512 mb - Ubuntu 9,04
HP: Yelles.se - Inleed.se
Skriv svar

Återgå till "Guider"