2012-06-12 35 views
9

Tôi đang cố gắng hạn chế cổng MySQL 3306 trên máy linux thực hiện bất kỳ kết nối nào với bất kỳ thứ gì khác ngoài localhost để ngăn chặn các cuộc tấn công bên ngoài. tôi có đoạn mã sau, tôi không chắc chắn nếu nó chính xác:Hạn chế cổng MySQL 3306 tới localhost với IPTABLES

iptables -A INPUT -p tcp -s localhost --dport 3306 -j ACCEPT 

iptables -A OUTPUT -p tcp -s localhost --dport 3306 -j ACCEPT 

iptables -A INPUT -p tcp --dport 3306 -j DROP 

iptables -A OUTPUT -p tcp --dport 3306 -j DROP 

câu hỏi khác của tôi là - là nó đúng để chỉ cung cấp cho truy cập localhost? đây là một máy chủ web chuyên dụng với hơn 30 tên miền trên đó.

+0

Tại sao không chỉ cần sử dụng các điều khoản khi thiết lập người dùng mysql chỉ cho phép người dùng đó đăng nhập từ localhost vì vậy nó sẽ giống như mysqluser @ localhost thay vì mysqluser @% – bretterer

+2

Tha thứ cho tôi hỏi nhưng tại sao bạn không chỉ sử dụng các ổ cắm Unix và '--skip-networking 'nếu bạn d không muốn mở cổng? –

+0

Quy tắc iptable của bạn hoạt động, tôi đã thử chúng. –

Trả lời

12

Tại sao không chỉ tắt kết nối mạng với MySQL?

Add để my.cnf:

skip-networking

Đó là nghĩa vụ cũng đưa ra một cải thiện hiệu suất đáng kể bằng cách buộc kết nối thông qua đường ống, mà bỏ qua qua rất nhiều thử nghiệm sử dụng cho phần mạng. Xin lưu ý rằng bạn sẽ cần phải sử dụng localhost, không phải 127.0.0.1, sau khi thay đổi.

8
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 

Quy tắc trên là chuyển đổi hai dòng thành một dòng duy nhất.

trả lời cho câu hỏi thứ hai của bạn:

Nếu bạn không muốn cung cấp truy cập mysql từ khác hơn là localhost, sau đó nó là hoàn hảo để cấu hình theo cách này. Đơn giản. :-)

1
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
iptables -A INPUT -p tcp --dport 3306 -j DROP 

Nếu bạn muốn loại bỏ tính năng lọc, sử dụng này:

iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
iptables -D INPUT -p tcp --dport 3306 -j DROP 

Note: Cả hai có thể yêu cầu root, vì vậy: sudo iptables (...)

Các vấn đề liên quan