커널 2.6에서 방화벽 사용상 애로점입니다.

환골탈태의 이미지

커널환경은 2.6.16.1~2.6.16.19이구요

첫번째로 patch-o-matic-ng에서 geoip 패치가 안된다는 겁니다.
2.6.16.1과 2.6.16.19까지 모두 다 안됩니다.

앗 !! 검색을 통해서 패치를 찾았습니다. ^^
http://patchwork.netfilter.org/netfilter-devel/patch.pl?id=3446

그런데 정식커널에서는 언제쯤 해결될런지요
또한 다른 고수분들은 어떻게 사용하고 계시는지 궁금하네요

.
.

두번째로 2.6.14이상 커널에서 string match 문법이 바뀌었는데요
예전에는 저랬고
iptables -t filter -A INPUT -p tcp -m tcp --dport 80 --tcp-flags ACK ACK -m string \
--string "/default.ida?" -j REJECT --reject-with tcp-reset

이제는 이런데요
iptables -t filter -A INPUT -p tcp -m tcp --dport 80 --tcp-flags ACK ACK -m string \
--string "/default.ida?" --algo bm --to 65535 -j REJECT --reject-with tcp-reset

이렇게 --algo bm --to 65535 이런 옵션이 추가되어야만 하는군요
이외에도 --from과 --string 옵션이 더 있네요

궁금한건 --algo bm|kmp (Select the pattern matching strategy. (bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)
이렇게 bm과 kmp 2가지 알고리듬이 있는데 설명이 없다는 겁니다.
검색해도 확실한 결과가 없네요

혹시 아시는 분이 계시면 설명 부탁드립니다.

아래는 대충검색해서 나온 결과입니다.
Boyer-Moore algorithm
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
Knuth-Morris-Pratt string matching
http://www.ics.uci.edu/~eppstein/161/960227.html

.

mach의 이미지

strcmp()함수를 만들어라! 라는 문제가 있을때,
이 문제를 해결하는 알고리즘 중 대표적인 것들이지요.

패턴매칭/검색등에서 널리사용되고 있습니다. iptables의 POM에서 패킷의 패턴검사에, snort 의 룰에서 기술된 문자열을 스트림화한후 룰 트리 detect시의 패턴검사에서도, 골라서 쓸 수 있는 것들 중 하나로 기억됩니다. 다양한 알고리즘중 2개 만들어 놓고, 그 중 골라 잡아!를 구현한 듯한데요.
질문은 알고리즘 자체, time/space complexity라던지, 특성이라던지등에 대해서 인듯한데요, 부끄럽게도, 말씀드릴것이 없네요.......
도움이 될만한 얘기는 없군요 ㅎㅎ
직접 공부하시거나, 스트링매칭 알고리즘/ 알고리즘들 비교/발전히스토리등에 능하신 다른 분께서 답해주시는게 좋을듯합니다.

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

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

환골탈태의 이미지

도움이 되었습니다.
일단 kmp로 낙찰하고 방화벽 스크립트도 수정했습니다.
감사합니다...
__________________________________________________
좀 더 편한 방화벽 스크립트를 만들자...
--------------------------------------------------

__________________________________________________
모두 다 Hardy로 업그레이드 하고 있습니다.

댓글 달기

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