A bejegyzésből megtudhatod, hogy hogyan telepítsd és konfiguráld a vsftpd alkalmazás szervert. A leírás lépésről-lépésre végigvezet a beállításokon.
VSFTPD Daemon telepítése
A leírás Ubuntu 18.04 illetve Debian rendszerre vonatkozik. Az egyes disztribúciók konfigurációs állományai eltérő helyen lehetnek. Első lépésben frissítsük fel a rendszerünket.
sudo apt update && sudo apt upgrade -y
Majd telepítsük fel a szükséges csomagokat
apt install vsftpd libpam-pwdfile
Majd rögzön állítsuk is le a szolgáltatást
sudo /etc/init.d/vsftpd stop
A konfigurációs állományokat mentsük el
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.ORIG && sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.ORIG
Konfigurálás
Felhasználó létrehozása
A célünk az, hogy a szerver támogassa a virtuális kliensek kezelését, és csakis az ily módon megadott felhasználók tudjanak csatlakozni a szolgáltatáshoz. A kiszolgálást ssl titkosítással biztosítjuk, a virtuális felhasználók hitelesítését a PAM végzi, az általunk megadott fájlból olvassa fel a felhasználók nevét és jelszavát. A jelszó titkosított módon kerül letárolásra. Első lépésben hozzuk létre azt a felhasználót, akinek a nevében futnak a virtuális felhasználók és maga a szolgáltatásunk is.
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Tanusítványok beszerzése
Szükségünk lesz tanúsítványra is. A Let’s encrypt ingyenes szolgáltatását fogjuk használni. Töltsük le a szükséges állományokat, a git tárolóból, ehhez szükségünk lesz a megfelelő szoftverre
sudo apt-get install git -y
Majd adjuk ki a következő parancsot:
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
A tanúsítvány beszerzéséhez a következőket hajtsuk végre. Az így legenerált tanusítványokkal együtt az apache webserver config állománya is létrejön. Jelen állás szerint webes szolgáltatást is akarok, tehát számomra ez a megfelelő parancs:
cd /opt/letsencrypt sudo ./letsencrypt-auto --apache -d pelda.domain
A tanúsítványok a
/etc/letsencrypt/live/
könyvtár alatt jönnek létre
ls /etc/letsencrypt/liva/pelda.domain
az alábbi tartalommal
cert.pem chain.pem fullchain.pem privkey.pem
Az legenerált tanúsítványok 90 napra kerülnek kibocsájtásra. Érdemes automatizáltan elküldeni a hosszabítási kérelmet, így folyamatosan teljesértékűen tudjuk üzemeltetni a szolgáltatásunkat. Ehhez tegyük be cron ütemezésbe a szükséges parancsot
sudo crontab -e
és
@monthly /opt/letsencrypt/letsencrypt-auto certonly --apache --renew-by-default -d pelda.domain
Konfigurációs állományok létrehozása
Hozzuk létre a saját conf fájlunkat
sudo nano /etc/vsftpd.conf
Majd másoljuk be az alábbi tartalmat
# Server standalone/inet indítása az interfészeken listen=YES listen_ipv6=NO # Anonim felhasználás tiltva anonymous_enable=NO # Helyi felhasználók engedélyezése local_enable=YES # Helyi felhasználók írhatják a tárhelyet write_enable=YES # felhasználói és csoport jogok beállítása a létrehozott állományokon local_umask=022 # A vsftpd daemon kinek a nevében fut... nopriv_user=vsftpd virtual_use_local_privs=YES # Virtuális felhasználók engedélyezése guest_enable=YES user_sub_token=$USER # Virtuális felhasználók gyökérkönyvtára local_root=/home/vsftpd/vsftpd/$USER # Csak a saját gyökerükbe legyenek zárva chroot_local_user=YES # Írhatnak a gyökérbe allow_writeable_chroot=YES # Rejtett állományok elérése hide_ids=YES # Virtuális felhasználók, mint.... guest_username=vsftpd # Helyi idő használata use_localtime=YES dirmessage_enable=YES # Logolás engedélyezése xferlog_enable=YES xferlog_file=/var/log/vsftpd.log # Passív mód beállításai pasv_enable=YES port_enable=YES pasv_min_port=40000 pasv_max_port=44000 pasv_address=<pelda.domain ip címe> pasv_addr_resolve=NO connect_from_port_20=YES utf8_filesystem=YES # TLS szekció rsa_cert_file=/etc/letsencrypt/live/<pelda.domain>/fullchain.pem rsa_private_key_file=/etc/letsencrypt/live/<pelda.domain>/privkey.pem ssl_enable=YES allow_anon_ssl=NO require_ssl_reuse=NO ssl_ciphers=HIGH # Protokoll szintek engedélyezése ssl_tlsv1=YES # vátoztasd, ha szeretnéd... ssl_sslv2=YES # változtasd, ha szeretnéd... ssl_sslv3=YES # A bejelentkezés SSL-en: force_local_logins_ssl=YES # Az adatok is SSL-en mennek force_local_data_ssl=YES
A virtuális felhasználókat tartalmazó állomány a /etc/vsftpd könyvtárba kerül, ezért azt létre kell hoznunk, majd konfiguráljuk a PAM -ot.
sudo mkdir /etc/vsftpd && sudo nano /etc/pam.d/vsftpd
Másoljuk be az alábbi tartalmat
auth required /lib/security/pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required /lib/security/pam_permit.so
Hozzuk létre az első virtuális felhasználóinkat
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1 sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
Felhasználói könyvtárak létrehozása, szolgáltatás indítás
A felhasználók könyvtárai a /home/vsftpd alkönyvtárban lesznek. A konfigurációnk szerint a saját könyvtárából senki nem lát ki, oda viszont korlátozás nélkül írhatnak és olvshatnak. A könyvtárneveknek meg kell egyezniük a virtuális felhasználóink neveivel. Hozzuk létre a könyvtárakat
sudo mkdir /home/vsftpd/user1 /home/vsftpd/user2
Állítsuk be a jogosultságokat
sudo chown vsftpd.nogroup -R /home/vsftpd && sudo chmod 775 -R /home/vsftpd
Végezetül nincs más dolgunk, mint elindítani a szolgáltatást
sudo /etc/init.d/vsftpd start
Elkészültünk, ha mindent jól csináltunk, a szerverünk üzemkész. a tárhelyre másolt állományok írási jogai 755 formátumúak lesznek, mivel az umas=022 -vel kerültek deklarálásra. A tulajdonos a vsftpd lesz, nogroup csoporttagsággal.
Kiegészíéts
Amennyiben azt szeretnénk, hogy minden felhasználóra vonatkozóan egyedileg szabjuk meg a gyökérkönyvtár helyét a szerveren, egészítsük ki a vsftpd.conf konfigurációt, a következő sorral:
user_config_dir=/etc/vsftpd
A könyvtárba hozzuk létre a felhasználó nevével megegyező fájlt és helyezzük el az egyedi konfigurációkat. Ez esetben a kívánt könyvtárra való hivatkozást.
local_root=/.....