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?
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?
Câu trả lời:
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
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-s
tham số:
sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
!
) bây giờ phải được đặt trước các -s
tham số: sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
.
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.
iptables-restore < myfile
// wiki.debian.org/iptables