FTP serveris yra serveris, kuris naudoja failų perdavimo protokolą ir yra skirtas failams perduoti internetu arba vietiniame kompiuterių tinkle. Tai vienas populiariausių sprendimų nuotoliniam failų perkėlimui.
1. Diegimo pamoka
1.1. Paketų atnaujinimas
Pirmiausia įsitikinkite, kad programinė įranga atnaujinta:
yum update
1.2. VSFTPD diegimas
Norėdami įdiegti vsftpd, vykdykite šią komandą:
yum -y install vsftpd
1.3. VSFTPD konfigūracijos failo koregavimas
Dabar reikia paredaguoti vsftpd konfigūracijos failą. Atidarykite jį šia komanda:
vi /etc/vsftpd/vsftpd.conf
Suraskite ir pakoreguokite arba pridėkite šiuos nustatymus, jei jų dar nėra:
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Kiekviena eilutė turi savo paskirtį:
anonymous_enable=NO reiškia, kad anoniminis prisijungimas prie FTP serverio neleidžiamas.
chroot_local_user=YES reiškia, kad FTP naudotojai bus apriboti savo namų kataloge.
allow_writeable_chroot=YES reiškia, kad FTP naudotojai galės keisti savo namų katalogo turinį.
userlist_enable=YES įjungia naudotojų sąrašą, kuriame galima valdyti naudotojų prieigą prie FTP serverio.
userlist_file=/etc/vsftpd.userlist nurodo naudotojų sąrašo failo vietą.
userlist_deny=NO reiškia, kad prie FTP serverio galės jungtis tik naudotojai iš šio sąrašo.
Išsaugokite failą ir užverkite jį, paspauskite Esc, tada įveskite :wq ir paspauskite Enter.
1.4. FTP leidimas IPtables užkardoje
Norėdami leisti FTP srautą iptables, vykdykite šias komandas:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
Taip bus leidžiami įeinantys ryšiai į TCP 21 prievadą ir išeinantys ryšiai iš 20 prievado.
Išsaugokite pakeitimus:
iptables-save
Jei naudojate firewalld, vykdykite šias komandas:
firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --reload
1.5. VSFTPD paleidimas
Norėdami paleisti vsftpd, vykdykite šią komandą:
systemctl start vsftpd
Jei norite, kad vsftpd būtų paleidžiama automatiškai po kiekvieno sistemos perkrovimo, vykdykite šią komandą:
systemctl enable vsftpd
1.6. FTP naudotojų kūrimas
Norėdami sukurti naują naudotoją, vykdykite šią komandą. Vietoje youruser įrašykite tikrąjį naudotojo vardą:
useradd -m -c "transip ftp demo" youruser
Norėdami nustatyti šio naudotojo slaptažodį, vykdykite šią komandą:
passwd username
1.7. Naudotojo įtraukimas į sąrašą
Dabar reikia įtraukti naudotoją į sąrašą. Atidarykite naudotojų sąrašo failą:
vi /etc/vsftpd.userlist
Įrašykite naudotojo vardą. Jei sukūrėte kelis naudotojus, kiekvieną įrašykite atskiroje eilutėje:
youruser
youruser2
youruser3
Išsaugokite pakeitimus ir užverkite failą.
FTP serveris jau sukonfigūruotas. Tačiau pagal numatytuosius nustatymus FTP ryšys nėra šifruojamas, todėl, jei norite jį apsaugoti, vykdykite toliau pateiktus veiksmus.
Jei norite naudoti kitą katalogą arba jau esamą katalogą, peržiūrėkite skyrių „Custom directories“.
2. Saugaus FTP ryšio konfigūravimas
Norėdami apsaugoti ryšį naudojant FTPS (File Transfer Protocol SSL), įdiegsime Let's Encrypt sertifikatą. Šiame pavyzdyje diegsime sertifikatą, kuris nėra susietas su žiniatinklio serveriu. Tačiau taip pat turime straipsnį, kuriame paaiškinama, kaip įdiegti Let's Encrypt sertifikatą Apache serveriui.
2.1. Let's Encrypt diegimas
Pirmiausia įdiekite EPEL saugyklą:
yum install epel-release
Norėdami įdiegti Let's Encrypt, vykdykite šią komandą:
yum -y install certbot
2.2. 80 ir 443 prievadų atvėrimas
Įsitikinkite, kad ugniasienėje yra atverti 80 ir 443 prievadai. Jei naudojate iptables, vykdykite šias komandas:
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables-save
Jei naudojate firewalld, vykdykite šias komandas:
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=443/tcp
Tada iš naujo įkelkite firewalld nustatymus:
firewall-cmd --reload
2.3. Sertifikato generavimas
Norėdami sukurti sertifikatą, vykdykite šią komandą. Vietoje your_server įrašykite tikrąjį serverio vardą:
certbot certonly --standalone -d your_server
Šio proceso metu turėsite nurodyti savo el. pašto adresą, sutikti su paslaugos teikimo sąlygomis, tai privaloma, ir pasirinkti, ar sutinkate bendrinti savo el. pašto adresą su Electronic Frontier Foundation, tai neprivaloma.
2.4. VSFTPD konfigūracijos koregavimas
Norėdami išvengti nesaugaus ryšio ir naudoti Let's Encrypt sertifikatą, turite pakeisti vsftpd konfigūracijos failą:
vi /etc/vsftpd/vsftpd.conf
Failo pabaigoje pridėkite šias eilutes. Paskutinėse dviejose eilutėse pakeiskite your_server į tikrąjį savo serverio vardą:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1_1=YES
ssl_tlsv1_2=YES
ssl_tlsv1=NO
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=50100
pasv_max_port=51100
rsa_cert_file=/etc/letsencrypt/live/your_server/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/your_server/privkey.pem
Išsaugokite pakeitimus ir užverkite failą.
2.5. Sertifikato atnaujinimas
Let's Encrypt sertifikatai galioja 90 dienų. Jei norite, kad sertifikatas būtų atnaujinamas automatiškai, turite sukurti cron užduotį:
crontab -e
Į crontab failą pridėkite šias eilutes:
SHELL=/bin/bash
HOME=/
@monthly certbot -q renew >> /var/log/le.log
Išsaugokite pakeitimus ir užverkite failą, paspauskite Esc, tada įveskite :wq ir paspauskite Enter.
Ši cron užduotis vykdys komandą kiekvieną mėnesį ir, jei reikės, atnaujins sertifikatą.
Baigę visus šiuos veiksmus, paleiskite vsftpd iš naujo:
systemctl restart vsftpd
Atkreipkite dėmesį: jei naudojate firewalld, nepamirškite leisti 50100–51100 prievadų intervalo:
firewall-cmd --zone=public --permanent --add-port=50100-51100/tcp
firewall-cmd --reload
3. Pasirinktiniai katalogai
3.1. Pasirinktinio katalogo sukūrimas
Norėdami sukurti pasirinktinį katalogą, vykdykite šią komandą. Vietoje youruser įrašykite tikrąjį naudotojo vardą:
mkdir /home/youruser/ftp
Pakeiskite teises:
chown nobody:nobody /home/youruser/ftp
chmod a-w /home/youruser/ftp
3.2. Namų katalogo nurodymas
Norėdami nurodyti namų katalogą, atidarykite VSFTPD konfigūracijos failą:
vi /etc/vsftpd/vsftpd.conf
Failo pabaigoje pridėkite šias eilutes:
chown nobody:nobody /home/youruser/ftp
chmod a-w /home/youruser/ftp
local_root nurodo, kuriame kataloge bus patalpinti FTP naudotojai. Šiame pavyzdyje naudojamas ftp katalogas, tačiau galite nurodyti ir kitą.
Išsaugokite pakeitimus ir užverkite failą.
Po to nepamirškite iš naujo paleisti VSFTPD:
systemctl restart vsftpd
