Pereiti prie pagrindinio turinio

FTP serverio konfigūravimas AlmaLinux ir Rocky Linux sistemose

Šioje pamokoje sužinosite, kaip sukonfigūruoti FTP serverį RedHat pagrindu veikiančiose distribucijose, tai yra AlmaLinux 8/9 ir Rocky Linux 9, naudojant VSFTPD (Very Secure FTP Daemon).

Atnaujinta vakar

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
Ar gavote atsakymą į savo klausimą?