Open Source/Kali Linux

Kali Linux Mirror 설정

DarkSoul.Story 2013. 12. 19. 14:22
반응형

Kali Linux는 공식적으로 아래와 같이 3개의 Repositories (저장소)를 가지고 있다. 


 메인 패키지 저장소 

 http.kali.org (미러리스트 보기)

 

 보안 패키지 저장소

 security.kali.org (미러리스트 보기)


 ISO 이미지 저장소

 cdimage.kali.org (미러리스트 보기)


위에서 언급한 3개의 호스트를 사용하면 자동으로 최신임이 보증되어 apt-get upgrade / apt-get update 명령어를 사용하면, 사용자와 가장 가까운 미러 사이트로 이동된다.


만약 자동이 아닌 수동으로 미러를 선택할 경우 위 호스트 옆에 미러리스트 보기 링크를 클릭하여 사용자가 미러를 선택후, /etc/apt/sources.list 파일을 열어 편집을 해야 한다. 



하지만, /etc/apt/sources.list에 추가로 저장소를 추가할 경우, Kali Linux 가 설치를 중단시키는 일이 발생한다.


# Kali Linux 미러 설정


1. 미러 설정 시 요구 사항


미러를 사용하기 위해서는 충분한 디스크 공간, 뛰어난 대역폭, rsync, SSH 서버등이 필요하다. 2013년 3월 14일 기준으로 주요 패키지 저장소에는 약 160GB, ISO 이미지 저장소에는 약 10 기가 바이트의 내용이 저장되어 있다.


2. 패키지 아카이브 미러링 (Mirroring of Package Archives)


Kali Linux는 미러를 설정 한 경우 SSH 기반 트리거를 사용하여, 1일 4회 미러에 의해 동기화가 이루어진다. 사용자 입장에서는 자동 동기화가 되기 때문에 업데이트를 신경 쓰지 않아도 되는 편리함을 제공한다.  


미러 전용 계정을 가지고 있지 않은 경우 계정 만들기 (root 계정으로도 사용이 가능하다.)


 root@DarkSoul-Kali:~# sudo adduser --disabled-password [생성할 계정 명]

 


다음으로 미러 내용이 저장될 디렉터리를 생성과 생성한 디렉터리의 소유자를 앞서 생성한 계정을 변경한다. 필자는 Kali Linux에 기본적으로 존재하는 /mirrors 디렉터리를 이용하였다.


 root@DarkSoul-Kali:~# cd /mirrors/

 root@DarkSoul-Kali:/mirrors# sudo mkdir kali{,-security,-images}

 root@DarkSoul-Kali:/mirrors# sudo chown darksoul:darksoul /mirrors/kali{,-security,-images}

 


이제 해당 디렉토리로 내용을 내보내려면 rsync 데몬을 구성한다. (필요에 따라 설정)


 root@DarkSoul-Kali:~# sudo sed -i -e "s/RSYNC_ENABLE=false/RSYNC_ENABLE=true/" /etc/default/rsync

 root@DarkSoul-Kali:~# sudo vi /etc/rsyncd.conf


/etc/rsyncd.conf 파일에 아래와 같이 설정 값을 입력한다.


uid = nobody

gid = nogroup

max connections = 25

socket options = SO_KEEPALIVE


[kali]

path = /mirrors/kali  <- 앞서 생성한 디렉터리 경로

comment = The Kali Archive

read only = true


[kali-security]

path = /mirrors/kali-security <- 앞서 생성한 디렉터리 경로

comment = The Kali security archive

read only = true


[kali-images]

path = /mirrors/kali-images <- 앞서 생성한 디렉터리 경로

comment = The Kali ISO images

read only = true

$ sudo service rsync start

Starting rsync daemon: rsync.


참고로 여기서는 Web 서버 설정과 FTP 서버 내용을 포함하고 있지 않다.  


SSH 트리거와 실제 미러링을 처리하는 사용자 구성을 하기 위해 ftpsync.tar.gz 파일을 다운로드 받아 압축을 해제한다. 


 root@DarkSoul-Kali:~# sudo su - darksoul

 darksoul@DarkSoul-Kali:~$ wget http://archive.kali.org/ftpsync.tar.gz 



다운로드 받은 ftpsync.tar.gz 파일을 압축을 풀어 주면 아래와 같은 디렉터리와 파일들이 나열된다. 


darksoul@DarkSoul-Kali:~$ tar zxf ftpsync.tar.gz 

 


이제 두 가지 구성 파일을 작성해야한다. 구성 파일은 ftpsync.tar.gz 파일을 압축을 풀어 생성된 디렉터리 및 파일 중 etc 디렉터리에 있는 ftpsync.conf.sample파일을 이용한다. 



우선 etc 디렉터리에 있는 ftpsync.conf.sample파일을 같은 디렉터리에 복사한다. 이때 파일명은 ftpsync.conf로 변경한다.


 darksoul@DarkSoul-Kali:~$ cp etc/ftpsync.conf.sample etc/ftpsync-kali.conf


복사된 ftpsync.conf 파일에서 아래와 같이 MIRRORNAME / TO / RSYNC_PATH / RSYNC_HOST 매개 변수의 주석을 제거 한다. 이때 TO 부분은 앞서 미러 내용을 저장할 디렉터리를 지정한다. 



다시한번 ftpsync.conf.sample파일을 같은 디렉터리에 복사한다. 이때 파일명은 ftpsync-kali-security.conf로 변경한다.

 darksoul@DarkSoul-Kali:~$ cp etc/ftpsync.conf.sample etc/ftpsync-kali-security.conf

 

앞서 ftpsync.conf 파일에서와 동일하게 MIRRORNAME / TO / RSYNC_PATH / RSYNC_HOST 매개 변수의 주석을 제거한 후, kali-security에 맞게 설정 값을 변경해 준다.



마지막 단계는 archive.kali.org 트리거 할 수 있도록  설정을 해주는 일이다. 먼저 .ssh 디렉터리를 생성 후 authorized_keys파일을 다운로드 받는다. 


 darksoul@DarkSoul-Kali:~$ mkdir -p .ssh

 darksoul@DarkSoul-Kali:~$ wget -O - -q http://archive.kali.org/pushmirror.pub >>.ssh/authorized_keys




만약 홈 디렉토리에 ftpsync.tar.gz를 압축을 풀지 않은 경우에는 ~/bin/ftpsync에서 경로를 조정 해야 한다.


rsync를 이용하여, 저장소와 동기화 시킨다. 여기서는 archive-4.kali.org 라는 미러 URL을 사용한다고 가정한다. rsync를 이용하여 동기화는 아래와 같이 진행 한다.


darksoul@DarkSoul-Kali:~$ rsync -qaH archive-4.kali.org::kali /mirrors/kali/ &

[1] 24313

darksoul@DarkSoul-Kali:~$ rsync -qaH archive-4.kali.org::kali-security /mirrors/kali-security/ &

[2] 24315


동기화 과정에서  전용 미러를 사용할 수 있다. 전용 미러는 메인 미러 목록에 추가 할 수 있도록 미러의 모든 URL을 devel@kali.org로 이메일을 보내 하여야하며 , archive.kali.org에서 rsync액세스를 개방함으로써 사용이 가능하다. 문제 또는 미러 설정을 변경해야 할 경우 에는 이메일로 누구인지 어떤 내용인지 명확하게 작성하여 보내야 한다.



참고 

http://docs.kali.org/kali-support/kali-linux-mirrors

반응형