Bảo vệ port tránh scan khi chạy Postgresql bằng Docker

Để không để lộ cổng 5432 của PostgreSQL ra bên ngoài công cộng, thay vì sử dụng tùy chọn -p 5432:5432 khi chạy Docker, ta chỉ cho phép các ứng dụng cần truy cập cơ sở dữ liệu kết nối thông qua mạng Docker nội bộ. Ví dụ, bạn có thể tạo một mạng Docker tùy chỉnh và kết nối PostgreSQL container cũng như các ứng dụng khác vào mạng đó.

Nguyên nhân là mình bị scan cổng 5432 khi đang chạy test dev.

Cách để kiểm tra xem có mở cổng không, mình cài nmap bằng brew, rồi chạy:

nmap 111.11.11.111 -p 5432

Nếu cổng không ở chế độ open là okey.

Để làm việc này thì khi chạy Docker, mình chọn chỉ export cho localhost (host của máy chủ) mà thôi. Xem ảnh sau:

Như vậy, chỉ có host đang chạy mới truy cập được cổng mặc định 5432.

Thay đổi cách truy cập vào postgrest từ pgadmin

Nếu thiết lập 127.0.0.1 thì pgadmin cần điều chỉnh cách kết nối, dùng tên của container thay vì postgre mặc định:

Xem hình:

Đây là tên của container khi xem bằng UI của portainer

Leave a Comment