Bagikan melalui


RPC melalui Keamanan HTTP

RPC melalui HTTP menyediakan tiga jenis keamanan selain keamanan RPC standar, yang menghasilkan RPC melalui lalu lintas HTTP yang dilindungi sekali oleh RPC, dan kemudian dua kali dilindungi oleh mekanisme penerowongan yang disediakan oleh RPC melalui HTTP. Untuk deskripsi mekanisme keamanan RPC standar, lihat Keamanan. Mekanisme penerowongan RPC melalui HTTP menambahkan ke keamanan RPC normal dengan cara berikut:

  • Menyediakan keamanan melalui IIS (hanya tersedia untuk RPC melalui HTTP v2).
  • Menyediakan enkripsi SSL dan verifikasi Proksi RPC (autentikasi bersama). Juga tersedia di RPC melalui HTTP v2 saja.
  • Menyediakan batasan pada tingkat Proksi RPC yang menentukan komputer mana di jaringan server yang diizinkan untuk menerima RPC melalui panggilan HTTP.

Masing-masing dari ketiga fitur keamanan ini dijelaskan secara lebih rinci di bagian berikut.

Autentikasi IIS

RPC melalui HTTP dapat memanfaatkan mekanisme autentikasi normal IIS. Direktori virtual untuk Proksi RPC dapat dikonfigurasi menggunakan simpul Rpc di bawah Situs Web Default di snap-in IIS MMC:

Screenshot showing the Rpc node under the Default Web Site in the IIS MMC snap-in.

IIS dapat dikonfigurasi untuk menonaktifkan akses anonim dan memerlukan autentikasi ke direktori virtual untuk Proksi RPC. Untuk melakukan ini, klik kanan simpul Rpc dan pilih Properti. Pilih tab Keamanan Direktori dan klik tombol Edit di grup Autentikasi dan Kontrol Akses, seperti yang diilustrasikan di sini:

Screenshot showing the RPC Properties dialog box.

Meskipun Anda dapat menggunakan RPC melalui HTTP bahkan ketika direktori virtual Proksi RPC memungkinkan akses anonim, Microsoft sangat menyarankan untuk menonaktifkan akses anonim ke direktori virtual tersebut karena alasan keamanan. Sebaliknya, untuk RPC melalui HTTP aktifkan Autentikasi Dasar, Autentikasi Terintegrasi Windows atau keduanya. Ingat bahwa hanya RPC melalui HTTP v2 yang dapat mengautentikasi terhadap Proksi RPC yang memerlukan autentikasi dasar atau terintegrasi Windows; RPC melalui HTTP v1 tidak akan dapat tersambung jika Larang Akses Anonim dinonaktifkan. Karena RPC melalui HTTP v2 adalah implementasi yang lebih aman dan kuat, menggunakan versi Windows yang mendukungnya akan meningkatkan keamanan instalasi Anda.

Catatan

Secara default, direktori virtual proksi RPC ditandai untuk mengizinkan akses anonim. Namun, proksi RPC untuk RPC melalui HTTP v2 menolak permintaan yang tidak diautentikasi secara default.

 

Enkripsi Lalu Lintas

RPC melalui HTTP dapat mengenkripsi lalu lintas antara RPC melalui klien HTTP dan proksi RPC dengan SSL. Lalu lintas antara proksi RPC dan RPC melalui server HTTP dienkripsi menggunakan mekanisme keamanan RPC normal dan tidak menggunakan SSL (bahkan jika SSL antara klien dan proksi RPC dipilih). Ini karena bagian lalu lintas tersebut bepergian dalam jaringan organisasi dan di belakang firewall.

Lalu lintas antara RPC melalui klien HTTP dan proksi RPC, yang umumnya melakukan perjalanan melalui Internet, dapat dienkripsi dengan SSL selain mekanisme enkripsi mana yang dipilih untuk RPC. Dalam hal ini, lalu lintas pada bagian Internet dari rute menjadi terenkripsi doubly. Mengenkripsi lalu lintas melalui proksi RPC memberikan pertahanan sekunder, jika proksi RPC atau komputer lain di jaringan perimeter disusupi. Karena proksi RPC tidak dapat mendekripsi lapisan enkripsi sekunder, proksi RPC tidak memiliki akses ke data yang dikirim. Lihat RPC melalui Rekomendasi Penyebaran HTTP untuk informasi selengkapnya. Enkripsi SSL hanya tersedia dengan RPC melalui HTTP v2.

Membatasi RPC melalui Panggilan HTTP ke Komputer Tertentu

Konfigurasi keamanan IIS didasarkan pada rentang komputer dan port yang diizinkan. Kemampuan untuk menggunakan RPC melalui HTTP dikendalikan oleh dua entri registri pada komputer yang menjalankan IIS dan proksi RPC. Entri pertama adalah bendera yang mengaktifkan fungsionalitas proksi RPC. Yang kedua adalah daftar komputer opsional tempat proksi dapat meneruskan panggilan RPC.

Secara default, klien yang menghubungi proksi RPC ke tunnel RPC melalui panggilan HTTP tidak dapat mengakses proses server RPC kecuali RPC melalui proses server HTTP yang berjalan pada komputer yang sama dengan proksi RPC. Jika bendera ENABLED tidak ditentukan atau diatur ke nilai nol, IIS akan menonaktifkan proksi RPC. Jika bendera ENABLED ditentukan dan diatur ke nilai bukan nol, klien dapat terhubung ke RPC melalui server HTTP di komputer yang menjalankan IIS. Untuk memungkinkan klien untuk terowongan ke RPC melalui proses server HTTP di komputer lain, Anda harus menambahkan entri registri ke daftar RPC komputer IIS melalui server HTTP.

Server RPC tidak dapat menerima RPC melalui panggilan HTTP kecuali mereka secara khusus meminta RPC untuk mendengarkan DI RPC melalui HTTP.

Contoh berikut menunjukkan cara mengonfigurasi registri untuk memungkinkan klien terhubung ke server di internet:

HKEY_LOCAL_MACHINE\
   Software\Microsoft\Rpc\RpcProxy\Enabled:REG_DWORD
   Software\Microsoft\Rpc\RpcProxy\ValidPorts:REG_SZ

Entri ValidPorts adalah entri REG_SZ yang berisi daftar komputer tempat proksi RPC IIS diizinkan untuk meneruskan panggilan RPC, dan port yang harus digunakan untuk menyambungkan ke server RPC. Entri REG_SZ mengambil formulir berikut: Rosco:593; Rosco:2000-8000; Data*:4000-8000.

Dalam contoh ini, IIS dapat meneruskan RPC melalui panggilan HTTP ke server "Rosco" pada port 593 dan 2000 hingga 8000. Ini juga dapat mengirim panggilan ke server mana pun yang namanya dimulai dengan "Data". Ini akan terhubung pada port 4000 hingga 8000. Selain itu, sebelum meneruskan lalu lintas ke port tertentu pada RPC melalui server HTTP, proksi RPC melakukan pertukaran paket khusus dengan layanan RPC yang mendengarkan pada port tersebut untuk memverifikasi bersedia menerima permintaan melalui HTTP.

Misalnya berdasarkan contoh pengaturan ini, jika layanan RPC mendengarkan port 4500 di server "Data1" tetapi belum memanggil salah satu fungsi RpcServerUseProtseq* dengan ncacn_http, itu akan menolak permintaan. Perilaku ini memberikan perlindungan tambahan untuk server yang mendengarkan port yang dibuka karena kesalahan konfigurasi; kecuali server secara khusus diminta untuk mendengarkan DI RPC melalui HTTP, server tidak akan menerima panggilan yang berasal dari luar firewall.

Entri dalam kunci ValidPorts harus sama persis dengan RPC melalui server HTTP yang diminta oleh klien (tidak peka huruf besar/kecil). Untuk menyederhanakan pemrosesan, proksi RPC tidak melakukan kanonisisasi nama yang disediakan oleh RPC melalui klien HTTP. Oleh karena itu, jika klien meminta rosco.microsoft.com, dan di ValidPorts hanya berisi Rosco, proksi RPC tidak akan cocok dengan nama, meskipun kedua nama dapat merujuk ke komputer yang sama. Selain itu, jika alamat IP Rosco adalah 66.77.88.99, dan klien meminta 66.77.88.99 tetapi kunci ValidPorts hanya berisi Rosco, proksi RPC akan menolak koneksi. Jika klien dapat meminta RPC melalui server HTTP berdasarkan nama, atau dengan alamat IP, masukkan keduanya di kunci ValidPorts .

Catatan

Meskipun RPC diaktifkan IPv6, proksi RPC tidak mendukung alamat IPv6 di kunci ValidPorts . Jika IPv6 digunakan untuk menyambungkan proksi RPC dan RPC melalui server HTTP, hanya nama DNS yang dapat digunakan.

 

IIS membaca entri registri Enabled dan ValidPorts saat startup. Selain itu, RPC melalui HTTP dibaca ulang konten kunci ValidPorts sekitar setiap 5 menit. Jika entri ValidPorts diubah, perubahan diimplementasikan dalam waktu 5 menit.

RPC melalui HTTP v1: Layanan WEB harus dihentikan dan dimulai ulang menggunakan Pengelola Layanan Internet untuk nilai baru dalam entri registri yang akan diterapkan.