728x90
- snort 와 snort inline 의 차이점
# cd libnetfilter_queue-1.0.0(1.0.0 버전은 /usr/include/libnetfilter_queue/libipq.h include 파일이 remove 되었습니다. snort-inline 버전이 2.6.1.5 였는데, 2007년에 작성되었고 컴파일시libipq.h파일이 반드시 필요합니다.)
snort 가 2.3.0RC1 버전부터 snort inline 기능을 메인 프로젝트에 포함시켰습니다. 그래서, snort inline 프로젝트와 차이점이 궁금했었습니다. 아래 링크는 차이점을 비교한 사이트입니다.
- linux 최신 커널과 bridge 관련 옵션을 설정후 커널 컴파일 해서 재부팅
- iptable 설치
# cd iptables-1.4.9
# make KERNEL_DIR=/usr/src/linux
# make install KERNEL_DIR=/usr/src/linux
# make install-devel
- libnfnetlink 설치
# cd libnfnetlink-1.0.0
# ./configure --with-kernel-/usr/src/linux --prefix=/usr
# make && make install
- libnetfilter_queue 설치
# cd libnetfilter_queue-0.0.17
# ./configure --prefix=/usr
여기서 다음과 같이 configure 에러가 나는 경우가 있습니다.
............
checking how to hardcode library paths into programs... immediate
checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool
checking for a BSD-compatible install... /bin/install -c
checking for pkg-config... no
checking for
LIBNFNETLINK... configure: error: Cannot find libnfnetlink >= 0.0.16
make: *** No targets specified and no makefile found. Stop.
첫번째 볼딕체의 pkg-config... no 는 pkg-config 를 설치하면 됩니다.
문제는 두번째 libnfnetlink 라이브러리를 못찾는 경우인데, 분명히 libnfnetlink 를 설치하고, LD_LIBRARY_PATH 에도 /usr/lib 를 추가하고, /usr/lib 에 파일들이 존재를 하는데도 저렇게 없다고 나옵니다.
# locate libnfnetlink.so
/usr/lib/libnfnetlink.so
/usr/lib/libnfnetlink.so.0
/usr/lib/libnfnetlink.so.0.2.0
열심히 구글링해도 문제점만 있지 해결 방법이 없더군요. 그래서 직접 configure 파일을 열어서 확인해본 결과 libnfnetlink 존재여부를 확인하는 방법이 pkg-config 를 사용하더군요.
"$PKG_CONFIG --exists --print-errors libnfnetlink"
실제 명령어를 실행하면 다음과 같은 에러가 발생합니다.
# pkg-config --exists --print-errors libnfnetlink
Package libnfnetlink was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnfnetlink.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnfnetlink' found
실제로 PKG_CONFIG_PATH 변수를 확인해보면 아무런 값이 설정이 안되어 있었습니다.
PKG_CONFIG_PATH 에 libnfnetlink.pc 파일이 존재하는 디렉토리를 추가하고, configure 를 실행하면 정상적으로 됩니다.
# find / -name "libnfnetlink.pc" -print
/usr/lib/pkgconfig/libnfnetlink.pc
/root/Prog/libnfnetlink-1.0.0/libnfnetlink.pc
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig
- snort_inline 설치
# cd snort_inline-2.6.1.5
# ./configure --prefix=/usr --enable-nfnetlink
'Engineering > Network' 카테고리의 다른 글
libnetfilter_queue 라이브러리의 nfq_data structure 구조체 (0) | 2011.01.25 |
---|---|
ftp 정리 (0) | 2010.11.05 |
unix socket 을 이용하는 예제 (0) | 2010.06.24 |
linux 에서 fd_set MAX 변경 (0) | 2010.06.14 |
채팅 서버 - epoll 버전 (0) | 2010.06.14 |