Mengapa UFW tidak memblokir port yang telah terpapar menggunakan buruh pelabuhan?

8

Saya sudah menyiapkan beberapa aturan pada ufw saya, tetapi saya pikir itu tidak menghalangi apa pun. Ini statusnya saat ini:

~# ufw status verbose

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
27015:27115/udp            ALLOW IN    Anywhere
27015:27115/tcp            ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80 (v6)                    ALLOW IN    Anywhere (v6)
27015:27115/udp (v6)       ALLOW IN    Anywhere (v6)
27015:27115/tcp (v6)       ALLOW IN    Anywhere (v6)

Seperti yang Anda lihat, ini menolak koneksi masuk secara default dan hanya mengizinkan port tertentu. Tapi tetap saja, saya baru saja menyiapkan layanan baru pada port 8083 dan saya dapat mengaksesnya dari luar. Kenapa gitu?

Saya telah menggunakan wadah buruh pelabuhan untuk menjalankan layanan baru ini, kalau-kalau itu penting.

Ivan
sumber
Bisakah Anda memuat ulang UFW? Sudahkah Anda mencoba me-restart server? Apakah ada aturan di iptables? Silakan tambahkaniptables -L
Christopher Perrin
Terima kasih, melihat iptables -L output yang saya temukan bahwa buruh pelabuhan langsung mengedit iptables. Saya dapat mengesampingkan ini dengan mengubah konfigurasi buruh pelabuhan
Ivan

Jawaban:

6

Sepertinya

Docker mengutak-atik langsung dengan IPTables

. Dimungkinkan untuk mengganti perilaku ini dengan menambahkan --iptables = false ke daemon Docker.

Edit / etc / default / docker dan batalkan komentar pada baris DOCKER_OPTS:

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"

Penulis menyimpulkan sebagai berikut:

  • UFW tidak memberi tahu Anda kondisi benar iptables (tidak mengejutkan, tapi tetap saja).
  • Jangan pernah menggunakan opsi -p (atau -P) di Docker untuk sesuatu yang Anda tidak ingin publik.
  • Hanya mengikat antarmuka loopback atau IP internal.
Ivan
sumber