Linux luôn gửi chuyển hướng ICMP


14

Tôi có một số Debian Squeeze (6.0.6 được cập nhật) được sử dụng làm bộ định tuyến.
Khi một liên kết không hoạt động, họ gửi chuyển hướng ICMP đến các máy chủ cục bộ. Đây là hành vi mặc định của Debian và một số người khác. Vì vậy, một khi liên kết trở lại với cuộc sống, các máy chủ không thể truy cập nó cho đến khi khởi động lại.

Tôi không muốn bất kỳ chuyển hướng ICMP nào được gửi từ các bộ định tuyến đó.

Tôi đã thử nghiệm echo 0 > /proc/sys/net/ipv4/conf/all/send_redirectssysctl -w net.ipv4.conf.all.send_redirects=0đưa net.ipv4.conf.all.send_redirects=0vào /etc/sysctl.d/local.conf
Mỗi giải pháp đó đưa giá trị phù hợp vào/proc/sys/net/ipv4/conf/all/send_redirects

Nhưng ...
hạt nhân cứ gửi chuyển hướng ICMP. Ngay cả sau khi khởi động lại:

$ tcpdump -n -i eth0
00:56:17.186995 IP 192.168.0.254 > 192.168.0.100: ICMP redirect 10.10.13.102 to host 192.168.0.1, length 68

Và bảng định tuyến của máy chủ cục bộ (máy tính Windows) bị ô nhiễm.

Tôi có thể ngăn chặn điều này với netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP

Bất cứ ý tưởng về lý do tại sao phương pháp thông thường không hoạt động?
Và làm thế nào để ngăn chặn chuyển hướng ICMP được gửi, mà không cần sử dụng netfilter?

Câu trả lời:


14

Lệnh đúng là: echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
Bởi vì bạn phải có 0 trên 'tất cả' và trên 'interface_name' để tắt nó.

Vào /etc/sysctl.confhoặc tương tự tệp, bạn phải đặt 'tất cả' + 'mặc định' (hoặc 'tất cả' + 'giao diện' nhưng giao diện có thể chưa tồn tại khi tệp này được xử lý).


5
Điểm của thư mục "tất cả" là gì? Tôi có ấn tượng mơ hồ, nó sẽ ghi đè lên các giá trị của tất cả các mục khác?
Elrond

@Elrond, allkhông ghi đè, nó hoạt động theo bitwise. Xem câu trả lời này về allvsdefault . send_redirectslà một ORtham số, do đó, cài đặt all.send_redirectsthành 0 sẽ bị cài đặt bởi giao diện.
Leif Arne Storset
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.