2011-09-14 29 views
61

Tôi chưa bao giờ sử dụng iptables và tài liệu trực tuyến có vẻ hơi đục.iptables chặn truy cập vào cổng 8000 ngoại trừ địa chỉ IP

Tôi muốn chặn tất cả các yêu cầu tới cổng 8000 trên máy chủ của tôi ngoại trừ những yêu cầu đến từ một địa chỉ IP cụ thể. Làm thế nào để tôi sử dụng iptables?

+1

//, Bạn có thể chia sẻ liên kết tới tài liệu không rõ ràng không? –

Trả lời

111

Câu hỏi này phải ở trên Server Fault. Tuy nhiên, sau đây nên làm các trick, giả sử bạn đang nói về TCP và IP bạn muốn cho phép là 1.2.3.4:

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT 
iptables -A INPUT -p tcp --dport 8000 -j DROP 
+3

Bạn sẽ làm cách nào để đảo ngược hạn chế ip/cổng mà bạn đã thiết lập ở đây? (trong trường hợp tôi muốn hoàn tác việc này trong tương lai) – tester

+4

thử nghiệm, để xóa nội dung, hãy tham khảo phần này - http://stackoverflow.com/questions/10197405/iptables-remove-specific-rules –

+2

Tôi biết điều này tương đối cũ, và điều này hoàn toàn đóng đinh những gì tôi cần. Và kể từ khi câu trả lời đã được chấp nhận anyways, làm thế nào để bạn làm điều tương tự với một phạm vi IP cụ thể? Cảm ơn! :) – jagc

14

Một lựa chọn khác là;

sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP 

Tôi có vấn đề tương tự rằng 3 cầu nối virtualmachine chỉ cần truy cập vào nhau với kết hợp khác nhau, vì vậy tôi đã kiểm tra lệnh này và hoạt động tốt.

Sửa **

Theo Fernando bình luận và link chấm than này đánh dấu (!) sẽ được đặt trước hơn -s tham số:

sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP 
+1

Dấu chấm than ('!') Phải được đặt trước tham số '-s':' sudo iptables -A INPUT -p tcp --dport 8000 -s! 1.2.3.4 -j DROP'. –

+1

@FernandoSilveira cảm ơn bạn, tôi đã cập nhật – HRgiger

4

Bạn luôn có thể sử dụng iptables để xóa các quy tắc. Nếu bạn có nhiều quy tắc, chỉ cần xuất chúng bằng lệnh sau đây.

iptables-save > myfile 

vi để chỉnh sửa từ dòng khen. Chỉ cần sử dụng "dd" để xóa các dòng bạn không muốn nữa.

iptables-load < myfile and you're good to go. 

Hãy nhớ rằng nếu bạn không cấu hình hệ điều hành của bạn để lưu các quy tắc vào một tập tin và sau đó nạp FILE TRONG BOOT rằng những quy tắc bạn sẽ bị mất.

+3

Trên Debian không có tải iptables, nhưng iptables-restore 'iptables-restore

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