원하는 ip를 막는 프로그램을 만들려고 하는데...

driver0401의 이미지

원하는 ip를 넣으면 그 ip로 부터 오는 모든 패킷을 막을려고 합니다.
약간의 보안 프로그램 비슷한 거 만들려고 하거든요...

근데 전혀 감이 오질 않네요...방화벽에 특정 ip를 막는 기능이 있는 쥐..모르겠습니다.

어떠한 방법으로 구현해야 할지 조언을 부탁드립니다.

지리즈의 이미지

리눅스 Netfiltering에 관한 문서..
http://wiki.kldp.org/wiki.php/LinuxdocSgml/Packet_Filtering-TRANS

2.4이상의 커널의 Netfilter를 제어하는
iptables 프로그래램 배포처.
http://www.netfilter.org/

There is no spoon. Neo from the Matrix 1999.

ajoupark의 이미지

방화벽에는 당연히 있습니다..

그리고 tcpwrapper 같은 것을 참고하시면 될듯 해 보이네요..

/** 주워 들은 것도 내 것이다. 많이 주워 들어야지*/

운형의 이미지

두 세 가지 정도 방법이 떠오르는데요.

첫번째 방법은 iptables를 사용해서 막는 방법. 이건 프로그래밍은 아니구 있는 방화벽 기능을 사용해서 막는 거구요.

다음은 TCP에서만 가능한거구요. 어플리 케이션 레벨에서 막는 방법으로는 패킷을 캡쳐해서 해당 아이피라고 판단되면 생소켓을 통해 RST나 FIN을 세팅한 패킷을 날려주는 겁니다.

끝으로 netfilter를 이용해 후킹한 패킷을 버리는 모듈을 만들 수 있습니다.

쉬우면서도 확실한 방법은 첫번째...

직접 구현하기 원한다면 두번째 혹은 3번째를 이용하시면 되는데 2번째는 프로토콜 제약이 따른 다는 것과 100% 신뢰할 수 있는 결과를 얻기 힘들 더군요.(경험상) TCP 프로토콜을 이해하는 데는 많은 도움이 될겁니다.

세번째 방법은 결과 적으로 iptables를 이용하는 것과 같은 결과를 가져 올겁니다. 선행되는 지식이 좀 필요하지만 어렵지는 않네요. iptables의 ㅤㅍㅣㅌ터링 기능이 실제 3번째 방법을 사용하는 겁니다.

두번째 방법에 관한 문서는 여기 저기 널려 있구요. 첫번재와 세번째는 netfilter.org가시면 최신 문서를 구할 수 있습니다. 물론 대부분 번역되서 kldp에도 있습니다. 약간 전 버전이긴 하지만..

그럼..

Do you think that's the air you are breathing now?

driver0401의 이미지

조금은 길이 보일려고 하네요 감사합니다. ^^;;

댓글 달기

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