Untuk menyederhanakan manajemen port layanan antara wadah Docker, saya ingin mengizinkan layanan HTTP yang ada untuk mendengarkan pada port 80 TCP default HTTP dari alamat IP wadah masing-masing.

Mendengarkan nomor port di bawah 1025 secara klasik dibatasi untuk pengguna dengan hak istimewa khusus, seperti root. Alasan untuk ini, sejauh yang saya mengerti, adalah untuk melarang pengguna yang tidak memiliki hak istimewa pada sistem multi-pengguna untuk bertindak sebagai layanan HTTP otoritatif untuk seluruh mesin.

Dalam versi Linux yang lebih baru juga memungkinkan untuk mengizinkan ini ke executable tertentu dengan menerapkan kemampuan kernel Linux CAP_NET_BIND_SERVICE. Agar ini berfungsi di wadah Docker, saya juga tampaknya perlu menerapkan kemampuan ini ke wadah Docker itu sendiri, baik melalui flag --add-cap pada klien Docker atau bagian Docker-Compose cap_add.

Secara teoritis, alasan pembatasan nomor port ini sudah usang dalam kasus ini, karena ruang nama jaringan kernel Linux memungkinkan proses dalam wadah hanya untuk mengikat alamat IP mereka sendiri yang eksklusif untuk mereka.

Pertanyaan saya sekarang adalah, apakah ada peringatan serius tentang melakukan ini. Apakah ini atau dapatkah ini menjadi masalah keamanan yang tidak saya pikirkan? Atau ada masalah lain tentang melakukan ini?

2
aef 16 Maret 2017, 12:50

2 jawaban

Jawaban Terbaik

Saya tidak melihat masalah dalam melakukan ini.

Meskipun dimungkinkan untuk menggunakan "cap add" dan menyebabkan lubang keamanan terbuka, mengizinkan port 80 untuk digunakan tidak menjadi masalah. Ini hanya port TCP/IP tempat perangkat lunak Anda mendengarkan, dan dari perspektif keamanan tidak ada bedanya dengan nomor port acak lainnya.

2
Derick Bailey 16 Maret 2017, 14:49

Untuk saat ini saya akan merekomendasikan untuk hanya mengikat ke port lain. Satu selalu meneruskannya ke port lain saat wadah dibuat. Bermain-main dengan keamanan dan meninggalkan hak istimewa yang tidak perlu dalam wadah tampaknya terlalu banyak kesulitan untuk hanya mengikat secara internal ke port tertentu.

-1
MauganRa 2 September 2017, 07:53