iptables의 string patch 적용시 로그에 대한 고찰..
작성자 정보
- 홍보성 작성
- 작성일
컨텐츠 정보
- 3,499 조회
- 0 추천
- 목록
본문
iptables로 80 port에 대해 string module을 적용해서 필터링을 해 두면...
ipt_string: Packet too big to attempt sublinear string search (1068 bytes)
이문제가 발생을 하죠.
역시 여기선 아래 소스를 보면 알겠지만 strings 모듈때문에 퍼지는 문제를 막기 위해서 제한을 한 내용이 있습니다.
#define BM_MAX_HLEN 1024
which is the maximum size of some arrays and the max hlen:
if ( hlen < BM_MAX_HLEN ) {
search=search_sublinear;
}else{
if (net_ratelimit())
printk(KERN_INFO "ipt_string: Packet too big "
"to attempt sublinear string search "
"(%d bytes)
", hlen );
}
최근 패치가 적용된 커널과 iptables의 string module은 커널이 퍼지는 문제는 막도록 되어있습니다.
그러나... 아직까지 아쉬운거...
맨날 messages에 쌓이는 packet too big 메세지를 방치 할 것이냐.... 이거 짜증 이빠시..
그렇담.
iptables 로 80포트나 특정 포트의 문자열을 검사할때 옵션을 걸어서 처음 1024 미만만 또는 내가 정의 한 크기만큼만 검사하도록 지정할 수 없을까요.
웹에서 파일을 다운로드 받을 경우 엄청난 노가다를 하는 string module을 위해 처음 push 발생할때만 확인하고 해당 패킷이 close 할때까지 검사하지 않는 옵션이 있다면 좋을거 같은데...어떻게 해야 할까요~
가능할거 같은데..
홍석범 선생님은 아시는 바 있으세요?
제가 현재 테스트 중인건..
iptables -A FORWARD -p tcp --dport 80 -i eth1 --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1000 이넘으로 mss 1000으로 limit 걸어봤는데 이넘은 아닌거 같습니다. (독일어 메뉴얼 참조. ㅡㅡ;)
iptables의 limit 모듈로 push 상태를 추적, 제한을 걸어보는걸 연구 중입니다.
성공하면 공유 하겠습니다.
관련자료
-
이전
-
다음