Có tcpdump bỏ qua iptables?


48

Tôi đã nhầm thiết lập máy chủ DNS trình phân giải mở, đã sớm được sử dụng cho một loạt các cuộc tấn công DDoS có nguồn gốc từ / đến Nga. Vì lý do đó, tôi đã chặn hoàn toàn cổng 53 trên cả hai máy chủ DNS cho mọi người ngoại trừ IP đáng tin cậy. Nó không hoạt động, tôi không thể kết nối với họ nữa, nhưng điều có vẻ kỳ lạ với tôi là khi tôi chạy tcpdump trên eth1 (giao diện trên máy chủ với internet công cộng) tôi thấy rất nhiều gói tin từ kẻ tấn công đến cổng 53.

Có phải bình thường là tcpdump hiển thị các gói này ngay cả khi iptables làm rơi chúng? Hay tôi đã cấu hình iptables sai?

Mặt khác, tôi không thấy bất kỳ gói tin gửi đi nào từ máy chủ của mình, điều mà tôi đã làm trước đây, vì vậy tôi cho rằng tường lửa hoạt động tốt. Nó chỉ làm tôi ngạc nhiên rằng kernel không bỏ gói hoàn toàn? Hoặc được tcpdumpnối với kernel theo cách mà nó nhìn thấy các gói ngay cả trước khi chúng vào iptables?

Câu trả lời:


61

Đây là một câu hỏi hay.

Như một vấn đề của thực tế, tcpdump là phần mềm đầu tiên tìm thấy sau khi các dây (và các NIC, nếu bạn sẽ) trên đường TRÊN , và người cuối cùng trên đường OUT .

Wire -> NIC -> tcpdump -> netfilter/iptables

iptables -> tcpdump -> NIC -> Wire

Do đó, nó thấy tất cả các gói đến giao diện của bạn và tất cả các gói rời khỏi giao diện của bạn. Vì các gói đến cổng 53 không nhận được phản hồi, như đã thấy bởi tcpdump, bạn đã xác minh thành công rằng các quy tắc iptables của bạn đã được cấu hình đúng.

BIÊN TẬP

Có lẽ tôi nên thêm một vài chi tiết. tcpdump dựa trên libpcap , một thư viện tạo ra một ổ cắm gói . Khi một gói thông thường được nhận trong ngăn xếp mạng, hạt nhân trước tiên sẽ kiểm tra xem liệu có một ổ cắm gói nào quan tâm đến gói mới đến hay không, và nếu có một gói, nó sẽ chuyển tiếp gói đến ổ cắm gói đó. Nếu tùy chọn ETH_P_ALL được chọn, thì tất cả các giao thức sẽ chuyển qua ổ cắm gói.

libpcap thực hiện một ổ cắm gói như vậy với tùy chọn được kích hoạt, giữ một bản sao để sử dụng riêng và sao chép gói trở lại vào ngăn xếp mạng, nơi nó được xử lý bởi kernel theo cách thông thường, bao gồm cả việc chuyển nó trước cho bộ lọc mạng , kernel không gian đối tác của iptables . Điều tương tự, theo thứ tự ngược lại ( nghĩa là bộ lọc mạng đầu tiên sau đó kéo dài đoạn qua ổ cắm gói), trên đường ra.

Đây có phải là dễ bị hack? Nhưng đương nhiên là. Chắc chắn có các rootkit bằng chứng sử dụng libpcap để chặn các liên lạc đến rootkit trước khi tường lửa có thể đặt tay lên chúng. Nhưng ngay cả điều này mờ nhạt so với thực tế là một truy vấn đơn giản của Google khai quật mã làm việc che giấu lưu lượng truy cập ngay cả từ libpcap . Tuy nhiên, hầu hết các chuyên gia nghĩ rằng những lợi thế vượt trội hơn nhiều so với những nhược điểm, trong việc gỡ lỗi các bộ lọc gói mạng.


Có cách nào để hiển thị nó để tôi có thể xem gói nào được phép và gói nào bị bỏ không?
Petr

2
@Petr bạn có thể đăng nhập các gói mà iptables đã bỏ, thegeek ware.com/2012/08/iptables-log-packets
MariusMatutiae
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.