IPTables: Cho phép kết nối MySQL đi nhưng không kết nối đến


10

Tôi có một máy chủ không cho phép kết nối với mysql từ các nguồn bên ngoài - tất cả các cơ sở dữ liệu và kết nối của tôi diễn ra trên localhost. Chính sách mặc định của iptables là bỏ kết nối cho bất kỳ cổng nào tôi không chỉ định (hiện tại tôi không có cổng 3306 được chỉ định trong quy tắc iptable của mình, vì vậy tất cả các kết nối đến cổng này đều bị hủy).

Điều đó tốt, nhưng bây giờ tôi muốn kết nối với cơ sở dữ liệu mysql được đặt bên ngoài trên Amazon RDS.

Cổng 3306 có thể được mở ra với thế giới bên ngoài như sau:

iptables -t filter -A INPUT -p tcp --sport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT

Điều này cho phép tôi kết nối với cơ sở dữ liệu trên Amazon RDS, tuy nhiên nó cũng cho phép kết nối từ xa đến cơ sở dữ liệu trên máy chủ của tôi.

Tôi cần làm gì để cho phép máy chủ của mình kết nối với cơ sở dữ liệu trên Amazon, nhưng hạn chế kết nối bên ngoài với cơ sở dữ liệu trên máy chủ của tôi?

Cũng nên nhớ rằng địa chỉ IP của phiên bản Amazon RDS của tôi có thể thay đổi theo định kỳ mà tôi tin.


2
Nhận IP tĩnh từ Amazon và sau đó thiết lập danh sách trắng chỉ cho phép IP đó cho các kết nối đầu vào / đầu ra?
Peter

Câu trả lời:


17

Tận dụng động cơ của nhà nước:

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

hoặc trong các phiên bản sau của iptables

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Đây chính xác là những gì công cụ trạng thái tồn tại để làm: cho phép lưu lượng đáp ứng các tiêu chí khác nhau (ví dụ: giao thức, cổng nguồn) nhưng cũng là một phần của kết nối hiện có (vì nó xác định kết nối ). Kết quả cuối cùng là TCP SYNgói gửi đến một địa chỉ IP bên ngoài cụ thể trên cổng đích 3306, từ cổng ephmeral cục bộ, sẽ tạo một mục nhập bảng trạng thái cho sự kết hợp cụ thể của địa chỉ IP và số cổng đó và chỉ trả lại lưu lượng truy cập với cùng một kết hợp địa chỉ và cổng sẽ được cho phép thông qua và chỉ trong thời gian kết nối đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.