iptables chặn quyền truy cập vào cổng 8000 ngoại trừ từ địa chỉ IP


80

Tôi chưa bao giờ sử dụng iptables và tài liệu trực tuyến có vẻ hơi mờ.

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 mình ngoại trừ những yêu cầu đến từ một địa chỉ IP cụ thể. Làm cách nào để thực hiện điều đó bằng iptables?


2
//, Bạn có vui lòng chia sẻ một liên kết đến tài liệu không rõ ràng không?
Nathan Basanese

Câu trả lời:


149

Câu hỏi này sẽ nằm trên Lỗi máy chủ . Tuy nhiên, điều sau sẽ thực hiện thủ thuật, 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 thế nào để đảo ngược hạn chế ip / cổng này mà bạn đã thiết lập ở đây? (trong trường hợp tôi muốn hoàn tác điều này trong tương lai)
người thử nghiệm

4
người thử nghiệm, để xóa nội dung, hãy tham khảo điều này - stackoverflow.com/questions/10197405/…
Quest Monger,

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

1
@JiegoCordoviz Bạn có thể thêm mặt nạ vào địa chỉ nguồn: "-s 1.2.3.0/24" sẽ chấp nhận bất kỳ thứ gì bắt đầu bằng "1.2.3.". Tìm kiếm "netmask Calculator" nếu bạn có một phạm vi và muốn tính toán một netmask.
Jon Bright

17

Một thay thế khác là;

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

Tôi đã gặp vấn đề tương tự rằng 3 máy ảo bắc cầu chỉ cần truy cập eachother với sự kết hợp khác nhau, vì vậy tôi đã thử nghiệm lệnh này và nó hoạt động tốt.

Biên tập**

Theo nhận xét của Fernando và liên kết này dấu chấm than ( !) sẽ được đặt trước -stham số:

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

1
Các dấu chấm than ( !) bây giờ phải được đặt trước các -stham số: sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP.
Fernando Silveira,

Tôi không chắc dấu chấm than làm gì ở đây. Nó có tốt hơn bất kỳ câu trả lời được chấp nhận?
aexl

@aexl khá nhiều thứ tương tự ngoại trừ một dòng
HRgiger 30/09/19

5

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.

iptables-save > myfile

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

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

HÃY NHỚ RẰNG NẾU BẠN KHÔNG ĐỊNH CẤU HÌNH HỆ ĐIỀU HÀNH CỦA MÌNH ĐỂ LƯU CÁC QUY TẮC VÀO TẬP TIN VÀ SAU ĐÓ TẢI TẬP TIN TRONG BÂY GIỜ THÌ CÁC QUY TẮC CỦA BẠN SẼ BỊ MẤT.


3
Trên Debian không có iptables-load, nhưng iptables-restore iptables-restore < myfile// wiki.debian.org/iptables
Fedir RYKHTIK
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.