커널 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
.
strcmp()함수를
strcmp()함수를 만들어라! 라는 문제가 있을때,
이 문제를 해결하는 알고리즘 중 대표적인 것들이지요.
패턴매칭/검색등에서 널리사용되고 있습니다. iptables의 POM에서 패킷의 패턴검사에, snort 의 룰에서 기술된 문자열을 스트림화한후 룰 트리 detect시의 패턴검사에서도, 골라서 쓸 수 있는 것들 중 하나로 기억됩니다. 다양한 알고리즘중 2개 만들어 놓고, 그 중 골라 잡아!를 구현한 듯한데요.
질문은 알고리즘 자체, time/space complexity라던지, 특성이라던지등에 대해서 인듯한데요, 부끄럽게도, 말씀드릴것이 없네요.......
도움이 될만한 얘기는 없군요 ㅎㅎ
직접 공부하시거나, 스트링매칭 알고리즘/ 알고리즘들 비교/발전히스토리등에 능하신 다른 분께서 답해주시는게 좋을듯합니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
답변감사합니다.
도움이 되었습니다.
일단 kmp로 낙찰하고 방화벽 스크립트도 수정했습니다.
감사합니다...
__________________________________________________
좀 더 편한 방화벽 스크립트를 만들자...
--------------------------------------------------
__________________________________________________
모두 다 Hardy로 업그레이드 하고 있습니다.
댓글 달기