분산 NIDS를 구현하려고 합니다.

cjy1126의 이미지


                                input
   +----------------------------- [클라이언트]
    |                                              | output
    |                                              | 
    |                                              |
    |                                         [인터넷]
    |                                              |
    |                                              |
    |                                         [라우터]
    |                                              |
    |                                              |
    |                         ----------------+----------------
    |                         |                                        |
    |              [로드밸런스서버]<------------->[   백업용서버   ]
    |                          |               하트비트             |
    |                          ----------------+----------------
    |                                              |
    |                                              |
    |                      -----------------------------------------
    |                      |                       |                         |
    |                 [NIDS]               [NIDS]                [NIDS]
    |                      |                       |                         |
    |                      -------------------+---------------------
    |                                              |
    |                                              |
    |                  ---------------------------------------------
    |  output     | input                  |                          |
    ------- [WEB SERVER]     [WEB SERVER]     [WEB SERVER] 

지금 하는 주제가 로드밸런싱을 이용한 NIDS입니다.

NIDS는 snort를 이용하기때문에 pcaplib를 사용합니다.

pcaplib의 문제점이 20-30%의 패킷손실을 보완하기위해서 위에 로드밸런스 서버를 구현하였고, 그 로드밸런스 서버가 다운되었을 경우를 대비해서 백업서버를 두었습니다.

지금하는것이 학원 프로젝트인데, 조원들이 하고싶어하는대로 짜다보니 이런식이 되었습니다.

1.실제 이런식으로 NIDS를 구현하는곳도 있나요?

위 그림과 같이 half connection이 되게 "ip 터널링"이나 "다이렉트 라우팅" 기법을 사용하려고 합니다.(그리는것도 힘드네요 ㅜ.ㅜ)

2. 제가 조사하는것은 "ip 터널링"인데, 이런식으로 구현을 하려면 WEB SERVER에 랜카드가 2개 필요한가요?

3. ip 터널링과 다이렉트 라우팅 중 어느것이 취업에 도움이 되나요?

4. WEB SERVER에서 로드밸런스서버를 통하지않고 클라이언트로 reply를 주려면 클라이언트와 새로운 소켓을 만들어서 다시 접속을 해야할까요? 아니면, 패킷 헤더를 변조해서 보내줘야할까요?

5. 현재 넷필터와 모듈프로그래밍, ip_vs 소스를 뜯어보고 있는중입니다. 이 프로젝트를 하기위해서 제가 공부하거나 참조해야할 것이 무엇인가요?(잘 모르는쪽을 시작하려다보니 감이 잘 안잡혀서요.)

좋은 연말되시고, 답변 부탁드립니다. :)

Tony의 이미지

예 있습니다.

lbdragon의 이미지

보통은 pcap말고 직접 제작한 라이브러리를 사용하죠, 상용화된 NIDS제품들은 pcap을 사용하지 않습니다.
게다가 저런 식으로 하시면 세션을 재조립 해서 탐지 하려면 각 NIDS가 다시 서로의 정보를 공유 해야 되겠네여.
그래서 한 IDS가 실제 침입을 탐지 하던지 그렇다면 NIDS를 여러개 둘 필요 가 없고 패킷 캡쳐 엔진만 여러곳 두는 것이 현명할 듯 ㅡㅡ;;
참고로 snort에는 HTTP 세션 재조립 기능이 있습니다.

#Open Source Open Mind.....#
궁극의 기술을 익힐 그날까지...

lbdragon...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.