VSFTPD instalēšana
VSFTPD (Very Secure FTP Daemon) ir programmatūra, ko izmanto, lai konfigurētu FTP serverī. Šajā apmācībā VSFTPD tiks izmantots, lai konfigurētu FTP serveri mašīnā. Pirms VSFTPD instalēšanas atjauniniet servera krātuves, izsniedzot šādu komandu.
[e-pasts aizsargāts]: ~ $ sudo apt-get update -yPēc tam instalējiet VSFTPD, izmantojot šādu komandu.
[e-pasts aizsargāts]: ~ $ sudo apt-get install vsftpd -yVisbeidzot, pārbaudiet instalāciju, pārbaudot vsftpd versiju ar šādu komandu.
[e-pasts aizsargāts]: ~ $ vsftpd -v
Ja instalēšana ir veiksmīga, iepriekš minētā komanda izvada vsftpd versiju.
FTP aktīvajā režīmā
Aktīvajā režīmā FTP klients sāk sesiju, izveidojot TCP vadības savienojumu no jebkura nejauša klienta datora porta uz servera 21. portu. Pēc tam klients nejaušā X pieslēgvietā sāk klausīties datu savienojumu un, izmantojot TCP Control savienojumu, informē serveri, ka klients gaida datu savienojumu X pieslēgvietā. Pēc tam serveris izveido datu savienojumu no sava 20. porta līdz klienta datora portam X.
Problēma var rasties, ja klients atrodas aiz ugunsmūra un X ports ir bloķēts. Šajā gadījumā serveris nespēj izveidot datu savienojumu ar klientu. Lai izvairītos no šīs problēmas, FTP serveri lielākoties izmanto pasīvajā režīmā, par kuru mēs vēlāk runāsim šajā rakstā. Pēc noklusējuma VSFTPD izmanto pasīvo režīmu, tāpēc mums tas būs jāmaina uz aktīvo režīmu.
Vispirms atveriet VSFTPD konfigurācijas failu.
[aizsargāts pa e-pastu]: ~ $ sudo nano / etc / vsftpd.konfPievienojiet šādu rindiņu faila beigās.
pasv_enable = NĒ
Pārliecinieties arī, ka opcija 'connect_from_port_20' ir iestatīta uz 'YES."Šī opcija nodrošina datu savienojuma izveidi servera 20. portā.
Pēc tam izveidojiet direktoriju, kuru FTP serveris izmantos failu glabāšanai. Šajā apmācībā mēs konfigurēsim '/ home / ubuntu / ftp /' kā saknes ceļu FTP serverim.
[aizsargāts pa e-pastu]: ~ $ sudo mkdir / home / ubuntu / ftpTagad norādiet šo direktoriju konfigurācijas failā, mainot opciju “local_root”. Šis parametrs konfigurēs servera saknes ceļu.
local_root = / home / ubuntu / ftp
Opcijai "write_enable" jābūt iespējotai, lai lietotāji varētu rakstīt FTP serverī.
Katru reizi, kad maināt konfigurācijas failu, vienmēr restartējiet serveri.
[e-pasts aizsargāts]: ~ $ sudo systemctl restart vsftpdParoles iestatīšana lietotājam
FTP klients izveido savienojumu ar serveri, izmantojot lietotājvārdu un paroli. Iekārtā iestatiet sava lietotāja paroli, izmantojot šādu komandu.
[e-pasts aizsargāts]: ~ $ sudo passwd ubuntuIepriekš minētā komanda pieprasīs lietotāja ubuntu paroli.
Ugunsmūra konfigurēšana aktīvam režīmam
Ja FTP tiek izmantots aktīvajā režīmā, FTP serveris saziņai ar klientu izmantos divas ostas, 21. un 22. portu. 21. ports tiek izmantots komandu nodošanai klientam, un ports 20 tiek izmantots datu pārsūtīšanai uz jebkuru klienta nejaušu portu. Mēs izmantosim ufw, lai konfigurētu ugunsmūri serverī. Instalējiet ufw, izmantojot šādu komandu.
[aizsargāts ar e-pastu]: ~ $ sudo apt-get install ufwTagad servera pusē mēs atvērsim 20., 21. un 22. portu (SSH savienojumam).
[aizsargāts ar e-pastu]: ~ $ sudo ufw atļaut no jebkura uz jebkuru portu proto TCP
Iespējojiet un pārbaudiet ufw statusu, izmantojot šādas komandas.
[aizsargāts ar e-pastu]: ~ $ sudo ufw iespējot[e-pasts aizsargāts]: ~ $ sudo ufw statuss
PIEZĪME: ja konfigurējat FTP serveri mākonī, drošības grupā būs jāļauj arī 20., 21. un 22. ports.
BRĪDINĀJUMS: Pirms iespējojat ufw attālajā sistēmā, vienmēr iespējojiet 22. portu kopā ar nepieciešamajiem portiem. Pēc noklusējuma UFW bloķē trafiku no 22. porta, tāpēc jūs nevarēsit piekļūt savam attālajam serverim, izmantojot SSH, ja iespējosit ufw, neatļaujot datplūsmu no 22. porta.
FTP klienta instalēšana
Tagad mūsu serveris ir konfigurēts aktīvajā režīmā, un mēs tam varam piekļūt no klienta puses. Klienta lietojumprogrammai mēs izmantosim FileZilla, ftp klienta lietojumprogrammu. Instalējiet FileZilla, izmantojot šādu komandu.
[e-pasts aizsargāts]: ~ $ sudo apt-get install filezilla -yAtveriet FTP klienta lietojumprogrammu un ievadiet FTP servera publisko IP adresi un citus akreditācijas datus.
Noklikšķinot uz “Quickconnect”, jūs izveidosiet savienojumu ar FTP serveri un automātiski nokļūsit direktorijā, kas norādīts konfigurācijas faila “/ home / ubuntu / ftp” opcijā “local_root”.
Problēmas aktīvajā režīmā
Izmantojot FTP aktīvajā režīmā, rodas problēmas, kad klients atrodas aiz ugunsmūra. Pēc sākotnējo vadības komandu ievadīšanas, kad serveris nejauši izvēlētā portā izveido datu savienojumu ar klientu, portu var bloķēt klienta ugunsmūris, izraisot datu pārsūtīšanas kļūmi. FTP var izmantot pasīvā režīmā, lai atrisinātu šīs ugunsmūra problēmas.
FTP pasīvajā režīmā
Pasīvā režīmā klients izveido vadības savienojumu ar serveri servera 21. portā. Pēc tam klients nosūta īpašu komandu PASV, lai informētu serveri, ka datu savienojumu serveris izveidos klients. Atbildot uz to, klients saņem servera IP un nejaušu porta numuru (šis porta numurs tiks konfigurēts serverī). Klients izmanto šo IP un porta numuru, lai izveidotu datu savienojumu ar serveri. Pasīvajā režīmā gan datu, gan vadības savienojumus izveido klients, lai ugunsmūris netraucētu saziņu starp klientu un serveri.
Atveriet FTP konfigurācijas failu iecienītākajā redaktorā.
[aizsargāts pa e-pastu]: ~ $ sudo nano / etc / vsftpd.konfIestatiet failā opciju 'pasv_enable' uz 'YES', lai serveris varētu sazināties ar klientu pasīvajā režīmā. Iestatiet arī opciju "local_root", lai norādītu servera saknes direktoriju, un iestatiet opciju "write_enable" uz "YES", lai lietotāji varētu augšupielādēt failus serverī.
Kā iepriekš tika apspriests, datu savienojumu izveido klients, un serveris nosūta klientam savu publisko IP un nejaušu portu, lai izveidotu datu savienojumu. Šo izlases portu serverī var norādīt no konfigurācijas failā esošo portu diapazona.
Datu savienojums starp serveri un klientu tiks izveidots ostā starp 1024 un 1048. Pēc konfigurācijas faila maiņas restartējiet FTP serveri.
[e-pasts aizsargāts]: ~ $ sudo systemctl restart vsftpdUgunsmūra konfigurēšana pasīvā režīmā
Ja FTP izmantosim pasīvajā režīmā, datu savienojums tiks izveidots jebkurā portā no 1024 līdz 1048, tāpēc ir jāļauj visām šīm ostām FTP serverī.
[aizsargāts ar e-pastu]: ~ $ sudo ufw atļaut no jebkura uz jebkuru portu proto TCP
Pēc visu ugunsmūra portu atļaušanas aktivizējiet ufw, izpildot šādu komandu.
[aizsargāts ar e-pastu]: ~ $ sudo ufw iespējotPirms ugunsmūra iespējošanas vienmēr atļaujiet portiem serverī; pretējā gadījumā jūs nevarēsit piekļūt savam serverim, izmantojot SSH kā ufw, kas pēc noklusējuma bloķē 22. portu.
Savienojuma pārbaude
Tagad mēs esam iestatījuši FTP serveri pasīvā režīmā un varam pārbaudīt ftp savienojumu ar klienta lietojumprogrammu. Lai to izdarītu, atveriet FileZilla savā sistēmā.
Pēc resursdatora, lietotājvārda, paroles un porta ievadīšanas tagad varat izveidot savienojumu ar serveri. Tagad, kad esat izveidojis savienojumu ar FTP serveri, kas darbojas pasīvajā režīmā, varat augšupielādēt failus serverī.
SSL sertifikātu konfigurēšana ar FTP serveri
Pēc noklusējuma FTP serveris izveido savienojumu starp klientu un serveri, izmantojot nenodrošinātu kanālu. Šāda veida saziņu nevajadzētu izmantot, ja vēlaties koplietot slepenus datus starp klientu un serveri. Lai sazinātos pa drošu kanālu, ir jāizmanto SSL sertifikāti.
SSL sertifikātu ģenerēšana
Mēs izmantosim SSL sertifikātus, lai izveidotu drošu komunikāciju starp klientu un serveri. Mēs ģenerēsim šos sertifikātus, izmantojot openssl. Šī komanda ģenerēs SSL sertifikātus jūsu serverim.
[aizsargāts pa e-pastu]: ~ $ sudo openssl req -x509 -nodes -day 365 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pemPalaidot iepriekš minēto komandu, jums tiks uzdoti daži jautājumi. Pēc tam, kad atbildēsiet uz šiem jautājumiem, tiks ģenerēti sertifikāti. Sertifikātus var pārbaudīt terminālī.
[aizsargāts pa e-pastu]: ~ $ sudo ls / etc / ssl / private /
Sertifikātu izmantošana konfigurācijas failā
Tagad mūsu sertifikāti ir gatavi lietošanai. Mēs konfigurēsim 'vsftpd.conf failu, lai saziņai izmantotu SSL sertifikātus. Atveriet konfigurācijas failu ar šādu komandu.
[aizsargāts pa e-pastu]: ~ $ sudo nano / etc / vsftpd.konfFailu beigās pievienojiet šādas rindas. Šīs izmaiņas nodrošinās, ka FTP serveris izmanto jaunizveidotos SSL sertifikātus, lai droši sazinātos ar klientu.
ssl_enable = JĀforce_local_data_ssl = NĒ
force_local_logins_ssl = NĒ
ssl_tlsv1 = JĀ
ssl_sslv2 = NĒ
ssl_sslv3 = NĒ
rsa_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / etc / ssl / private / vsftpd.pem
Lai lietotu šīs izmaiņas, restartējiet FTP serveri.
[e-pasts aizsargāts]: ~ $ sudo systemctl restart vsftpdPēc servera restartēšanas mēģiniet izveidot savienojumu ar serveri, izmantojot klienta FileZilla lietojumprogrammu. Šoreiz klienta lietojumprogramma jums jautās, vai uzticēties šiem sertifikātiem.
Ja jums ir uzticamas sertifikātu iestādes sertifikāti, šis brīdinājums nedrīkst parādīties. Mēs savus sertifikātus izveidojām, izmantojot openssl, kas nav uzticama sertifikātu pārvalde, tāpēc mūsu gadījumā tā lūdza sertifikāta autentifikāciju. Tagad mēs varam sazināties starp klientu un serveri, izmantojot drošu kanālu.
Anonīma konfigurācija
Jūs varat arī iespējot anonīmu pieteikšanos savā FTP serverī. Ja šī konfigurācija ir iespējota, jebkurš lietotājs var pieteikties FTP serverī ar jebkuru lietotājvārdu un paroli. Šie parametri konfigurācijas failā padarīs FTP serveri pieejamu anonīmi.
Iepriekš minētā konfigurācija nosaka anonīmu lietotāju saknes ceļu uz "/ home / ubuntu / ftp / anon", un tā nepieprasīs ievadīt paroli, kad anonīms lietotājs piesakās.
PIEZĪME: Pārliecinieties, vai FTP serverī ir ceļš '/ home / ubuntu / ftp / anon'.
Tagad restartējiet FTP serveri.
[e-pasts aizsargāts]: ~ $ sudo systemctl restart vsftpdPēc servera restartēšanas mēs mēģināsim izveidot savienojumu ar serveri, izmantojot Google Chrome pārlūku. Pārejiet uz šo URL.
ftp: // 3.8.12.52Iepriekš minētais URL novirzīs jūs uz FTP servera saknes direktoriju, kā norādīts konfigurācijas failā. Ja anonīma pieteikšanās ir atspējota, mēģinot izveidot savienojumu ar FTP serveri, izmantojot pārlūkprogrammu, vispirms jums tiks lūgta autentifikācija un pēc tam jūs tiksit novirzīts uz servera saknes direktoriju.
Konfigurējiet vietējo piekļuvi
Mēs varam arī atļaut vai bloķēt vietējo piekļuvi FTP serverim, mainot konfigurācijas failu. Pašlaik mēs varam piekļūt savam FTP serverim lokāli, neizmantojot FTP klienta lietojumprogrammu, taču mēs varam bloķēt šo piekļuvi. Lai to izdarītu, mums ir jāpārveido parametrs 'local_enable'.
Vispirms restartējiet FTP serveri.
[e-pasts aizsargāts]: ~ $ sudo systemctl restart vsftpdPēc servera restartēšanas mēģiniet lokāli piekļūt FTP serverim, izmantojot komandrindas saskarni. Piesakieties savā attālajā serverī, izmantojot SSH.
[e-pasts aizsargāts]: ~ $ ssh ubuntu @ 3.8.12.52 -iTagad izdodiet šādu komandu, lai lokāli pieteiktos FTP serverī, izmantojot komandrindas saskarni.
[e-pasts aizsargāts]: ~ $ ftp localhostPalaidot iepriekšminēto komandu, tā izmetīs 500 kļūdu.
Secinājums
Failu pārsūtīšanas protokols daudzus gadus tiek izmantots failu un dokumentu pārsūtīšanai internetā. VSFTPD ir viena no pakotnēm, kas tiek izmantota kā FTP serveris jūsu datorā. VSFTPD satur dažādas konfigurācijas, kuras varat izmantot, lai pielāgotu savu FTP serveri. Šajā apmācībā tika parādīts, kā labākai drošībai konfigurēt FTP serveri ar TLS. Lai uzzinātu vairāk par FTP konfigurācijām, apmeklējiet šo saiti.
http: // vsftpd.zvēri.org / vsftpd_conf.html