risiko keselamatan FTP dan alternatif yang lebih selamat
Mata utama:
Adakah anda menggunakan FTP untuk menggunakan atau memindahkan fail? Memandangkan sifat protokol yang lama dan populariti yang meluas di kalangan banyak syarikat hosting, boleh dikatakan bahawa anda mungkin menggunakannya.
Tetapi, adakah anda sedar bahawa ini boleh menyebabkan masalah keselamatan untuk anda dan perniagaan anda? Mari kita menyelam keadaan ini secara mendalam.
Program sepertifileZilla , Cyberduck , menghantar atau Kapten FTP , dan lain -lain boleh selamat. Mereka mungkin melaksanakan langkah -langkah seperti menyembunyikan kata laluan untuk menghalang orang lain daripada melihat. Walau bagaimanapun, jika anda menggunakan FTP untuk memindahkan data, langkah -langkah ini sebenarnya akan lemah.
Saya berkata secara terang -terangan bahawa sebab saya menulis ini adalah perbincangan yang menarik di SitePoint pada bulan Ogos. Perbincangan ini memberi tumpuan terutamanya pada FileZilla, membuat satu siri pernyataan tentang bagaimana tidak selamatnya (atau tidak).
Aspek utama perdebatan memberi tumpuan kepada sama ada kata laluan harus disimpan dengan FileZilla. Salah satu komen yang menghubungkan ke artikel deskriptif yang menunjukkan bahawa walaupun kelayakan anda tersembunyi apabila menggunakan perisian, mereka mudah diambil jika anda menyimpannya.
Jika anda belum membaca artikel ini, FileZilla akan menyimpan butiran sambungan dalam fail XML yang mudah seperti berikut:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><filezilla3></filezilla3> <servers></servers> <server></server> <host>localhost</host> <port>21</port> <protocol>0</protocol> <type>0</type> <user>anonymous</user> <pass>user</pass> <logontype>1</logontype> <timezoneoffset>0</timezoneoffset> <pasvmode>MODE_DEFAULT</pasvmode> <maximummultipleconnections>0</maximummultipleconnections> <encodingtype>Auto</encodingtype> <bypassproxy>0</bypassproxy> <name>test site</name> <comments> </comments> <localdir> </localdir> <remotedir> </remotedir> <syncbrowsing>0</syncbrowsing>test site > > >
anda dapat melihat bahawa ia menyimpan banyak maklumat mengenai sambungan supaya anda tidak perlu mengingatnya. Tetapi sila ambil perhatian bahawa ia juga menyimpan kata laluan anda dalam plaintext?
Bagaimana dengan menyulitkan fail konfigurasi?
Louis Lazaris kemudian menghubungkan ke perbincangan mengenai Stack Exchange dalam usaha untuk menyangkal pandangan ini. Berikut adalah kandungan teras artikel ini:
anda lihat, menyulitkan kelayakan memerlukan kunci penyulitan, yang perlu disimpan di suatu tempat. Jika anda mempunyai perisian hasad yang berjalan pada akaun pengguna anda, mereka mempunyai sebanyak anda (atau mana -mana aplikasi lain yang berjalan pada tahap yang sama). Ini bermakna mereka juga akan dapat mengakses kunci penyulitan atau kunci yang menyulitkan kunci penyulitan, dan lain -lain.
Saya percaya pernyataan di atas tidak memahami sepenuhnya pertimbangan reka bentuk program seperti 1Password dan KeeSassx. Aplikasi yang direka khusus sebagai peti besi selamat untuk kata laluan dan maklumat selamat lain mungkin tidak semudah untuk retak seperti yang dicadangkan oleh jawapan ini.
Sebagai contoh, catatan blog baru -baru ini oleh 1Password menyenaraikan mekanisme utama terhadap penggodam.
Ini termasuk kunci simetri 128-bit dan 256-bit, penyulitan SHA512 dan PBKDF2-dan pelbagai ciri lain untuk melindungi fail data yang diakses sambil mengekalkan kemudahan penggunaan dan kesederhanaan mereka.
Oleh itu, adalah salah untuk membuat kesimpulan bahawa menggunakan peti besi yang disulitkan tidak benar -benar lebih selamat, terutamanya memandangkan semua teknologi yang tersedia ini.adalah FTP, bukan permohonan anda!
Jika anda tidak tahu, dengan menggunakan sniffer pengelompokan mudah seperti wireshark, anda boleh mengambil nama pengguna dan kata laluan yang digunakan, serta sebarang kelayakan lain yang disimpan dalam fail yang anda hantar, serta algoritma, struktur pangkalan data dan disimpan di dalamnya.
Memandangkan menyimpan maklumat ini dalam fail .ini dan konfigurasi untuk masa yang lama telah menjadi amalan biasa, saya mencadangkan bahawa sejumlah besar perisian yang mudah dimuatkan seperti WordPress, Joomla, dan lain-lain akan dibangunkan dalam ini cara.
FTP tidak direka untuk keselamatan; Reka bentuk ini sememangnya mengandungi satu siri andaian selanjutnya yang tidak mengambil kira keselamatan. Jurutera Perisian Kanan Zend Enrico Zimuel bahkan berkata lagi: Jangan gunakan FTP - Selamanya!
Ya, perubahan keselamatan keluar kemudian, tetapi mereka dilampirkan-tidak terbina dalam. Tiada perlindungan terhadap serangan kekerasan, dan sementara terowong SSH mungkin, sukar kerana anda perlu menyulitkan arahan dan saluran data. Oleh itu, pilihan anda terhad. Koefisien kesukaran tidak selalu remeh apabila anda cuba melaksanakannya.
Adakah anda pentadbir laman web? Adakah anda telah mengaktifkan Penjara Chroot untuk pengguna FTP anda? Jika anda tidak biasa dengan istilah chroot, ia adalah satu cara untuk menyekat pergerakan dan akses pengguna. Bermula dari direktori di mana mereka log masuk, mereka boleh pergi ke mana -mana subdirektori, tetapi tidak boleh bergerak di luar direktori itu.
Alternatif ke FTP
FTPS adalah FTP selamat, sama seperti HTTPS adalah HTTP selamat, ia berjalan di atas SSL (Secure Socket Layer) dan TLS (keselamatan lapisan pengangkutan). Kelayakan dan data pengguna tidak lagi dihantar dalam teks biasa;
Jika pelayan membenarkan, perisian klien juga mempunyai fleksibiliti untuk menyulitkan hanya sebahagian daripada komunikasi, bukan semua. Berdasarkan perbincangan semasa, ini kelihatannya tidak jelas.
Tetapi sebelum anda mundur, tanya diri anda, berapa banyak maklumat anda bernilai untuk perniagaan anda? Ini mungkin meyakinkan anda untuk melekatinya.
mari kita lihat SFTP sekarang. Protokol pemindahan fail SFTP atau SSH berfungsi secara berbeza daripada FTPS. SFTP direka sebagai lanjutan SSH 2.0, yang mewujudkan sambungan FTP biasa tetapi melaksanakannya pada sambungan yang telah disulitkan. Aliran data FTP itu sendiri tidak lebih selamat daripada FTP biasa, tetapi sambungannya berjalan lebih selamat.
ssh, scp dan shell login lain
Dari SSH sendiri, ia menyediakan akses pengguna penuh ke sistem jauh, yang membolehkan mereka melakukan lebih daripada FTP standard. Sambungan selamat dan data boleh disalin dengan mudah dari satu sistem ke sistem lain.
Jika anda seorang pakar baris arahan, anda juga boleh menggunakan alat seperti RSYNC pada SSH.
Dalam kes penggunaan mudah, ia boleh digunakan untuk menyalin semua fail dari direktori tempatan ke direktori pada komputer terpencil. Apabila larian pertama, semua fail disalin.
yang kedua dan kemudiannya berjalan, ia memeriksa perbezaan fail, memindahkan hanya fail yang berbeza, dan mempunyai pilihan untuk memadam fail dan direktori tempatan yang tidak lagi wujud pada komputer jauh.
Masalahnya ialah memberikan akses ini adalah isu keselamatan dengan sendirinya. Tetapi kesannya dapat dikurangkan. OpenSSH membolehkan banyak pilihan konfigurasi seperti tidak membenarkan akses root, menyekat pengguna yang boleh log masuk dari jauh, dan mengutuk pengguna ke direktori tertentu.
mungkin pengguna tidak perlu berada di komputer terpencil sama sekali, atau mereka tidak memerlukan banyak kebenaran ketika mereka berada di sana. Jika ya, dan kemungkinan besar, anda boleh memilih dari beberapa cengkerang yang direka untuk menyesuaikan diri dengan situasi ini.
Dua yang terbaik adalah scponly dan rssh. SCPONLY membolehkan pengguna menyalin fail ke komputer jauh sahaja.
Pengguna tidak boleh log masuk, bergerak, melihat atau menukar fail. Perkara yang baik ialah ia masih boleh menggunakan RSYNC (dan alat lain). RSSH melangkah lebih jauh, membolehkan akses kepada SCP, SFTP, RDIST, RSYNC dan CVS.
Untuk melaksanakannya, pentadbir sistem hanya menukar shell pengguna menggunakan alat pilihan mereka, dan kemudian edit /etc/rssh.conf untuk menyenaraikan protokol yang dibenarkan. Berikut adalah konfigurasi sampel:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><filezilla3></filezilla3> <servers></servers> <server></server> <host>localhost</host> <port>21</port> <protocol>0</protocol> <type>0</type> <user>anonymous</user> <pass>user</pass> <logontype>1</logontype> <timezoneoffset>0</timezoneoffset> <pasvmode>MODE_DEFAULT</pasvmode> <maximummultipleconnections>0</maximummultipleconnections> <encodingtype>Auto</encodingtype> <bypassproxy>0</bypassproxy> <name>test site</name> <comments> </comments> <localdir> </localdir> <remotedir> </remotedir> <syncbrowsing>0</syncbrowsing>test site > > >
Konfigurasi ini membolehkan pengguna menggunakan SCP dan SFTP sahaja.
Seterusnya, mari kita pertimbangkan kunci SSH. Proses ini memerlukan beberapa penjelasan, tetapi saya akan cuba menjadikannya pendek dan ringkas, menulis semula jawapan ini di Stack Exchange banyak:
Pertama, kunci awam pelayan digunakan untuk membina saluran SSH yang selamat dengan merundingkan kunci simetri yang akan digunakan untuk melindungi sesi yang tinggal, membolehkan kerahsiaan saluran, perlindungan integriti, dan pengesahan pelayan. Selepas fungsi saluran selamat, pengesahan pengguna akan dilakukan.
Seterusnya, pelayan mencipta nilai rawak, menyulitkannya dengan kunci awam pengguna dan menghantarnya kepada mereka. Jika pengguna adalah pengguna yang sepatutnya, mereka boleh menyahsulit cabaran dan menghantarnya kembali ke pelayan, yang kemudian mengesahkan identiti pengguna. Ini adalah model tindak balas cabaran klasik.
manfaat utama teknologi ini ialah kunci persendirian tidak pernah meninggalkan pelanggan dan tidak menghantar nama pengguna atau kata laluan. Jika seseorang memintas lalu lintas SSL dan dapat menyahsulitnya (menggunakan kunci peribadi pelayan yang rosak, atau jika anda menerima kunci awam yang salah apabila menyambung ke pelayan) - butiran peribadi anda tidak akan jatuh ke tangan penyerang.
Apabila digunakan dengan SCP atau SFTP, ini seterusnya mengurangkan jumlah kerja yang diperlukan untuk menggunakannya semasa meningkatkan keselamatan. SSH Keys mungkin memerlukan kata laluan untuk membuka kunci kunci peribadi, yang nampaknya menjadikan mereka lebih sukar digunakan.
bagaimana dengan penghantaran berterusan?
Disiplin pembangunan perisian, anda membina perisian sedemikian rupa sehingga perisian dapat diterbitkan ke persekitaran pengeluaran pada bila -bila masa.Terdapat banyak cara untuk melaksanakannya, tetapi perkhidmatan seperti Codeship dan Beanstalk sebahagian besarnya menghapuskan kesakitan.
Berikut adalah metafora kasar untuk bagaimana ia berfungsi. Anda menyediakan projek perisian anda, termasuk kod ujian dan skrip penempatan anda, dan menyimpan semua ini di bawah kawalan versi. Saya mengandaikan anda menggunakan perkhidmatan dalam talian, seperti GitHub atau Bitbucket.
Selepas melakukan atau menerbitkan dalam cawangan kod anda, perkhidmatan akan menjalankan ujian permohonan anda setiap kali ia ditolak ke salah satu perkhidmatan ini. Jika ujian berlalu, permohonan anda akan digunakan, sama ada ujian atau pengeluaran.
Selagi semuanya berjalan lancar, ia kemudiannya akan mengendalikan penggunaan secara automatik untuk anda. Anda kemudian akan menerima pemberitahuan bahawa penggunaan akan berjaya atau gagal.
Jika berjaya, anda boleh meneruskan ke ciri seterusnya atau pembetulan pepijat. Sekiranya ada masalah, anda boleh menyemaknya untuk mencari punca masalah. Semak video pendek di bawah yang menunjukkan proses sebenarnya menggunakan repositori ujian menggunakan codeship.
Apa yang perlu anda lakukan? Tolak komited ke repositori GitHub - itu sahaja! Anda tidak perlu ingat skrip berjalan, di mana skrip, pilihan dan suis untuk lulus mereka (terutamanya apabila lewat pada malam Jumaat, anda lebih suka berada di mana -mana daripada kerja).
Saya faham bahawa ini agak mudah dan tidak meliputi semua pilihan dan kehalusan, tetapi anda mendapat apa yang saya maksudkan.
Akhirnya, mari kita bergerak dari isu -isu keselamatan asas menggunakan FTP untuk keberkesanan penggunaan sehari -hari. Sebagai contoh, katakan anda sedang membangunkan laman web, seperti kedai e-dagang, dan proses penempatan anda menggunakan FTP, terutama FileZilla. Berikut adalah beberapa masalah yang wujud yang berkaitan dengan kesilapan manusia:
semua fail dimuat naik ke lokasi yang betul?
Okay, secara manual memindahkan fail, secara ringkas, hanya meminta masalah. Kesalahan manusia terlalu sukar untuk dielakkan.
minta maaf kepada FileZilla
Titik utama saya adalah dalam FTP sendiri, bukan hanya FileZilla.
Ringkasan
Tetapi apa idea anda? Adakah anda masih menggunakan FTP? Adakah anda menganggap penghijrahan? Kongsi pengalaman anda dan penyelesaian yang anda telah cuba dalam komen supaya kami semua boleh bekerja keras untuk mencari penyelesaian praktikal dan mudah digunakan.
Bagaimana untuk mengurangkan risiko menggunakan program FTP?
Apakah perbezaan antara FTP, SFTP dan FTPS?
Adakah anda masih menggunakan FTP hari ini?
bagaimana untuk mengetahui sama ada program FTP saya selamat?
Bolehkah saya menggunakan VPN dengan program FTP untuk meningkatkan keselamatan?
Beberapa alternatif keselamatan untuk FTP termasuk SFTP, FTPS, dan SCP (protokol replikasi selamat). Protokol ini semua menggunakan penyulitan untuk melindungi data semasa penghantaran. Di samping itu, perkhidmatan pemindahan fail berasaskan awan sering menawarkan langkah keselamatan yang kuat, termasuk penyulitan, pengesahan dua faktor, dan kawalan akses.
serangan kekerasan adalah sejenis serangan siber di mana penyerang cuba mengakses sistem dengan meneka kata laluan. Oleh kerana FTP menghantar kata laluan dalam plaintext, ia sangat terdedah kepada serangan kekerasan. Jika penyerang berjaya meneka kata laluan, mereka boleh mengakses sistem tanpa kebenaran dan boleh mencuri atau memanipulasi data.
serangan spoofing (penyerang berpura -pura menjadi pengguna atau peranti yang sah) boleh menjadi ancaman serius kepada program FTP. Untuk mengelakkan serangan ini, anda boleh menggunakan versi selamat FTP menggunakan disulitkan, seperti SFTP atau FTP. Di samping itu, menggunakan kata laluan yang kuat dan unik dan mengemas kini mereka secara teratur boleh membantu mencegah serangan spoofing.
Penangkapan paket, juga dikenali sebagai paket menghidu, adalah kaedah yang digunakan oleh penjenayah siber untuk memintas dan menganalisis apabila paket dihantar melalui rangkaian. Oleh kerana FTP tidak menyulitkan data, ia amat terdedah kepada penangkapan paket. Penyerang boleh menggunakan kaedah ini untuk mencuri maklumat sensitif, seperti nama pengguna dan kata laluan. Untuk mengelakkan penangkapan paket, anda harus menggunakan versi selamat FTP menggunakan disulitkan, seperti SFTP atau FTPS.
Atas ialah kandungan terperinci Adakah program FTP selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!