Cara mengkonfigurasi Windows Firewall untuk mengizinkan semua port digunakan oleh IIS Express

9

Pemahaman saya tentang artikel ini , per halaman yang membawa saya ke sana *, adalah bahwa saya dapat mengkonfigurasi Windows Firewall untuk memungkinkan semua lalu lintas masuk pada port apa pun yang digunakan oleh executable yang ditentukan.

Saya menyadari bahwa jawaban defacto kemungkinan adalah "Jangan lakukan ini", jadi harap dipahami ; Saya menjalankan Visual Studio dan IIS Express di dalam mesin virtual, dan ingin dapat terhubung dari OS host untuk tujuan pengujian, dan dengan demikian tidak benar-benar peduli dengan implikasi keamanan membuka semua port yang digunakan oleh IIS Express.

Saya membuat aturan masuk dengan Program diatur ke %ProgramFiles% (x86)\IIS Express\iisexpress.exe, yang merupakan eksekusi berjalan sesuai dengan task manager. Semua spesifikasi aturan lainnya dibiarkan kosong (alamat lokal, alamat jarak jauh, dan port lokal, port jarak jauh apa pun, "semua" pengguna yang diizinkan, "komputer apa saja" yang diizinkan). Namun, koneksi hanya berfungsi jika saya memiliki aturan untuk port tertentu yang dilayani oleh IIS Express.

Karena itu akan membuat hidup saya lebih mudah (dan sebagian besar berdasarkan prinsip karena teknisi mengatakan itu harus bekerja), saya lebih suka tidak perlu menambahkan aturan firewall untuk setiap aplikasi yang saya buat.

* Tugas "Buat aturan yang memungkinkan program untuk mendengarkan dan menerima lalu lintas jaringan masuk pada port apa pun yang diperlukan."

pengguna1039855
sumber
1
Karena Anda menyebutkan keamanan tidak menjadi masalah apakah ada masalah dengan membuka semua port?
Abraxas
Matikan saja firewall di sistem operasi tamu .. :-) Saya selalu menonaktifkan semua yang saya bisa di OS tamu saya ..
Kody Brown

Jawaban:

1

Ada beberapa masalah yang Anda alami di sini. Pertama adalah bahwa iisexpress.exesebenarnya bukan proses yang bertanggung jawab untuk mendengarkan lalu lintas HTTP. Fungsi itu diimplementasikan http.sys sebagai bagian mode-kernel dari tumpukan jaringan Windows . (Ini dilakukan karena alasan kinerja. Untuk informasi lebih lanjut, lihat Pengantar Arsitektur IIS .) Oleh karena itu, membuat aturan untuk iisexpress.exetidak akan melakukan apa pun.

Kedua, http.syssecara default tidak memungkinkan program berjalan karena non-admin mendengarkan komputer lain. Menurut Melayani Lalu Lintas Eksternal dengan WebMatrix , Anda perlu menjalankan perintah ini dalam prompt perintah administratif untuk memungkinkan semua pengguna mendengarkan mesin lain melalui http.sys:

netsh http add urlacl url=http://MACHNAME:PORT/ user=everyone

Ganti MACHNAMEdengan nama host yang akan digunakan untuk menghubungi situs dan PORTdengan port traffic. Saya telah membaca bahwa menggunakan *bukannya nama host tertentu memungkinkannya mendengarkan semua nama / antarmuka, tetapi saya belum mengujinya secara pribadi, dan beberapa dokumentasi +malah menggunakannya . Either way, setelah Anda mengatur ACL, Anda kemudian dapat membuat aturan firewall masuk untuk port .

Bacaan lebih lanjut: Mengkonfigurasi HTTP dan HTTPS .

Komentar Side: Ada variabel lingkungan sebenarnya yang poin ke versi 32-bit dari Program Files: %PROGRAMFILES(X86)%. (Jalan itu bukan masalahmu.)

Ben N
sumber