iptables소스 설치시 데몬파일과 정책 저장 파일이 없는 것인지요?
배포판 설치시에 설치되어 있는 iptables 패키지를 지우고
iptables-1.4.2-rc1 소스 설치를 시도했습니다.
뒤적뒤적 거려보니... 아래와 같이 옵션을 줘서 설치를 하더군요.
make KERNEL_DIR=/usr/src/linux
make install KERNEL_DIR=/usr/src/linux
make install-devel
언뜻 보니 커널 디렉터리를 지정해서 커널에 올리는 것 아닌가 하는 생각에,
모듈인데 왜 커널 디렉터리에 설치하냐는 반문으로 기본옵션으로 설치를 해버렸습니다.
제가 청개구리라 ㅡㅡ;
저는 아래와 같이 컴파일을 하였습니다.
[root@localhost /]#tar xvfz iptables-1.4.2-rc1.tar.gz -C /usr/src
[root@localhost /]cd /usr/src
[root@localhost src]#ln -s iptables-1.4.2-rc1 iptables
[root@localhost src]#cd iptables
[root@localhost iptables]#./configure
[root@localhost iptables]#make
[root@localhost iptables]#make install
기본옵션 컴파일에 실행파일 각각 링크를 걸었습니다.
/usr/local/sbin에 설치된 iptables파일들을 일일히 /sbin으로 링크를 걸었습니다.
배포판 설치시에는 /sbin/iptables-save하면 /etc/sysconfig/iptables에 정책을 쓰게 되서
재부팅 후에도 적용이 되었는데 소스 설치를 해보니 궁금한 것이 생겼네요.
/sbin/iptables-save하면 설정이 적용되어 iptables -L 하면 정책 내용이 뜹니다.
그런데 그 설정을 저장하는 파일을 찾지를 못하겠습니다.
재부팅하면 그냥 리셋이지요.
설상가상. 데몬 파일도 못찾겠네요.
궁여지책으로 /etc/iptables파일을 생성하고 스크립트 처럼 만들어 퍼미션 700 주고 /etc/rc.d/rc.local파일에 써 넣어
리눅스 시작할 떄 자동실행 되게 해놨는데 뭔가 잘못됬는지 뜨질 않고,
응급책으로 .bash_profile생각하고 있습니다.
요점은 이겁니다.
기존 rpm설치시에 /etc/sysconfig/iptables 역할을 하던 파일이 소스설치시에는 어떤 파일인가?
시작 데몬파일이 소스설치시에는 어떤 파일인가?
없는 것 인가?
읽어주셔서 감사합니다. 도움 주시면 좋겠네요^^;
.
.
make[1]: Leaving directory `/usr/src/iptables-1.4.2-rc1/extensions'
make[1]: Entering directory `/usr/src/iptables-1.4.2-rc1'
make[2]: Entering directory `/usr/src/iptables-1.4.2-rc1'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'iptables-xml' '/usr/local/bin/iptables-xml'
/usr/bin/install -c iptables-xml /usr/local/bin/iptables-xml
test -z "/usr/local/sbin" || mkdir -p -- "/usr/local/sbin"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'iptables' '/usr/local/sbin/iptables'
/usr/bin/install -c iptables /usr/local/sbin/iptables
/bin/sh ./libtool --mode=install /usr/bin/install -c 'iptables-multi' '/usr/local/sbin/iptables-multi'
/usr/bin/install -c iptables-multi /usr/local/sbin/iptables-multi
/bin/sh ./libtool --mode=install /usr/bin/install -c 'iptables-restore' '/usr/local/sbin/iptables-rest
ore'
/usr/bin/install -c iptables-restore /usr/local/sbin/iptables-restore
/bin/sh ./libtool --mode=install /usr/bin/install -c 'iptables-save' '/usr/local/sbin/iptables-save'
/usr/bin/install -c iptables-save /usr/local/sbin/iptables-save
/bin/sh ./libtool --mode=install /usr/bin/install -c 'ip6tables' '/usr/local/sbin/ip6tables'
/usr/bin/install -c ip6tables /usr/local/sbin/ip6tables
/bin/sh ./libtool --mode=install /usr/bin/install -c 'ip6tables-multi' '/usr/local/sbin/ip6tables-mult
i'
/usr/bin/install -c ip6tables-multi /usr/local/sbin/ip6tables-multi
/bin/sh ./libtool --mode=install /usr/bin/install -c 'ip6tables-restore' '/usr/local/sbin/ip6tables-re store'
/usr/bin/install -c ip6tables-restore /usr/local/sbin/ip6tables-restore
/bin/sh ./libtool --mode=install /usr/bin/install -c 'ip6tables-save' '/usr/local/sbin/ip6tables-save'
/usr/bin/install -c ip6tables-save /usr/local/sbin/ip6tables-save
test -z "/usr/local/include" || mkdir -p -- "/usr/local/include"
/usr/bin/install -c -m 644 'include/xtables.h' '/usr/local/include/xtables.h'
/usr/bin/install -c -m 644 'include/iptables.h' '/usr/local/include/iptables.h'
/usr/bin/install -c -m 644 'include/ip6tables.h' '/usr/local/include/ip6tables.h'
test -z "/usr/local/include/libiptc" || mkdir -p -- "/usr/local/include/libiptc"
/usr/bin/install -c -m 644 'include/libiptc/libxtc.h' '/usr/local/include/libiptc/libxtc.h'
/usr/bin/install -c -m 644 'include/libiptc/ipt_kernel_headers.h' '/usr/local/include/libiptc/ipt_kerne l_headers.h'
test -z "/usr/local/share/man/man8" || mkdir -p -- "/usr/local/share/man/man8"
/usr/bin/install -c -m 644 './iptables.8' '/usr/local/share/man/man8/iptables.8'
/usr/bin/install -c -m 644 './iptables-restore.8' '/usr/local/share/man/man8/iptables-restore.8'
/usr/bin/install -c -m 644 './iptables-save.8' '/usr/local/share/man/man8/iptables-save.8'
/usr/bin/install -c -m 644 './iptables-xml.8' '/usr/local/share/man/man8/iptables-xml.8'
/usr/bin/install -c -m 644 './ip6tables.8' '/usr/local/share/man/man8/ip6tables.8'
/usr/bin/install -c -m 644 './ip6tables-restore.8' '/usr/local/share/man/man8/ip6tables-restore.8'
/usr/bin/install -c -m 644 './ip6tables-save.8' '/usr/local/share/man/man8/ip6tables-save.8'
make[2]: Leaving directory `/usr/src/iptables-1.4.2-rc1'
make[1]: Leaving directory `/usr/src/iptables-1.4.2-rc1'
[root@localhost iptables]#
[root@localhost sbin]#ln -s /usr/local/sbin/iptables iptables
[root@localhost sbin]#ln -s /usr/local/sbin/iptables-multi iptables-multi
[root@localhost sbin]#ln -s /usr/local/sbin/iptables-save iptables-save
[root@localhost sbin]#ln -s /usr/local/sbin/iptables-restore iptables-restore
[root@localhost sbin]#ln -s /usr/local/sbin/ip6tables ip6tables
[root@localhost sbin]#ln -s /usr/local/sbin/ip6tables-multi ip6tables-multi
[root@localhost sbin]#ln -s /usr/local/sbin/ip6tables-save ip6tables-save
[root@localhost sbin]#ln -s /usr/local/sbin/ip6tables-restore ip6tables-restore
일단, iptables 는 daemon
일단, iptables 는 daemon 이 아닙니다. kernel 의 netfilter 의 frontend 일 뿐입니다. 즉 커널에 ACL을 반영 시키는 개념일 뿐이죠.
그리고, 님이 원하시는 내용들은 모두 package 에서 제공하는 addon 들 입니다. 알게 모르게 배포본에서 사용자의 편의를 위해서 제공하는 것들이 많은데, 많은 분들이 당연히 지원하는 것으로 알고 있더군요. 개발자들은 그리 사용자의 편의에 대해서 고민하지 않습니다. 특히 오픈소스 개발자들의 경우 사용자가 다 알아서 잘 할 수 있을 거라고 생각하는 비중이 크다고 봅니다. (아니면 배포본에서 알아서 해 줄거고, 사용자들은 배포본 것 쓸거라고 생각할까요? 별로 신빙성이 없어 보인다는..)
가장 간단한 방법은 iptables 의 source rpm 을 받아서 분석해 보시기 바랍니다. 그럼 얼마나 사용자의 편의를 위해서 배포본이 하는 일이 많은지 아실 수 있을 겁니다. :-)
김정균님 말씀처럼
김정균님 말씀처럼 제공되는 패키지를 그냥 쓰시지요.
굳이 소스를 컴파일해서 설치하려는 이유가 있다면 모르지만, 암만 생각해봐도 그럴 이유가 있을까 싶습니다.
--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
1. 기본적으로 설치된
1. 기본적으로 설치된 iptables 패키지를 지울 필요는 없습니다.
2. ./configure --enable-devel && make && make install 로 설치하시고 그냥 사용하시면 됩니다.
3. 리부팅 시 컴파일 한 iptables 를 사용하고 싶으시면 ntsysv 나 chkconfig list 에서 iptables 를 stop 합니다.
그 후, /etc/rc.d/rc.local 등에 iptables-restore < iptables 와 같은 형태로 시스템 시작시에 불러오도록 하면 됩니다.
댓글 달기