Kali Linux 환경 시작하기

LinuxBeginner
지금 연습하기

소개

Kali Linux는 보안 테스트용 Linux 배포판입니다. 이 과정은 보안 도구를 사용하기 전에 필요한 일상적인 터미널 사용법부터 시작합니다. Linux나 Docker를 사용해 본 경험은 필요하지 않습니다.

LabEx 머신은 Ubuntu를 실행하며, 별도의 Kali 컨테이너를 호스팅합니다. 컨테이너는 호스트의 Linux 커널을 공유하면서 자체 파일과 프로그램을 제공합니다. 실습에서 이 환경을 준비해 줍니다. 일반 사용자로 Kali에 들어가 시스템을 식별하고, 명령어 도움말을 읽고, 간단한 환경 기록을 저장합니다. 첫 실습에는 스캔 대상이 없습니다.

이 실습에서는 계속 Terminal 인터페이스를 사용하세요. 데스크톱이나 Docker Hub 계정, 소프트웨어 설치 단계는 필요하지 않습니다.

Kali에 들어가 첫 파일 작성하기

이 단계에서는 준비된 Kali 환경에 들어가 사용자와 작업 디렉터리를 확인하고 짧은 텍스트 파일을 작성합니다.

터미널은 텍스트 창이고, 셸은 명령어를 읽는 프로그램입니다. Terminal을 클릭하고 명령어를 입력한 뒤 Enter를 누르세요. 앞에 표시된 프롬프트를 제외하고 명령어만 복사하세요.

처음 열린 터미널은 Ubuntu 호스트의 labex 사용자 세션입니다. 실습에서 제공하는 kali 명령어는 준비된 컨테이너 안에 Bash 셸을 엽니다. 컨테이너 설정은 이미 끝났으므로 Docker 명령어를 직접 실행할 필요가 없습니다.

kali

이제 프롬프트는 다음과 비슷합니다.

kali@kali-training:/home/labex/project$

여기서 kali는 사용자 이름, kali-training은 이 컨테이너의 이름이며, 경로는 현재 디렉터리입니다. 마지막의 $는 관례적으로 일반 사용자를 나타내며, root 관리자 프롬프트에는 흔히 #가 쓰입니다. 프롬프트는 바꿀 수 있으므로 유효 사용자 이름을 출력하는 whoami로 신원을 확인하세요.

whoami

예상 출력:

kali

현재 root가 아닌 일반 사용자로 작업하고 있습니다. 관리 작업은 과정의 뒷부분에서 배웁니다.

pwd(print working directory)로 상대 이름을 가진 파일이 작성될 위치를 확인하세요.

pwd

예상 출력:

/home/labex/project

/로 시작하는 경로는 절대 경로입니다. 이 프로젝트 디렉터리는 Ubuntu 호스트의 같은 경로와 공유되므로, 여기에 저장한 파일은 LabEx에서도 접근할 수 있습니다. /etc/os-release 같은 다른 컨테이너 경로는 Kali에 속합니다. 컨테이너 사용자의 홈 디렉터리는 /home/kali이며 공유 프로젝트 디렉터리와 다릅니다.

echo는 메시지를 출력합니다. 작은따옴표는 단어들을 하나의 리터럴 텍스트로 유지합니다. 셸의 > 연산자는 출력을 화면 대신 파일로 보내며, 파일을 새로 만들거나 기존 내용을 덮어씁니다. 이를 사용해 첫 연습 파일을 만드세요.

echo 'Kali practice started' > welcome.txt

출력이 없는 것이 정상입니다. 메시지는 현재 디렉터리의 welcome.txt에 들어갔습니다. cat은 파일을 읽고 내용을 출력합니다.

cat welcome.txt

예상 출력:

Kali practice started

이로써 Kali 작업 공간에서 파일을 만들고 읽을 수 있음을 확인했습니다. 다음 단계에서도 이 Kali 셸을 유지하세요. 터미널을 닫았다면 새 Terminal을 열고 kali를 다시 실행하세요. Kali 안에서 exit를 입력하면 호스트로 돌아가며, 컨테이너나 프로젝트 파일은 삭제되지 않습니다.

Kali를 식별하고 릴리스 정보 저장하기

이 단계에서는 Kali의 시스템 식별 정보를 읽고, 명령어에 내장된 도움말을 사용하고, 특정 버전 번호를 가정하지 않고 릴리스 기록을 저장합니다.

Linux 배포판은 KEY=value 항목으로 이루어진 텍스트 파일 /etc/os-release를 제공합니다. /etc에는 시스템 설정과 식별 파일이 있습니다. 1단계에서 연 Kali 셸 안에서 파일을 읽으세요.

cat /etc/os-release

출력에서 다음 항목을 찾아보세요.

PRETTY_NAME="Kali GNU/Linux Rolling"
...
ID=kali
...

ID는 배포판을 식별하고, PRETTY_NAME은 사람이 읽기 쉬운 이름입니다. VERSION으로 시작하는 항목은 제공되는 경우 릴리스를 설명합니다. 예를 들어 VERSION_ID, VERSION, VERSION_CODENAME이 있습니다. 검증된 실습 이미지에는 현재 이 필드들이 있지만, 모든 Linux 배포판이 같은 버전 필드를 제공하는 것은 아닙니다. 튜토리얼의 버전을 복사하지 말고 실제로 표시되는 값을 읽으세요. ID가 ubuntu라면 아직 호스트에 있는 것입니다. kali를 실행한 다음 명령어를 다시 실행하세요.

Kali는 롤링 배포판이므로 소프트웨어가 시간에 따라 바뀝니다. 이 실습은 재현 가능한 연습을 위해 고정 이미지를 사용합니다. 환경을 식별하는 데 소프트웨어 업데이트나 업그레이드는 필요하지 않습니다. 최소 Kali 컨테이너에는 모든 보안 도구가 들어 있지도 않습니다.

명령어의 사용법을 알아볼 수 있도록 많은 프로그램이 --help 옵션을 제공합니다. 옵션은 요청하는 동작을 바꿉니다. --help는 파일을 읽는 대신 사용 정보를 요청합니다. cat으로 사용해 보세요.

cat --help

출력 앞부분에서 다음 내용을 볼 수 있습니다.

Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

[FILE]은 파일 경로를 나타내는 자리 표시자이며 그대로 입력할 텍스트가 아닙니다. 선택 사항은 대괄호로 표시합니다. 도움말은 파일 내용이 기본적으로 표준 출력으로 전달됨을 알려 줍니다. 지금까지 터미널에서 읽은 것이 바로 표준 출력입니다.

1단계에서 배운 >를 다시 사용해 출력을 저장하세요. 이번에는 직접 입력한 메시지가 아니라 실제 릴리스 정보가 명령어의 출력입니다.

cat /etc/os-release > kali-release.txt

이 명령어는 /etc/os-release를 읽고 프로젝트 디렉터리에 별도의 파일을 씁니다. 시스템 식별 파일은 바꾸지 않습니다. 저장한 기록을 읽으세요.

cat kali-release.txt

출력은 앞서 읽은 원본과 같아야 하며 ID=kali와 제공된 모든 VERSION 항목을 포함해야 합니다. 작은 파일 전체를 유지하면 아직 배우지 않은 필터링 명령어 없이도 원래 값과 따옴표를 보존할 수 있습니다. 이제 /home/labex/project/kali-release.txt에 읽을 수 있는 환경 기록이 있습니다.

요약

Ubuntu 호스트에서 준비된 Kali 컨테이너에 들어가 일반 사용자 프롬프트를 알아보고, 사용자와 작업 디렉터리를 확인했습니다. 텍스트 파일을 만들고 읽었으며, cat --help를 사용하고 Kali의 실제 릴리스 정보를 공유 작업 공간에 저장했습니다.

짝을 이루는 챌린지에서는 새로 준비된 독립 환경에서 같은 기술로 정확한 릴리스 기록을 작성합니다.