리눅스의 ICMP 커널 프로토콜 모듈은 RFC792 에 정의되어 있는 Internet Control Message Protocol 의 구현이다. 이 모듈은 에러 상태의 진단을 목적으로 사용된다. 일반유저는 이 모듈을 직접 제어할 수 없다. 커널 ICMP 모듈은 ICMP 요청에 응답하는 일도 한다.
유저는 raw socket의 IPPROTO_ICMP프로토콜로 socket(:12)을 열어서 ICMP 패킷을 받을 수 있다. ICMP패킷은 ICMP_FILTER소켓 옵션을 이용해서 필터링 될 수 있다.
sysctl
sysctl 을 이용하면 ICMP의 설정을 변경할 수 있다. sysctl은 /proc/sys/net/ipv4/*에 있는 파일들을 읽고 쓰는 것으로 ICMP의 설정을 변경한다. 제어할 수 있는 값들은 다음과 같다.
icmp_echo_ignore_all
만약 리턴값이 0 이라면, 리눅스는 모든 ICMP_ECHO요청을 무시한다.
icmp_echo_ignore_broadcasts
만약 값이 0이 아니라면, 리눅스는 broadcast 주소로 보내어지는 모든 ICMP_ECHO 패킷을 무시한다.
ICMP PING 차단
ICMP
sysctl
테스트
Recent Posts
Archive Posts
Tags