|
News,
Internal,
Projects,
Home Software, Support, Documentation |
시원한 답변 감사드립니다. 궁금했던 부분이 아래 설명을 듣고 나서 풀리네요. On Tue, 15 Apr 2003 10:25:08 +0900, Pyun YongHyeon wrote > On Tue, Apr 15, 2003 at 01:58:00AM +0900, dreamer wrote: > >> > >> 여지껏 단순히 방화벽(ipfw, ipfilter, pf) 들의 사용법에만 주로 관심을 > >> > >> 가지고 있었습니다만, 단순히 사용법 만을 익힌 다는 것은 실제 > 소스를 들여다 본 >> >> 사람보다는 해당 프로그램에 대해서 훨씬 얕은 > 지식을 가지고 있다는 것을 깊이 >> >> 느끼고 있습니다. 그래서 일단은 > 다양한 기능이 있다는 pf(openbsd) 관련 소스를 >> >> 들여다 보고 > 있는중 질문이 있어서 이렇게 메일을 보냅니다. >> >> > netinet/ip_input.c 파일을 보면, 패킷이 들어 왔을 때, pf_test 함수를 호출해서 > >> > >> 통과할것인지 drop 할 것인지를 결정 하는 것으로 분석이 됩니다. > 그래서 패킷이 >> >> 꼭 pf_test함수를 거치게 되기 때문에 필터링을 > 수행할 수 있을 것이라 판단됩니다. >> >> 허나 이것을 지금 활발히 > 발전하고 있는 FreeBSD용 모듈을 만드는 그런 일에서는 >> >> 어떻게 > ip_input.c(pf_test함수를 거치도록 되어 있지 않은) 같은 파일에서 > 패킷이 >> >> 꼭 pf_test 들의 함수를 거치게 하는지 그게 의아합니다. > 즉, 모듈을 올렸을 때 >> >> 어떤 방식으로 ip_input.c 들의 파일에서 pf_test함 수등을 > >> > >> 거쳐 패킷을 검사하지 않도록 짜여져 있는 곳에서 pf 를 모듈로 > 로드시 pf_test함수를 >> >> 거치게 할 수 있는지가 궁금합니다. >> >> > 여기 저기 찾아 본 결과 hook(?) 이라는 개념과 연관이 있을 것 같습니다만. > >> > >> hook_establish 등의 man page 를 봐도 이해가 잘 되질 않습니다. > > FreeBSD의 코드는 ipfw를 참조하도록 하드코딩되어 있습니다. kernel 설정시 > "option PFIL_HOOKS"를 추가하면 ip_input()/ip_output()에서 hook된 function > 이 있는지 검사하도록 되어 있습니다. > hook의 사용법은 제가 포팅한 pf의 > 소스(http://pf4freebsd.love2party.net/index.html) 나 ipfilter를 > 보시기 바랍니다. man page에 가장 자세하게 설명되어 있습니다. > > >> > >> 또 하나 pfsync 가 무슨 역할을 하는 모듈인지 이해가 되질 > 않습니다. 간단히 뭐하는 >> >> 놈이라는 설명만 있어도 될 것 같습니다. > >> OpenBSD를 사용하시면 pfsync(4)를 참조하세요. tcpdump를 이용해서 > state 변화를 monitor할 수 있습니다. pfsync 를 올리고 안 올리고에 따라서 변화를 monitor 해 보라는 말씀이신가요? 현재 가지고 있는 시스템이 3.2-stable 이라서 확인이 불가능 하군요. 이 시스템이 현재 서비스 중이라서 업그레이드가 당장은 불가능 합니다. 죄송합니다만, 약간만 더 설명을 부탁 드릴게요. > > >> 또한 , pf 관련 코드를 수정해서 이런 저런 테스트를 해 보고 싶은데, > 그럴려면 >> >> module 형식으로 짜서 테스트를 하는게 여러모로 편리할 > 거라고 생각합니다. 현재 >> >> 활발히 개발되고 있는 pf4freebsd 용 > 말고, 실제 openbsd 에서 pf 를 모듈로 만든다고 >> >> 하면, 이게 쉽게 > 가능할지 경험 많은 여러분들의 조언이 듣고 싶습니다. >> > > 제 생각으로는 큰 어려움은 없으리라 생각합니다. 이미 동작하는 pf가 > 있고 이를 module로만 변경하면 되니까요. module은 lkm(4)을 > 참조하세요. >> 끝으로 pf2freebsd 관련 파일을 다운 받아서 README.ko > 파일을 보면 pfil(9) 인터페이스 >> >> 에 대한 언급이 있는데, 이게 > 무슨 역활을 하는 건지 간단한 답변이 듣고 싶습니다. >> ip_input() > /ip_output에서 패킷 처리시 등록된 hook가 있다면 이를 호출하기 위한 > 겁니다. 가장 큰 장점은 커널소스를 변경하지 않고도 패킷을 처리할 수 > 있는 새로운 모듈을 삽입/삭제 할 수 있다는 점입니다. 물론 TAILQ > reference를 사용하기 때문에 직접 호출하는 방법을 사용하는 ipfw같은 > 것보다는 overhead가 있습니다. TAILQ reference 가 뭔지에 대한 부연 설명을 부탁 드려도 될까요? 아니면, 참조할만한 사이트라도 가르쳐 주시면, 많은 도움이 될 것 같습니다. 그럼, 좋은 하루 되십시오. > > >> > >> 쓰다 보니 freebsd메일링 리스트에 openbsd 용 질문이 되어 버린 것 > 같습니다만, >> >> BSD에 관심 있는 분들이라면 두루두루 알고 계실 것 > 같아 이곳에 질문하는점 양해 >> >> 바랍니다. 개발에 있어서는 아직 > 초보라 어색한 질문이 있지는 않았나 싶습니다. >> >> 너그러운 마음으로 > 이해해 주시고, 많은 분들의 답변 부탁 드립니다. >> >> 그럼 좋은 > 하루들 되십시오. >> >> -- >> Please look and take part in KFUG FAQ: > <http://www.kr.freebsd.org/FAQ-kr/> >> To Unsubscribe: send mail to majordomo@xxxxxxxxxxxxxx > >> with "unsubscribe questions" in the BODY of the message > > -- > ============================================================ > // Korea Telecom Internet Solutions, Inc. > // FreeBSD/Linux Professional Consulting/Tech. Support > // > // Pyun YongHyeon > // > // WWW: http://www.kt-is.co.kr/ > // > // TEL: +82-2-597-0600 > // FAX: +82-2-581-2983 > ============================================================ -- Please look and take part in KFUG FAQ: <http://www.kr.freebsd.org/FAQ-kr/> To Unsubscribe: send mail to majordomo@xxxxxxxxxxxxxx with "unsubscribe questions" in the BODY of the message
|
Copyright © 1998-2005 Korea FreeBSD Users Group. All rights reserved. webmaster at kr.FreeBSD.org $Date: 2003/04/30 23:01:23 $ |
|