JG Story

[7] rp_filter의 기능과 설정 방법 본문

IT/Linux

[7] rp_filter의 기능과 설정 방법

JG_lee 2024. 3. 24. 15:56
rp_filter
(Reverse Path Filtering)

유입되는 패킷의 source ip 가 라우팅 테이블에 등록되어 있지 않을 경우 패킷을 버림

일반적인 라우팅의 개념으로 수신된 IP 패킷을
외부로 전달하는 기능을 하는 IP forwarding과 달리

rp_filter의 경우는 패킷이 들어오는 네트워크 인터페이스와 라우팅 테이블에
등록되어 있는 출발지 주소가 일치하지 않는 경우 자동으로 들어오는 패킷을 거절하는 역할을 함.


그렇다면? 리눅스에서 해당기능 관련하여 설정 변경방법을 알아보자!

1. rp_filter 확인 방법

명령어 입력 : sysctl -a | grep rp_filter
리눅스 rp_filter 조회 결과


2. rp_filter 옵션 별 기능



3. rp_filter 옵션 수정 및 적용 방법
(1) 수정하고자 하는 인터페이스를 지정하여 옵션값을 수정한다.
 ex) eth1 rp_filter 값 수정 
기존 eth1 rp_fitler설정값


명령어 입력 : sysctl -w net.ipv4.conf.eth1.rp_filter=0

옵션수정 결과  rp_filter 값

 



4. rp_filter에 의한 차단 결과 또는 관련 로그 확인 방법
(1) 우선 커널 파라미터 log_martians를 활성화 한다.
ex) eth1 인터페이스 로깅옵션 활성화
기존 eth1 log_martians 설정 값

 

명령어 입력 : sysctl -w net.ipv4.conf.eth1.log_martians=1
log_martians 옵션 활성화


(2) rp_filter 기능으로 인해 생성된 로그 확인
-> /var/log/messages 에서 "martians source" 에 관한 로그 검색

명령어 입력 : grep martian /var/log/messages
테스트 상황 : src 100.100.100.100 -> dst 100.100.101.100 ping 테스트

 

테스트 결과 해석 : 장비에 src 100.100.100.100 에 대한 정보가
라우팅 테이블에 없는 값이기 때문에
rp_fiter가 활성화 되어 있는 경우라면 패킷을 버리게됨.

Comments