FTPSERVER MED VIRTUELLA ANVÄNDARE OCH MYSQL

Om inte vsftpd och MySQL är på plats får vi börja med detta. Under installationen ska vi ange ett lösenord för MySQL rootanvändaren. Spara det för framtida behov!
Kod:
sudo apt-get install vsftpd mysql-server mysql-client libmysqlclient15-dev
Under installationen konfigureras MySQL att lyssna på localhost. Det fungerar i vårt fall. I andra fall vill man att den ska lyssna på alla interfacen. Det kan man ändra i /etc/mysql/my.cnf. Öppna denna:
Kod:
sudo nano /etc/mysql/my.cnf
Sök efter avsnittet

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1

Om så önskas kan raden kommenteras bort (#). Den kommer då att se ut så här:

# bind-address = 127.0.0.1

och starta sedan om MySQL
Kod:
sudo /etc/init.d/mysql restart
Skapa en databas för vsftpd
Kod:
sudo mysql -u root -p
Ersätt ftpdpass nedan med önskat lösenord för användaren vsftpd. Skriv upp lösenordet - du behöver det senare!
Kod:
CREATE DATABASE vsftpd;
Kod:
 GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
Kod:
 GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY     'ftpdpass';
Kod:
FLUSH PRIVILEGES;
Kod:
USE vsftpd;
Kod:
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:
 quit;
Vi fortsätter med konfigureringen av vsftpd. Skapa användaren vsftpd, som ska tillhöra gruppen nogroup med hemfoldern /home/vsftpd. vsftpd kommer att köras under denna användare.
Kod:
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Byt namn på vsftpd.conf
Kod:
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.org
Skapa en ny vsftpd.conf
Kod:
sudo nano /etc/vsftpd.conf
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=63200
pasv_max_port=63204
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES

Vi ska nu konfigurera PAM som ska använda MySQL för att autenticera våra virtuella användare. Kontrollera först att libpam-mysql är installerat.
Kod:
sudo apt-get install libpam-mysql
Byt namn på PAM konfigurering för vsftpd
Kod:
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.org
Skapa en ny /pam.d/vsftpd
Kod:
sudo nano /etc/pam.d/vsftpd
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

Starta om vsftpd
Kod:
sudo /etc/init.d/vsftpd restart
Vi ska nu skapa vår första virtuell användare. Det får bli northface med lösenordet hemlis.
Kod:
sudo mysql -u root -p
Kod:
USE vsftpd;
Kod:
INSERT INTO accounts (username, pass) VALUES('northface', PASSWORD('hemlis'));
Kod:
 quit;
Vi måste också skapa en folder för virtuelle användaren northface
Kod:
sudo mkdir /home/vsftpd/northface
och ändra ägarskapet
Kod:
sudo chown vsftpd:nogroup /home/vsftpd/northface
Klart! Portarna 21 och 63200-63204 i brandvägg/router för inkommande trafik till maskinen ska också vara öppna.

För att köra krypterad trafik se avsnitt FTP-server med lokala användare under rubrik Krypterad trafik.