Mengkonfigurasi server FTP dengan isolasi pengguna di Windows Server 2016/2012 R2

Meskipun protokolnya FTP, salah satu protokol tertua, sudah berusia 40 tahun dan terus digunakan di mana-mana di mana protokol transfer file sederhana diperlukan. Server FTP dapat diinstal pada semua sistem operasi Microsoft. Modernisasi mendalam terakhir dari layanan ini dibuat di Windows 7 / Server 2008 R2 (pada kenyataannya, kode layanan ditulis ulang lagi). Keamanan layanan ditingkatkan secara signifikan, dan sejumlah fitur baru muncul. Secara khusus, di server FTP pada Windows menjadi mungkin untuk mengkonfigurasi isolasi FTP pengguna, memungkinkan untuk membedakan akses beberapa pengguna ke folder mereka sendiri di satu server FTP.

Karena fitur isolasi, pengguna hanya dapat bekerja dengan direktori ftp mereka, dan karena itu tidak dapat naik lebih tinggi di pohon direktori, karena Direktori tingkat atas pengguna tampak baginya sebagai root dari layanan FTP. Dengan demikian, Anda dapat mencegah pengguna mengakses file orang lain di server FTP. Isolasi pengguna FTP banyak digunakan oleh penyedia hosting ketika perlu untuk memberikan akses individu ke pengguna yang berbeda untuk satu penyimpanan file.

Seperti pada versi Windows sebelumnya, layanan FTP (jangan bingung dengan sFTP dan TFTP) di Windows Server 2016/2012 R2 didasarkan dan sangat terintegrasi ke dalam layanan IIS, dan memiliki antarmuka manajemen administratif tunggal. Pada artikel ini kami akan menunjukkan caranya instal server FTP berdasarkan pada IIS di jendela Server 2016/2012 R2 dan konfigurasikan isolasi pengguna di dalamnya (Instruksi juga berlaku untuk Windows 10 / 8.1).

Konten:

  • Menginstal Peran Server FTP di Windows Server 2016/2012 R2
  • Menyiapkan situs FTP di Windows Server, memberikan hak kepada pengguna
  • Konfigurasikan isolasi pengguna FTP di Windows Server 2016/2012 R2
  • Konfigurasikan Aturan Windows Firewall untuk Mengakses Server FTP
  • Memeriksa koneksi ke server FTP dari klien Windows

Menginstal Peran Server FTP di Windows Server 2016/2012 R2

Anda dapat menginstal layanan FTP melalui konsol Server Manager, dengan memperhatikan bagian tersebut Server Web (IIS) -> Server FTP opsi Layanan FTP dan Ekstensibilitas FTP.

Anda juga dapat menginstal peran server FTP dengan satu perintah PowerShell:
Instal-WindowsFeature Web-FTP-Server

Untuk menginstal konsol manajemen server FTP, jalankan perintah:

Instal-WindowsFeature -Nama "Web-Mgmt-Console"

Menyiapkan situs FTP di Windows Server, memberikan hak kepada pengguna

Luncurkan Server Manager dan buka konsol manajemen Internet Information Service Manager (IIS).

Buat situs FTP baru (Situs -> Tambah FTP Situs).

Nama Situs FTP: MyTestSite

Direktori root situs FTP: C: \ inetpub \ ftproot

Untuk melindungi data ftp yang dikirimkan melalui jaringan, dimungkinkan untuk mengkonfigurasi SSL (dalam hal ini, semua data yang dikirimkan melalui jaringan dan kata sandi / akun pengguna ftp akan dienkripsi), tetapi ini tidak diperlukan dalam demonstrasi kami. Semua pengaturan lainnya dibiarkan sebagai default..

Anda dapat mengelola situs FTP Anda menggunakan modul PowerShell WebAdministration. Misalnya, untuk membuat situs FTP baru, cukup jalankan perintah berikut:

Impor-Modul WebAdministration
# Tetapkan nama situs FTP
$ FTPSiteName = 'Situs FTP Baru'
# Direktori situs FTP
$ FTPRoot = 'E: \ www \ FTPRoot'
# Port situs FTP
$ FTPPort = 21
Baru-WebFtpSite -Name $ FTPSiteName -PhysicalPath $ FTPRoot -Port $ FTPPort

Pilih situs FTP baru dan di bagian FTP Otentikasi (Otentikasi) menonaktifkan otentikasi anonim Otentikasi Anonim. Otentikasi dasar harus diaktifkan.

Layanan FTP pada Windows Server 2016/2012 R2 dapat menggunakan dua jenis akun: domain atau lokal. Tergantung pada jenis akun, ada perbedaan dalam struktur direktori FTP dan pengaturan isolasi pengguna. Kami akan menggunakan akun Windows lokal.

Buat pengguna FTP, misalnya, ini akan menjadi akun ftp_user1, ftp_user2 dan ftp_user3. Juga buat grup ftp_users untuk menyertakan pengguna ini di. Anda dapat membuat pengguna di bagian ini Lokal Pengguna dan Grup konsol Komputer Manajemen.

Anda juga dapat membuat pengguna dan grup dari baris perintah (atau menggunakan PowerShell). Buat grup lokal:
net localgroup ftp_users / add

Buat pengguna lokal baru:

pengguna net ftp_user1 / tambahkan *

Tambahkan pengguna ke grup:

net localgroup ftp_users ftp_user1 / add

Buat dua pengguna lagi dengan cara yang sama..

Berikan ftp_users group rights (RW) yang dibuat ke direktori C: \ inetpub \ ftproot.

Di dalam direktori C: \ inetpub \ ftproot, buat direktori dengan nama Pengguna lokal (nama harus sepenuhnya konsisten, ini penting!!!) Kemudian di dalam C: \ inetpub \ ftproot \ LocalUser membuat tiga direktori dengan nama-nama pengguna yang Anda buat: ftp_user1, ftp_user2, ftp_user3.

Catatan. Bergantung pada jenis akun, Anda perlu membuat struktur direktori berikut (berdasarkan% FtpRoot% \ maksud kami adalah root dari situs FTP, dalam kasus kami adalah C: \ inetpub \ ftproot \):

Jenis akunSintaks Penamaan Direktori Rumah
Pengguna anonim% FtpRoot% \ LocalUser \ Publik
Akun Lokal Windows% FtpRoot% \ LocalUser \% UserName%
Akun domain Windows% FtpRoot% \% UserDomain% \% UserName%
Akun IIS Manajer atau ASP.NET Khusus% FtpRoot% \ LocalUser \% UserName%


Kembali ke konsol IIS dan di bagian situs Aturan Otorisasi FTP buat aturan baru (Tambahkan Bolehkan Aturan), yang menunjukkan bahwa grup ftp_users harus memiliki izin baca dan tulis (Izin baca dan tulis).

Konfigurasikan isolasi pengguna FTP di Windows Server 2016/2012 R2

Mari beralih ke pengaturan isolasi pengguna FTP. Isolasi pengguna FTP dikonfigurasikan pada tingkat situs FTP, bukan seluruh server, dan memungkinkan Anda untuk mengatur direktori home Anda sendiri untuk setiap pengguna. Di pengaturan situs FTP, buka item FTP Pengguna Isolasi.

Ada beberapa pengaturan di bagian ini. Dua yang pertama tidak menyiratkan isolasi pengguna:

  • FTP root direktori (ftp - sesi pengguna dimulai dengan direktori root dari situs ftp);
  • Pengguna nama direktori (pengguna mulai dengan direktori fisik / virtual dengan nama pengguna. Jika direktori tidak ada, sesi dimulai dari direktori root situs ftp).

3 opsi berikut mewakili berbagai mode operasi isolasi pengguna:

  • Pengguna nama direktori (nonaktifkan global direktori virtual) - mengasumsikan bahwa sesi ftp pengguna diisolasi oleh direktori fisik atau virtual yang namanya cocok dengan nama pengguna ftp. Pengguna hanya melihat direktori mereka sendiri (bagi mereka itu adalah direktori root) dan tidak dapat melampauinya (di direktori yang lebih tinggi dari pohon FTP). Direktori virtual global apa pun diabaikan;
  • Pengguna nama fisik direktori (aktifkan global maya direktori) - diasumsikan bahwa sesi FTP pengguna dibatasi (terisolasi) oleh direktori fisik dengan nama akun pengguna FTP. Seorang pengguna tidak dapat pergi di atas direktori dalam struktur FTP. Namun, pengguna memiliki akses ke semua direktori virtual global yang dibuat;
  • Direktori home FTP dikonfigurasi dalam Active Directory - Pengguna FTP diisolasi di dalam direktori home-nya yang ditentukan dalam pengaturan akun Active Directory-nya (properti FTPRoot dan FTPDir).
Itu penting. Jika direktori virtual global aktif, semua pengguna dapat mengakses semua direktori virtual yang dikonfigurasi di root situs FTP (dengan izin NTFS yang sesuai).

Pilih mode isolasi yang diinginkan (saya menggunakan opsi kedua untuk isolasi pengguna ftp).

Dengan perubahan apa pun pada pengaturan situs FTP di IIS, disarankan untuk memulai kembali Layanan FTP Microsoft (FTPSVC).

Konfigurasikan Aturan Windows Firewall untuk Mengakses Server FTP

Saat Anda menginstal peran server FTP dalam pengaturan Windows Firewall, semua aturan yang diperlukan untuk akses pengguna ke FTP secara otomatis diaktifkan.

Agar FTP Utara berfungsi dengan benar dalam mode FTP pasif, pengguna harus terhubung ke kisaran port RPC (1025-65535). Agar tidak membuka semua port ini pada firewall eksternal, Anda dapat membatasi rentang port TCP dinamis yang digunakan untuk transfer data.

  1. Untuk melakukan ini, buka item dalam pengaturan situs FTP di IIS FTP Firewall Dukungan dan di lapangan Data Saluran Pelabuhan Kisaran tentukan kisaran port yang ingin Anda gunakan untuk koneksi FTP. Misalnya - 50000-50100;
  2. Simpan perubahan dan mulai ulang IIS (iisreset);
  3. Buka panel kontrol dan buka Control Panel \ System and Security \ Windows Firewall \ Diizinkan aplikasi;
  4. Pastikan bahwa daftar aplikasi yang diizinkan mengakses melalui firewall memiliki izin untuk Server FTP.

Kemudian, di Windows Firewall dengan pengaturan Keamanan Lanjutan, verifikasi bahwa aturan berikut ini diaktifkan:

  • FTP Server (FTP Traffic-In) - TCP, port 21;
  • FTP Server Passive (FTP Passive Traffic-In) - alamat port lokal 1024-65535 (atau 50000-50100 seperti dalam contoh kami);
  • FTP Server Secure (FTP SSL Traffic-In) - (saat menggunakan FTP dengan SSL) port 990;
  • FTP Server (FTP Traffic-Out) - port 20;
  • FTP Server Secure (FTP SSL Traffic-Out) - (saat menggunakan FTP dengan SSL) port 989.

Oleh karena itu, port ini harus dibuka di gateway (firewall) untuk menghubungkan pengguna FTP eksternal.

Memeriksa koneksi ke server FTP dari klien Windows

Anda dapat memeriksa ketersediaan port di server FTP menggunakan cmdlet Test-NetConnection:

Test-NetConnection -ComputerName yourftpservername -Port 21

Atau menggunakan perintah ftp:

ftp yourftpservername

Coba sambungkan ke situs FTP Anda menggunakan klien FTP apa pun atau langsung dari Explorer (di bilah alamat, tentukan ftp: // yourservername /.

Masukkan nama pengguna dan kata sandi.

Sebagai hasilnya, Anda akan melihat isi direktori home dengan file pengguna (yang merupakan akar dari situs FTP untuk pengguna). Seperti yang Anda lihat, sesi pengguna terisolasi dan pengguna hanya melihat file-nya di server ftp.

Kiat. Jika Anda ingin menggunakan akses anonim (Semua Pengguna anonim), setiap pengguna dapat terhubung ke server FTP Anda menggunakan anonim atau tamu sebagai nama, dan alamat email sebagai kata sandi. Dengan koneksi anonim ke situs FTP, sesi akan dibatasi ke direktori LocalUser \ Public (tentu saja, direktori Public harus dibuat sebelumnya).

Untuk melihat informasi tentang akses pengguna ke server FTP, Anda dapat menggunakan log FTP, yang disimpan di direktori secara default c: \ inetpub \ logs \ logfiles dalam format file u_exYYMMDD.log.

Untuk melihat koneksi pengguna saat ini ke server Anda, Anda dapat menggunakan penghitung pengguna IIS melalui PowerShell atau fitur Sesi FTP Saat Ini di konsol IIS. Di konsol ini, Anda dapat melihat informasi tentang nama dan alamat IP pengguna FTP dan memutuskan sesi jika perlu.

Jadi, kami melihat cara mengkonfigurasi situs FTP dengan isolasi pengguna berdasarkan Windows Server 2016/2012 R2. Dalam mode isolasi, pengguna mengautentikasi ke FTP di bawah akun lokal atau domain mereka, setelah itu mereka mendapatkan akses ke direktori root mereka yang sesuai dengan nama pengguna.