Kernel 2.6.22 netfilter 후킹 문의.
글쓴이: pwy1575 / 작성시간: 목, 2019/06/20 - 9:02오후
안녕하세요
iptables 공부중에 이상동작을 발견 하여 문의 드립니다.
테스트 환경 : linux kernel 2.6.22
테스트 방법 :
1. br0 이란 인터페이스를 통해 패킷 시작
2. tun0 란 인터페이스에 마스커레이딩(POSTROUTING) 적용
3. tun0 인터페이스 up
예상결과
* br0 올라온 패킷의 src 아이피가 tun0 인터페이스의 IP 로 변경될 것으로 예상
실제결과
* br0 에서 올라온 패킷의 src 아이피가 그대로 tun0 를 통해 나감(tcpdump 로 확인)
공부하기로는 OUTPUT 을 거치기전에 POSTROUTING 이란 커널의 후킹 시점을 거쳐 마스커레이딩 동작이 일어나야 하나
동작하지 않음.
예상 원인 : tun0 의 인터페이스 up 밑 routing 테이블이 갖춰지지 않은 상태에서 br0 에서 패킷이 지속적으로 발생시 생기는 것으로 추정
위와 같은 문제를 경험 해보시거나 해결 방안을 알고 계신분은 답변 부탁드립겠습니다.
Forums:
이거 2019년에 올라온 글 맞나요? 지금 커널 2
이거 2019년에 올라온 글 맞나요? 지금 커널 2.6.22를 사용하는 이유가 있나요?
라우팅 테이블과 마스커레이딩을 어떻게 설정했는지 알
라우팅 테이블과 마스커레이딩을 어떻게 설정했는지 알 수 있을까요?
설마 어거지로 설치한 빨간모자9는 아니겠죠?
2.6대면 빨간모자9를 커널컴파일로 업데이트한거 아니면 페도라 초기버전일텐데.
설마 어거지로 설치한 빨간모자9는 아니겠죠? SATA를 IDE호환모드로 바꾼다거나 등등 성능 다운시키는 별별 호환설정 안하면 인스톨도 불가능할텐데. 장비 개발하는데 쓰겠다 해도 최근걸로 다시 설치하시는게 나을겁니다. 커널말고도 glibc, binutils 같은 것들도 변경사항도 많고 구버전은 개구멍도 많습니다.
Written By the Black Knight of Destruction
RHLE5 가 2.6.18 기반의 커널입니다. RH9
RHLE5 가 2.6.18 기반의 커널입니다. RH9 는 너무 멀리 보신 것 같습니다. :)
음...
정책을 정상적으로 타지 않는 것 같은데 forward나 netfilter가 활성화 되어 있는지 체크해보시는 것도 좋을 것 같네요.
소곤소곤
커널 netfilter 부분에서 conntract flush 동작 추가로 해결하였습니다.
해당 주소의 인터페이스가 준비되기 전에 다른 곳에서 패킷이 지속 발생할 경우
nf_nat_standalone.c에서 case IP_CT_NEW: 경우
if (!nf_nat_initialized(ct, maniptype)) 이 else 의 경우로 빠져 conntract에 쌓이게 되어
발생하는 문제 였습니다.
else 구문에 nf_conntrack_flush(); 호출로 conntrack에 쌓인 패킷을 날림으로써 해결 하였습니다.
댓글 달기