packet이 있을 때 web brower에 적용시키기

illuza의 이미지

안녕하세요?

들어오고 나가는 packet을 잡아 web brower에 적용시켜서 web page가 뜨거나 어느 web server로 정보를 보내려고 합니다. packet은 물론 ip와 tcp 정보, 그리고 html code가 들어있습니다.

어떻게 하면 좋을까요? mozilla 같은 web brower 소스 코드를 봐야될거 같은데 그건 너무 막막합니다.

mach의 이미지

illuza wrote:
안녕하세요?

들어오고 나가는 packet을 잡아 web brower에 적용시켜서 web page가 뜨거나 어느 web server로 정보를 보내려고 합니다. packet은 물론 ip와 tcp 정보, 그리고 html code가 들어있습니다.

어떻게 하면 좋을까요? mozilla 같은 web brower 소스 코드를 봐야될거 같은데 그건 너무 막막합니다.

문제 접근이 잘못되었네요. 다음처럼 하세요.
1) 패킷을 잡아서 데이터베이스에 넣는다.
2) 웹입장에서는 패킷데이터같은거 신경도 안쓴다.(!) 이게 좋습니다.
3) 단지, 데이터베이스내의 어떤(!!) 데이터를 읽어 화면에 뿌린다.
4) 끝
브라우저 소스를 보다니, 말도 안됩니다. 그냥 데이터베이스에 넣고,
또한사람은 데이터베이스에서 읽어서, 그냥 읽어서, 뿌리면 됩니다. 실시간?
웹을 사용한다면 벌써 진정한 실시간을 구현하기는 거의 불가능하고,
그냥 대충이라고 보면 맞습니다. 그러나, 전산 모르는 사람한테는
실시간이라고 xx할 수도 있겠지요.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

Scarface의 이미지

패킷을 저장하려면, 파일 or DB or 공유메모리.... 등등, 빠른게 좋겠죠..
문제는 패킷을 잡기만 하면 됩니다.
libpcap 라이브러리로 패킷을 감시하고, libnet 라이브러리로 잡으면.. 될듯 하구요..
아니면, 커널소스에서, ~~/net/ipv4~~ 네트워크소스를 수정하시면, 됩니다.

illuza의 이미지

무식하게 web brower 소스를 볼 뻔 했군요.

packet을 데이터베이스에 넣고 web brower가 데이터베이스의 자료를 가지고 오는 과정을 좀더 자세히 설명해주실 수 없겠습니까? 데이터베이스라면 MySQL같은걸 말하는건가요? 이 쪽을 참고하는데 도움이 될만한 사이트나 책이 있으면 말씀해주세요.

Scarface의 이미지

www.packetfactory.net 를 함 보세요..
libpcap, libnet 라이브러리 설명이 나와 있습니다.
리눅스의 tcpdump는 libpcap을 이용해서 만들어져 있구요..
보통, 침입탐지시스템(nids)는 libnet를 이용해서 만들어져 있습니다.

<패킷 구조>
이더넷헤더+IP헤더+TCP헤더+DATA+이더넷Trailer

예를 들면, 들어오는 패킷중에서 ip주소가 211.xxx.xxx.xxx 이고, 내용이 sex라는 패킷을 차단하고 싶다면, pcap으로 IP헤더에 있는 source ip가 211.xxx.xxx.xxx 인지 확인하고, DATA에 sex가 있는지 확인합니다.
차단하고자 하는 패킷이라면, libnet의 라이브러리를 이용해서, 패킷을 destroy 시키거나, 임의의 패킷을 만들어서 그 패킷의 주소로 경고 메시지를 담아서 다시 보내줍니다.
중요한것은 libpcap은 흐르는 패킷의 감시이고, destroy,패킷빌드는 libnet을 이용하면 됩니다.

하지만, 한계가 있을 겁니다., 많은 양의 패킷이 오고 가며, 그것을 DB에 집어넣는다면, 유실이 될 수도 있겠죠... 아마, 파일에 쓰시는것이 나을듯합니다...

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.