본문 바로가기

해봐야 안다.OTL/Linux

[리눅스] Bind에서의 Chroot

<Chroot>

데몬과 설치한 사람만이 실제 파일의 위치를 알게 하고 그 이외의 사람들은 파일의 경로를

모르게 하기 위해 사용하는 보안 방식

예)

chroot를 사용 안 할 경우 --> named /var/named/zone /etc/named.conf

chroot를 사용할 경우 --> Daemon 과 설치한 당사자만이 알 수 있도록 시스템의 /를 가상의 디렉터리로 변환하는 것

 

Bind에서의 chroot 생성시 관련된 파일

/usr/sbin/named

/etc/named.conf

/etc/named.rfc1912.zones

/var/run

/var/run/named

/var/logs/

/var/named/*

/etc/localtime

--

<Chroot 구성하기>

[root@jo:~]#usermod -d /exam/chroot/dns named

 

[root@jo:~]#cat /etc/passwd |grep named

named:x:25:25::/exam/chroot/dns:/bin/false

--

[root@jo:~]#mkdir -p /exam/chroot/dns

 

이제 chroot 환경을 구축할 디렉터리 트리를 만든다.

[root@jo:~]#mkdir -p /exam/chroot/dns

[root@jo:~]#mkdir /exam/chroot/dns/etc

[root@jo:~]#mkdir -p /exam/chroot/dns/usr/sbin

[root@jo:~]#mkdir -p /exam/chroot/dns/var/named

[root@jo:~]#mkdir /exam/chroot/dns/var/logs

[root@jo:~]#mkdir /exam/chroot/dns/dev

[root@jo:~]#mkdir /exam/chroot/dns/var/run

[root@jo:~]#mkdir /exam/chroot/dns/var/run/named

--

*파일들을 복사한다. 해커가 들어올 때 bind 파일들이 해당 위치에 없으면 chroot쓴 줄 알것이다.

따라서 복사만하고 이동시키지 않는다.

[root@jo:~]#cp /etc/localtime /exam/chroot/dns/etc/localtime

[root@jo:~]#cp /etc/named.conf /exam/chroot/dns/etc/named.conf

[root@jo:~]#cp /usr/sbin/named /exam/chroot/dns/usr/sbin/named

[root@jo:~]#cp -R /var/named/* /exam/chroot/dns/var/named/

[root@jo:/etc/init.d]#cp /etc/named.rfc1912.zones /exam/chroot/dns/etc/named.rfc1912.zones

 

[root@jo:~]#chown -R named.named /exam/chroot/dns/

[root@jo:~]#cd /exam/chroot/dns/dev/

 

[root@jo:/exam/chroot/dns/dev]#mknod ./null c 1 3

[root@jo:/exam/chroot/dns/dev]#chmod 666 null

[root@jo:/exam/chroot/dns/dev]#mknod ./zero c 1 5

[root@jo:/exam/chroot/dns/dev]#chmod 666 zero

[root@jo:/exam/chroot/dns/dev]#mknod ./random c 1 8

[root@jo:/exam/chroot/dns/dev]#chmod 666 random

 

[root@jo:/exam/chroot/dns/dev]#ls

null random zero

 

[root@jo:/exam/chroot/dns/dev]#chown -R named.named /exam/chroot/dns/

--

[root@jo:/etc/init.d]#vi named

34 ROOTDIR='/exam/chroot/dns' --> 추가 삽입

56 [ -x "$ROOTDIR"/usr/sbin/"$named" ] || exit 5 --> 추가 삽입

 

[root@jo:/etc/init.d]#ps -ef |grep named

named 3760 1 0 11:31 ? 00:00:00 /usr/sbin/named -u named -t /exam/chroot/dns

--> '-t' 는 chroot를 사용하고 있다는 의미이다.

--