질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

iptables의 string patch 적용시 로그에 대한 고찰..

작성자 정보

  • 홍보성 작성
  • 작성일

컨텐츠 정보

본문

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 상태를 추적, 제한을 걸어보는걸 연구 중입니다.

성공하면 공유 하겠습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  450 명