리눅스 로그에서 dmesg 명령을 실행하면 다음과 같은 이벤트를 볼 수 있습니다:
icmp6_send: no reply to icmp error
icmp6_send: no reply to icmp error
icmp6_send: no reply to icmp error
icmp: xxx.xx.xxx.xx: Source Route Failed
icmp: xxx.xx.xxx.xx: Source Route Failed
icmp: xxx.xx.xxx.xx: Source Route Failed
1. icmp6_send: no reply to icmp error
운영 체제가 ICMPv6 오류 메시지(예: "목적지 연결 불가", "시간 초과" 등)를 보내려 했으나 응답을 받지 못했습니다.
대부분의 경우 이는 오류 메시지가 방화벽에 의해 차단되었기 때문입니다.
2. icmp: xxx.xx.xxx.xx: Source Route Failed
노드 xxx.xx.xxx.xx(라우터 또는 호스트)가 소스 라우팅(IP 패킷 헤더에 경로 지정)을 사용하려 했으나 실패했습니다.
소스 라우팅은 보안 취약점으로 간주되며 현대 운영 체제 및 네트워크 장치에서 대부분 비활성화되어 있습니다.
3. 원인
- 소스 라우팅을 사용한 공격 시도(예: 스푸핑).
- 네트워크 스캔(예: 소스 라우팅 옵션이 포함된 traceroute를 통한).
4. 결론 및 조치
4.1 icmp6_send: no reply to icmp error
IPv6 프로토콜 설정 및 작동을 확인하세요(예: ping6 사용). 또한 iptables 방화벽에서 IPv6 트래픽 제한을 설정할 수 있습니다:
iptables -A INPUT -p ipv6-icmp -m limit --limit 80/sec --limit-burst 80 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp6-adm-prohibited
제한이 이미 설정된 경우, 이 메시지는 제한 초과 시도를 나타내는 알림으로 나타납니다.
4.2 icmp: xxx.xx.xxx.xx: Source Route Failed
소스 라우팅이 비활성화되어 있는지 확인하려면 다음 명령을 실행하세요:
sysctl net.ipv4.conf.all.accept_source_route
응답은 0이어야 합니다(net.ipv4.conf.all.accept_source_route = 0).
IP xxx.xx.xxx.xx에서 의심스러운 활동이 있는지 로그를 확인하세요. 아마도 스캐너 또는 악의적인 행위자일 가능성이 높습니다.
일반적으로 별도의 조치가 필요 없으며, 이 메시지는 단순히 알림입니다.
5. 추가 조치 (선택 사항)
5.1 IP 차단
IP 주소를 차단할 수 있지만, 공격자는 보통 전체 서브넷을 사용하므로 효과가 없을 수 있습니다. 위의 조치로 충분하지만, 원한다면 다음과 같이 차단할 수 있습니다:
iptables -A INPUT -s xxx.xx.xxx.xx -j DROP
5.2 로깅 활성화
iptables -A INPUT -m policy --pol ipsec --dir in -j ACCEPT
iptables -A INPUT -m rt --rt-type 0 -j LOG --log-prefix "SRC ROUTE ATTEMPT: "
iptables -A INPUT -m rt --rt-type 0 -j DROP
시도 기록은 /var/log/syslog 파일에 나타납니다.
5.3 모든 인터페이스 설정 확인
sysctl -a | grep accept_source_route
IPv4의 출력은 다음과 같아야 합니다:
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
IPv6도 유사해야 합니다:
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.eth0.accept_source_route = 0
IPv6 및 IPv4의 마지막 두 명령은 eth0 을 사용합니다. 네트워크 인터페이스 이름은 다를 수 있습니다. ifconfig 또는 ip link show (ip l) 명령으로 확인할 수 있습니다.
5.4 sysctl 설정 변경
운영 체제 설정을 변경하고 재부팅 후에도 유지하려면 /etc/sysctl.conf 파일을 수정해야 합니다. 변경 사항을 적용하려면 다음 명령을 사용하세요:
sysctl -p
이 경우 파일의 줄은 다음과 같습니다:
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0