Tại sao quy tắc iptables của tôi không hoạt động?


9

Tôi có hai giao diện trên VPS của mình: eth0eth0:0. Tôi muốn chặn các gói đến trên cổng 80 eth0:0bằng cách sử dụng iptables. Tôi đã thử điều này, nhưng nó không hoạt động:

iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP

Nếu tôi thay đổi eth0:0để eth0nó hoạt động chính xác. Vấn đề là gì?


4
Tôi đã giải quyết câu hỏi của mình theo cách này: giao diện của tôi là ảo nên iptables không thể truy cập được, vì vậy tôi đã chặn giao diện bằng IP của giao diện chứ không phải tên giao diện, lệnh của tôi là: iptables -A INPUT -p tcp --dport 80 -d {ETH0: 0's IP} -j
DỰ ÁN

Câu trả lời:


6

Câu chuyện ngắn: cách bạn đã làm điều đó là chính xác (theo nhận xét của bạn cho câu hỏi).

Câu chuyện dài: trên Linux, một 'thiết bị' mạng được gọi foo:barlà bí danh của 'foo' được sử dụng khi chúng ta cần gán nhiều cài đặt mạng cho giao diện 'foo', ví dụ: để nó phản hồi trên nhiều mạng con trên cùng một dây.

Đây là một cách không hiệu quả để làm điều này, và không phù hợp để khởi động. Đối với IPv6, tất cả các địa chỉ được gán cho giao diện eth0 được liệt kê cùng nhau dưới mục eth0. Có một phương pháp hiện đại hơn để làm điều này (thông qua ip addrlệnh).

Bạn có thể phát hiện ra các giao diện bí danh vì chúng có dấu hai chấm :trong tên của chúng, phần bên trái của dấu hai chấm là tên giao diện còn tồn tại và khổ thơ giao diện khi bạn thực hiện ifconfigrất ngắn. Giao diện HWaddrcũng phải giống hệt với giao diện 'cha mẹ'. Họ cũng sẽ không được liệt kê trong /proc/net/dev. Nếu bạn muốn nói ip addr, eth0:0sẽ hiển thị như là địa chỉ thứ hai của giao diện eth0. (tìm dòng thụt lề bắt đầu bằng inet)

Bí danh và cha mẹ của họ chia sẻ rất nhiều cài đặt và trường, vì họ chia sẻ lớp vật lý. Nhân không coi chúng là các giao diện hoàn toàn riêng biệt. Đối với một, lưu lượng truy cập xuất hiện trên giao diện cha mẹ , không phải bí danh. Bạn có thể nhận thấy bí danh thậm chí không có bộ đếm gói / byte!

Nếu bạn cần đánh hơi lưu lượng truy cập, tường lửa, v.v. trên giao diện bí danh, bạn phải sử dụng cha mẹ của nó để thay thế. Vì sự khác biệt duy nhất mà bí danh có từ cha mẹ của nó là cài đặt IPv4, nên cách duy nhất để khớp lưu lượng trên bí danh là sử dụng các cài đặt IP đó. Với iptables, bạn khớp địa chỉ IPv4 của bí danh giống như bạn đã làm trong phần nhận xét với câu trả lời của mình.

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.