Kali Linux 환경 설정하기

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 LabEx VM 내에서 Docker를 사용하여 Kali Linux 환경을 설정하고 탐색하는 방법을 배웁니다. Kali Linux는 모의 해킹 및 사이버 보안 작업을 위해 설계된 강력한 Debian 기반 배포판입니다. Kali Linux를 Docker 컨테이너에서 실행하면 호스트 시스템에 영향을 주지 않고 보안 도구를 연습할 수 있는 격리된 환경을 만들 수 있습니다.

먼저 Kali Linux Docker 컨테이너를 가져와(pull) 실행하고, 터미널에 접속하여 설정을 확인합니다. 그런 다음 기본적인 터미널 명령어를 살펴보고, Kali Linux에서 apt가 어떻게 사용되는지 검토하며, Kali 버전과 시스템 정보를 확인하여 모든 것이 올바르게 구성되었는지 확인합니다. 무료 티어 사용자의 경우, VM이 외부 패키지 미러에 접근할 수 없으므로 패키지를 직접 다운로드하는 대신 패키지 관리 워크플로우를 이해하는 데 중점을 둡니다. 이러한 실습 경험은 컨테이너화된 환경에서 Kali Linux를 다루는 데 필요한 탄탄한 기초를 제공할 것입니다.

Kali Linux Docker 컨테이너 실행하기

이 단계에서는 LabEx VM 환경에서 Kali Linux Docker 컨테이너를 가져와 실행하고 터미널에 접속합니다. Docker를 사용하면 격리된 컨테이너에서 애플리케이션을 실행할 수 있으며, Kali Linux는 사이버 보안 및 모의 해킹을 위한 특수 Linux 배포판입니다. 컨테이너에서 Kali를 실행하면 학습과 실험을 위한 깔끔하고 휴대 가능한 환경을 보장할 수 있습니다.

시작하기 전에 초보자를 위한 몇 가지 기본 개념을 정리해 보겠습니다.

  • Docker: Docker는 컨테이너 내에서 애플리케이션을 생성하고 실행할 수 있게 해주는 플랫폼입니다. 컨테이너는 운영 체제와 필요한 도구를 포함하는 가볍고 격리된 환경입니다.
  • Kali Linux: Kali Linux는 보안 테스트를 위해 설계된 Debian 기반 Linux 배포판으로, 모의 해킹 및 디지털 포렌식을 위한 도구가 미리 설치되어 있습니다.
  • Docker 컨테이너: 컨테이너는 Docker 이미지의 실행 인스턴스입니다. 공식 Kali Linux 이미지를 가져온 다음, 이를 기반으로 컨테이너를 생성하게 됩니다.

이제 Kali Linux 이미지를 가져와 컨테이너를 시작하고 터미널에 접속해 보겠습니다. 모든 작업은 기본 디렉토리인 /home/labex/project에서 수행됩니다. 다음 단계를 주의 깊게 따라 하세요.

  1. LabEx VM 환경에서 터미널을 엽니다. Xfce 데스크탑의 터미널 아이콘을 클릭하거나 LabEx 인터페이스에서 제공하는 터미널을 사용하면 됩니다.

  2. 다음 명령어를 실행하여 기본 작업 디렉토리에 있는지 확인합니다.

    pwd
    

    출력 결과는 다음과 같아야 합니다.

    /home/labex/project
    

    만약 /home/labex/project에 있지 않다면 다음 명령어로 이동하세요.

    cd /home/labex/project
    
  3. Docker Hub에서 공식 Kali Linux 이미지를 가져옵니다. 다음 명령어를 실행하세요.

    무료 사용자 참고: VM이 Docker Hub에 접근할 수 없으므로 무료 티어를 사용하는 경우 다음 명령어를 건너뛰세요. Kali 이미지는 설정 스크립트를 통해 이미 가져와져 있습니다.

    docker pull kalilinux/kali-rolling
    

    이 명령어는 최신 Kali Linux 이미지를 다운로드합니다. 터미널에 다운로드 진행 상황이 표시됩니다.

    Docker pull 진행 상황 이미지

  4. Kali Linux 이미지가 성공적으로 가져와졌는지 확인합니다. 다음을 실행하세요.

    docker images
    

    다음과 유사한 출력이 표시되어야 합니다.

    REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
    kalilinux/kali-rolling latest    xxxxxxxx       X days ago     XXXMB
    
  5. 이제 Kali Linux 이미지에서 새 컨테이너를 실행합니다. 다음 명령어를 실행하여 컨테이너를 백그라운드에서 시작하세요.

    docker run -d --name kali-container -it kalilinux/kali-rolling /bin/bash
    

    이 명령어의 의미는 다음과 같습니다.

    • docker run: 새 컨테이너를 생성하고 시작합니다.
    • -d: 컨테이너를 분리 모드(백그라운드)에서 실행합니다.
    • --name kali-container: 컨테이너를 쉽게 참조할 수 있도록 이름을 지정합니다.
    • -it: -i(대화형)와 -t(tty)를 결합하여 컨테이너 터미널과 상호 작용할 수 있게 합니다.
    • kalilinux/kali-rolling: 사용할 이미지를 지정합니다.
    • /bin/bash: 컨테이너 내부에서 Bash 셸을 시작합니다.

    이 명령어를 실행하면 터미널에 컨테이너 ID가 반환되며, 컨테이너가 백그라운드에서 실행 중임을 나타냅니다.

    다음 명령어로 컨테이너 상태를 확인하세요.

    docker ps
    

    컨테이너가 ID와 함께 실행 중인 것을 볼 수 있습니다.

  6. 다음 명령어로 실행 중인 컨테이너에 연결합니다.

    docker exec -it kali-container /bin/bash
    

    이제 컨테이너의 터미널 내부로 들어왔습니다. 이후 모든 단계는 컨테이너 터미널 내부에서 진행됩니다. 지시가 있기 전까지는 컨테이너를 종료하지 마세요. 실수로 종료한 경우 위의 동일한 명령어를 사용하여 다시 연결할 수 있습니다.

    컨테이너 터미널 접속 이미지

축하합니다. Kali Linux Docker 이미지를 성공적으로 가져오고, 컨테이너를 실행하며, 터미널에 접속했습니다. 다음 단계에서는 컨테이너 내부에서 환경이 올바르게 설정되었는지 확인합니다.

Kali Linux 터미널 탐색하기

이 단계에서는 Kali Linux Docker 컨테이너 내부의 터미널 인터페이스를 탐색합니다. 터미널은 Linux 시스템과 상호 작용하는 주요 방법이며, 특히 대부분의 도구가 명령줄 기반인 Kali Linux에서 더욱 중요합니다. 이 단계를 통해 기본적인 명령어와 컨테이너 환경에 익숙해질 수 있습니다.

초보자를 위한 핵심 개념을 살펴보겠습니다.

  • 터미널: 터미널은 운영 체제와 상호 작용하기 위한 텍스트 기반 인터페이스입니다. 명령어를 실행하고, 파일을 관리하며, 설정을 구성할 수 있습니다.
  • Bash 셸: Bash(Bourne Again Shell)는 Kali Linux의 기본 명령줄 인터프리터입니다. 입력한 명령어를 처리합니다.
  • 루트(root) 사용자: root 사용자는 Linux에서 모든 관리 권한을 가집니다. 이 컨테이너 내부에서는 root로 로그인되어 있어 시스템을 완전히 제어할 수 있습니다.

이전 단계에서 이미 Kali Linux 컨테이너 내부에 있으므로, 기본적인 명령어로 터미널 탐색을 시작해 보겠습니다. 다음 지침을 주의 깊게 따르세요.

  1. 다음 명령어를 실행하여 컨테이너 내부의 현재 위치를 확인합니다.

    pwd
    

    출력 결과는 다음과 같아야 합니다.

    /
    

    이는 컨테이너 내부 파일 시스템의 루트 디렉토리에 있음을 보여줍니다.

  2. 현재 디렉토리의 내용을 나열하여 파일 시스템 구조를 확인합니다. 다음을 실행하세요.

    ls
    

    다음과 유사한 출력이 표시되어야 합니다.

    bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    이들은 표준 Linux 디렉토리입니다. 예를 들어, bin은 바이너리 파일을 포함하고, etc는 구성 파일을 보관합니다.

  3. 다음 명령어를 실행하여 사용자 ID를 확인합니다.

    whoami
    

    출력 결과는 다음과 같아야 합니다.

    root
    

    이는 컨테이너 내부에서 root 사용자로 작업 중임을 확인해 줍니다.

    Kali에서 uname -a 명령어 출력

  4. 다음 단계를 위해 컨테이너 터미널 내부에 머무르세요. exit를 입력하지 마세요. 컨테이너 연결이 끊어집니다. 실수로 종료한 경우 호스트 터미널에서 docker exec -it kali-container /bin/bash를 사용하여 다시 연결하세요.

축하합니다. 기본적인 명령어를 사용하여 Kali Linux 컨테이너의 터미널 인터페이스를 탐색했습니다. 다음 단계에서는 시스템을 업데이트하여 최신 패키지와 보안 패치를 확보하는 방법을 알아봅니다.

Kali Linux 패키지 관리 검토하기

이 단계에서는 Docker 컨테이너 내부에서 Kali Linux 패키지 관리가 어떻게 작동하는지 검토하고, 시스템 업데이트 및 보안 도구 설치에 사용되는 명령어를 확인합니다. 기본 Kali Linux Docker 이미지에는 기본적으로 보안 도구가 설치되어 있지 않다는 점에 유의하세요. 이러한 설계 선택은 기본 이미지를 가볍게 유지하고 사용자가 필요한 도구만 설치할 수 있도록 합니다.

초보자를 위한 중요한 개념을 다루겠습니다.

  • 패키지 관리자: 패키지 관리자는 소프트웨어 패키지의 설치, 업데이트 및 제거를 처리합니다. Debian 기반인 Kali Linux는 패키지 관리자로 apt(Advanced Package Tool)를 사용합니다.
  • apt update: 이 명령어는 온라인 저장소에서 최신 패키지 정보를 가져와 로컬 패키지 인덱스를 새로 고칩니다. 아무것도 설치하지 않으며, 사용 가능한 패키지 목록만 업데이트합니다.
  • Kali Linux 도구 모음: Kali Linux는 도구 설치를 위해 다양한 메타 패키지를 제공합니다.
    • 개별 패키지: 특정 도구를 하나씩 설치 (예: nmap, wireshark, metasploit-framework)
    • kali-linux-headless: 헤드리스 시스템에 적합한 최소한의 도구 세트로, 가장 일반적인 명령줄 도구 포함
    • kali-linux-large: Kali Linux의 대부분의 보안 도구를 포함하는 포괄적인 모음 (~450개 도구)

이전 단계에서 이미 Kali Linux 컨테이너 터미널 내부에 있으므로, 시스템 업데이트 및 도구 설치에 사용되는 명령어를 살펴보겠습니다. 다음 지침을 주의 깊게 따르세요.

  1. 컨테이너 내부에서 apt 패키지 관리자를 사용할 수 있는지 확인합니다. 다음 명령어를 실행하세요.

    apt --version
    

    다음과 유사한 출력이 표시됩니다.

    apt 2.x.x (amd64)
    

    이는 표준 Kali 패키지 관리자가 설치되어 있으며 네트워크 접근이 가능할 때 사용할 준비가 되었음을 확인해 줍니다.

  2. 패키지 인덱스를 새로 고치는 데 사용되는 명령어를 검토합니다. 인터넷 연결이 가능할 때 컨테이너 내부에서 실행할 명령어는 다음과 같습니다.

    apt update
    

    무료 사용자 참고: 무료 티어 VM에서는 apt update를 실행하지 마세요. 컨테이너가 외부 Kali 패키지 미러에 접근할 수 없어 명령어가 시간 초과됩니다. 이 실습에서는 이 명령어가 무엇을 하는지 이해하기만 하면 됩니다.

    네트워크 접근이 가능할 때 다음과 유사한 출력이 표시됩니다.

    Get:1 http://kali.download/kali kali-rolling InRelease [30.5 kB]
    Get:2 http://kali.download/kali kali-rolling/main amd64 Packages [18.1 MB]
    ...
    Fetched 18.5 MB in 5s (3,700 kB/s)
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    All packages are up to date.
    
  3. 도구를 설치하는 방법에는 여러 가지가 있습니다. 각 접근 방식을 이해해 봅시다.

    a. 개별 도구 설치 (특정 도구만 필요한 경우):

    apt -y install <package-name>
    

    예: apt -y install nmap wireshark

    b. 헤드리스 모음 설치 (일반적인 도구의 최소 세트):

    ## 이 명령어를 실행할 필요는 없습니다
    apt -y install kali-linux-headless
    

    기본적인 보안 테스트와 리소스가 제한된 환경에서 작업할 때 좋습니다.

    c. 대규모 모음 설치 (포괄적인 보안 테스트용):

    ## 이 명령어를 실행할 필요는 없습니다
    apt -y install kali-linux-large
    

    대부분의 보안 도구가 포함되어 있지만 더 많은 디스크 공간과 설치 시간이 필요합니다.

  4. 이번 실습에서는 기본 도구 모음을 설치하는 명령어를 검토합니다.

    apt -y install kali-linux-headless
    

    무료 사용자 참고: 무료 티어 VM에서는 이 명령어를 실행하지 마세요. Kali 미러에서 패키지를 다운로드해야 하는데, 이 환경에서는 차단되어 있습니다.

    -y 플래그는 모든 프롬프트를 자동으로 확인하여 중단 없이 설치를 진행할 수 있게 합니다. 출력은 다음과 유사하게 나타납니다.

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following additional packages will be installed:
      <package1> <package2> ...
    ...
    Setting up <package1> ...
    Setting up <package2> ...
    

    인터넷 연결이 가능할 때 이 과정은 많은 패키지를 다운로드하고 설치해야 하므로 시간이 다소 걸립니다. kali-linux-headless 메타 패키지는 Kali Linux를 위한 실용적인 명령줄 보안 테스트 도구 세트를 제공합니다.

    인터넷 접근이 가능한 유료 환경을 사용 중이라면 명령어를 실행하고 완료될 때까지 기다릴 수 있습니다. 무료 티어 VM에서는 검토 후 다음 단계로 넘어가세요.

  5. 다음 단계를 위해 컨테이너 터미널 내부에 머무르세요. exit를 입력하지 마세요. 실수로 종료한 경우 호스트 터미널에서 docker exec -it kali-container /bin/bash를 사용하여 다시 연결하세요.

축하합니다. Kali 컨테이너에서 apt를 사용할 수 있음을 확인하고, 패키지 인덱스를 업데이트하고 일반적인 Kali 도구 모음을 설치하는 데 사용되는 명령어를 검토했습니다. 다음 단계에서는 Kali Linux의 버전과 시스템 정보를 확인합니다.

Kali Linux 버전 및 시스템 정보 확인하기

이 단계에서는 Docker 컨테이너 내부에서 Kali Linux의 버전을 확인하고 기본적인 시스템 정보를 수집합니다. 버전과 시스템 세부 정보를 알면 문제 해결에 도움이 되며 보안 도구와의 호환성을 보장할 수 있습니다.

초보자를 위한 핵심 개념을 설명하겠습니다.

  • 버전 정보: Kali Linux의 버전은 사용 중인 릴리스 또는 빌드를 나타냅니다. Kali는 고정된 버전 릴리스 대신 지속적인 업데이트를 받는 롤링 릴리스 모델을 따릅니다.
  • 시스템 정보: 여기에는 커널(OS의 핵심), 하드웨어 아키텍처 및 기타 시스템 데이터에 대한 세부 정보가 포함됩니다. 명령어와 시스템 파일이 검토를 위한 이 정보를 제공합니다.
  • 명령어 출력: Linux 명령어는 종종 터미널에 상세한 정보를 표시합니다. 이 출력을 해석하는 방법을 배우는 것은 시스템을 이해하는 데 유용합니다.

이전 단계에서 이미 Kali Linux 컨테이너 터미널 내부에 있으므로, 버전 및 시스템 정보 확인을 진행하겠습니다. 다음 지침을 주의 깊게 따르세요.

  1. /etc/os-release 파일의 내용을 확인하여 Kali Linux 버전을 확인합니다. 다음 명령어를 실행하세요.

    cat /etc/os-release
    

    다음과 유사한 출력이 표시되어야 합니다.

    PRETTY_NAME="Kali GNU/Linux Rolling"
    NAME="Kali GNU/Linux"
    VERSION_ID="2023.3"
    VERSION="2023.3"
    VERSION_CODENAME="kali-rolling"
    ID=kali
    ID_LIKE=debian
    HOME_URL="https://www.kali.org/"
    SUPPORT_URL="https://forums.kali.org/"
    BUG_REPORT_URL="https://bugs.kali.org/"
    ANSI_COLOR="1;31"
    

    여기에는 버전(예: 2023.3) 및 코드네임(kali-rolling)과 같은 세부 정보가 표시됩니다. 정확한 버전은 이미지 업데이트에 따라 다를 수 있습니다.

  2. 커널 및 시스템 아키텍처에 대한 정보를 수집합니다. 다음 명령어를 실행하세요.

    uname -a
    

    출력은 다음과 유사하게 나타납니다.

    Linux xxxxxxxxxxxx 5.10.0-0.deb10.9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux
    

    이는 커널 버전(예: 5.10.0)과 아키텍처(예: 64비트용 x86_64)를 표시합니다. 정확한 세부 정보는 다를 수 있습니다.

  3. 컨테이너의 호스트 이름을 확인합니다. 다음 명령어를 실행하세요.

    hostname
    

    출력은 다음과 같은 고유 식별자가 됩니다.

    xxxxxxxxxxxx
    

    이는 Docker에 의해 자동으로 생성되며 각 인스턴스마다 고유한 컨테이너의 호스트 이름입니다.

  4. 더 탐색하고 싶다면 컨테이너 터미널 내부에 머무르세요. LabEx VM 터미널로 돌아가야 한다면 exit를 입력하세요. 나중에 언제든지 docker exec -it kali-container /bin/bash를 사용하여 다시 연결할 수 있습니다.

축하합니다. 간단한 명령어를 사용하여 Kali Linux 버전과 시스템 정보를 확인했습니다. 이것으로 Docker 컨테이너에서 Kali Linux 환경의 기본 설정 및 탐색을 마칩니다.

요약

이 실습에서는 LabEx VM에서 Docker를 사용하여 Kali Linux 환경을 설정하고 관리하는 방법을 배웠습니다. Kali Linux Docker 컨테이너를 가져와 실행하고, 터미널에 접속하며, 설정을 확인하는 것으로 시작했습니다. 그런 다음 기본적인 명령어로 터미널 인터페이스를 탐색하여 환경을 이해했습니다. 또한 Kali가 패키지 관리를 위해 apt를 사용하는 방법을 검토했으며, 무료 티어 환경에서는 외부 패키지 미러에 접근할 수 없으므로 패키지 업데이트 및 설치는 이 실습에서 참조용 명령어로 다루어야 함을 배웠습니다. 마지막으로 Kali Linux 버전과 시스템 정보를 확인하여 설정을 완료했습니다. 이러한 단계들은 사이버 보안 작업을 위해 컨테이너화된 환경에서 Kali Linux를 다루는 데 필요한 기초적인 이해를 제공했습니다.