Persyaratan: Sistem album rumah pribadi dibangun menggunakan kontainer Docker, yang terbatas untuk akses dan tampilan di LAN rumah, karena gambar Docker dikembangkan oleh pengembang pihak ketiga, dan saya tidak tahu apakah itu akan menjadi situasi keamananMenghasilkan pelanggaran privasiUntuk mengatasi masalah ini dengan lebih baik, kami ingin menambahkan jaminan privasi dengan melarang kontainer Docker mengakses Internet (jaringan eksternal).
Artikel ini menggunakan sistem CentOS7, versi Docker: 20.10.20, dan menggunakan gambar nginx untuk memberikan pengujian.
Akses internet (ekstranet) diizinkan secara default
Buat kontainer nginx baru yang menyediakan layanan web yang dapat diakses oleh18080 Akses port, kontainer dapat mengakses Internet (jaringan eksternal) secara default, perintahnya adalah sebagai berikut:
Masukkan wadah dan minta sumber daya situs ini melalui perintah curl, yang dapat diperoleh secara normal, seperti yang ditunjukkan pada gambar di bawah ini:
Menonaktifkan kontainer Docker agar tidak mengakses internet (ekstranet)
Pertama, kita perlu membuat jaringan khusus melalui docker dan membuat kartu jaringan virtual, dengan perintah berikut:
Tetapkan aturan pada NIC virtual melalui iptables untuk melarang akses ke Internet dengan perintah berikut:
Terlepas dari apakah layanan iptables tersedia atau tidak, terlepas dari apakah firewall dihidupkan atau tidak,Aturan iptables yang ditambahkan oleh perintah segera berlaku!!!
Catatan: Paket ini sesuaiJika kontainer yang berbeda bergabung dengan jaringan yang sama, kontainer tidak akan dapat berkomunikasi satu sama lain!!!!
Lihat aturan DOCKER-USER seperti yang ditunjukkan di bawah ini:
Buat kontainer nginx baru lagi, kontainer menyediakan layanan web, dan18081 Pelabuhan menyediakan layanan ke dunia luar, dan kontainer dilarang mengakses Internet (jaringan publik), perintahnya adalah sebagai berikut:
Kami telah mencapai tujuan kami, tetapi,Setelah memulai ulang server, aturan yang kami buat di iptables akan hilangBagaimana kita bisa memuat aturan kustom kita secara otomatis setelah server dimulai ulang?
Perintah iptables-save digunakan untuk mengekspor tabel iptables di kernel Linux ke vendor output standar, biasanya menggunakan fungsi pengalihan I/O di shell untuk menyimpan outputnya ke file tertentu. Simpan aturan iptables yang ada
Tambahkan aturan restore iptables ke boot boot, file boot boot adalah /etc/rc.d/rc.local, edit file, dan tambahkan perintah berikut di bagian akhir:
Terakhir, tambahkan izin eksekusi dengan perintah berikut:
Setelah pengaturan selesai, aturan iptables akan tetap berlaku bahkan jika server dimulai ulang.
Semua kontainer di Docker dilarang mengakses Internet (ekstranet),Tidak diuji, perintahnya adalah sebagai berikut:
(Akhir)
|