Nastavitev strežnika FTP (File Transfer Protocol) na vašem računalniku Linux vam bo omogočila prenos datotek med vašim sistemom in oddaljenim računalnikom. Pokazali vam bomo, kako nastaviti strežnik FTP na CentOS.
Linux že ima na tone odprtokodnih FTP strežnikov, ki jih lahko uporabite za to delo. Sem spadajo priljubljeni strežniki, kot so PureFTPd, ProFTPD in vsftpd.
Dovoljeno je uporabljati katerega koli od strežnikov FTP, kot želite. Vendar bomo v tej vadnici namestili in uporabljali vsftpd, okrajšava od Very Secure FTP Daemon. Je hiter, stabilen in varen strežnik FTP, ki vam bo pomagal v trenutku prenesti datoteke v oddaljeni sistem in iz njega.
Nastavitev strežnika FTP na CentOS
Torej, brez nadaljnjih besed, začnimo:
Namestitev vsftpd
Najprej bomo morali namestiti vsftpd na CentOS. Če želite to narediti, v terminal vnesite naslednji ukaz:
$ sudo dnf install vsftpd
Ko je vsftpd nameščen v vašem sistemu CentOS, ga morate konfigurirati tako, da se samodejno zažene in zažene. To lahko storite z naslednjim ukazom:
$ sudo systemctl omogoči vsftpd --now
Ko je to končano, preverite stanje storitve vsftpd z vnosom tega ukaza:
$ sudo systemctl status vsftpd
Pojavi se izhodni zaslon, podoben spodnjemu. Videti bi morali, da vsftpd ni "aktiven" v vašem sistemu CentOS.
Nastavitev vsftpd
Ko je vsftpd aktiven in deluje v vašem sistemu, boste morali konfigurirati nastavitve strežnika. Če želite to narediti, boste morali dostopati do / etc / vsftpd / vsftpd.conf konfiguracijska datoteka. To lahko storite tako, da v nano urejevalniku odprete konfiguracijsko datoteko tako, da v terminal vnesete naslednji ukaz:
$ sudo nano / etc / vsftpd / vsftpd.conf
Ko je datoteka zdaj odprta v urejevalniku, morate narediti nekaj sprememb za nastavitev vsftpd v vašem sistemu. Pojdimo nad njimi enega po enega.
1. Konfigurirajte dostop FTP
Najprej nastavimo strežnik FTP, da omogoča dostop samo lokalnim uporabnikom. Če želite to narediti, boste morali v datoteki poiskati direktivi anonimen_enable in local_enable ter ju urediti, kot je prikazano na spodnji sliki:
Kot lahko vidite, boste morali nastaviti anonimno_enable = NE in local_enable = DA.
2. Omogoči nalaganje
Nato boste morali konfigurirati strežnik FTP, da omogoča nalaganje in brisanje datotek.
Če želite to narediti, boste morali poiskati direktivo write_enable in jo spremeniti v DA, kot je prikazano na sliki.
3. Omeji uporabniške prijave
Ko končate, boste želeli omejiti skupno število uporabniških prijav i.e., želite le, da se nekateri uporabniki prijavijo na vaš strežnik FTP. Če želite to narediti, najprej poiščite to vrstico v .conf datoteka - userlist_enable = DA. Po tem v datoteko dodajte ti dve vrstici:
userlist_file = / etc / vsftpd / user_list userlist_deny = NE
Za referenco uporabite spodnjo sliko:
To možnost lahko tudi omogočite. V tem primeru boste morali izrecno določiti, katerim uporabnikom želite omogočiti dostop do strežnika FTP. Če želite uporabnikom omogočiti, boste morali v datoteko / etc / vsftpd / user_list dodati samo njihova uporabniška imena s samo enim uporabniškim imenom v vsaki vrstici.
4. Nastavite pasivne povezave FTP
Morda boste želeli nastaviti tudi pasivne povezave FTP.
Kot taki vam bomo tukaj pokazali, kako lahko določite najmanjši in največji obseg vrat, tako da dodate nekaj vrstic v .conf.
Vse, kar morate storiti, je, da se pomaknete navzdol do konca datoteke in dodate ti dve vrstici, kot je prikazano na sliki.
pasv_min_port = 30000 pasv_max_port = 31000
Kasneje v tej vadnici bomo razpravljali tudi o tem, kako lahko odprete obseg v požarnem zidu.
5. Konfigurirajte varne prenose s pomočjo SSL / TLS
Na koncu se postavlja vprašanje zaščite povezave FTP z uporabo SSL / TLS. Če želite to narediti, boste morali imeti potrdilo SSL in nastaviti strežnik FTP, da ga bo uporabljal.
Vendar bomo zaradi te vadnice ustvarili samopodpisano potrdilo SSL z orodjem OpenSSL in ga nato uporabili za šifriranje našega FTP prenosa.
Najprej morate najprej uporabiti OpenSSL za ustvarjanje novega SSL potrdila. To lahko storite tako, da v terminal vnesete naslednji ukaz:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / vsftpd / vsftpd.pem -out / etc / vsftpd / vsftpd.pem
Zagon zgornjega ukaza bo ustvaril 2048-bitni zasebni ključ in samopodpisano potrdilo. Oba sta veljavna deset let in sta shranjena v isti datoteki.
Ko ustvarite novo potrdilo SSL, odprite konfiguracijsko datoteko vsftpd s prejšnjim ukazom:
sudo nano / etc / vsftpd / vsftpd.conf
Pomaknite se navzdol in dodajte naslednje vrstice, kot je prikazano na sliki:
rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = DA
In to je to. Uspešno ste konfigurirali potrdilo SSL za strežnik FTP.
6. Dokončaj
Ko končate, znova preverite konfiguracijsko datoteko vsftpd in preverite, ali so vse naslednje nastavitve takšne, kot so:
anonymous_enable = NO local_enable = DA write_enable = DA local_umask = 022 dirmessage_enable = DA xferlog_enable = DA connect_from_port_20 = DA xferlog_std_format = DA poslušati = NE listen_ipv6 = DA pam_service_name = vsftpd userlist_enable = DA userlist_file = / etc / vsftpd / USER_LIST userlist_deny = NO pasv_min_port = 30000 pasv_max_port = 31000 rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = DA
Ko se prepričate, da so bile v datoteko vnesene vse zgoraj navedene spremembe, jo boste morali shraniti. Ko ga shranite, znova zaženite storitev vsftpd z naslednjim ukazom:
$ sudo systemctl znova zaženite vsftpd
Konfigurirajte požarni zid
Če je požarni zid omogočen skupaj s strežnikom FTP, morate požarni zid konfigurirati tako, da omogoča prenose FTP.
Če želite to narediti, boste morali v terminal vnesti naslednje ukaze:
$ sudo firewall-cmd --permanent --add-port = 20-21 / tcp
Zgornji ukaz odpre vrata 21 - to so ukazna vrata FTP in vrata 20 - podatkovna vrata FTP.
Vnesti boste morali tudi ta ukaz:
$ sudo firewall-cmd --permanent --add-port = 30000-31000 / tcp
Ta ukaz odpre obseg pasivnih vrat 30000-31000, ki smo ga konfigurirali prej.
Ko končate, boste morali z naslednjim ukazom znova naložiti požarni zid:
$ firewall-cmd --reload
Kako ustvariti novega uporabnika FTP
Zdaj, ko ste v sistemu CentOS nastavili strežnik vsftpd, je čas, da ustvarite novega uporabnika FTP in ga preizkusite.
Najprej ustvarimo novega uporabnika FTP (newftpuser) z naslednjim ukazom:
$ sudo adduser newftpuser
Nato boste morali nastaviti geslo za novega uporabnika. Če želite to narediti, uporabite ta ukaz:
$ sudo passwd newftpuser
Prepričajte se, da je geslo močno in daljše od osem znakov.
Po ustvarjanju novega uporabnika ga boste morali dodati na seznam uporabnikov FTP. To lahko storite tako, da v terminal vnesete naslednji ukaz:
$ echo "newftpuser" | sudo tee -a / etc / vsftpd / user_list
Na koncu boste morali ustvariti drevo imenikov FTP, kjer boste nastavili vsa pravilna dovoljenja. Če želite to narediti, boste morali v terminal vnesti naslednjo serijo ukazov:
$ sudo mkdir -p / home / newftpuser / ftp / upload $ sudo chmod 550 / home / newftpuser / ftp $ sudo chmod 750 / home / newftpuser / ftp / upload $ sudo chown -R newftpuser: / home / newftpuser / ftp
Do zdaj je vaš FTP strežnik popolnoma funkcionalen in pripravljen za uporabo. Zdaj se lahko z njo povežete s katerim koli odjemalcem FTP, kot je FileZilla. Prepričajte se, da je odjemalca FTP mogoče konfigurirati tudi za uporabo šifriranja TLS, saj se uporablja za šifriranje prenosov FTP.
Onemogoči dostop do lupine
Pri ustvarjanju novega uporabnika FTP morate imeti v mislih, da bo imel uporabnik dostop do strežnika, če ni izrecno določeno.
Če želite uporabniku onemogočiti dostop do lupine, boste morali ustvariti novo lupino, ki bo natisnila sporočilo, ki bo uporabnika obvestilo, da - »Ta račun je omejen samo na dostop FTP."
Če želite to narediti, boste morali v terminal vnesti naslednji ukaz:
$ echo -e '#!/ bin / sh \ necho "Ta račun je omejen samo na dostop FTP."'| sudo tee -a / bin / ftponly $ sudo chmod a + x / bin / ftponly
Zgornji ukaz bo ustvaril / bin / ftponly lupino in jo izvedel.
Nato boste morali novo lupino dodati na seznam veljavnih lupin, ki se nahajajo znotraj / etc / lupine mapa. To naredimo z naslednjim ukazom:
$ echo "/ bin / ftponly" | sudo tee -a / etc / lupine
In kot zadnji korak morate le spremeniti uporabniško lupino v / bin / ftponly s tem ukazom:
$ sudo usermod newftpuser -s / bin / ftponly
Za vse prihodnje uporabnike FTP lahko z istim ukazom spremenite svojo lupino, tako da imajo lahko samo dostop FTP.