Kali에서 사용자 및 시스템 관리

LinuxBeginner
지금 연습하기

소개

이 실습에서는 사이버 보안과 침투 테스트에 널리 사용되는 플랫폼인 Kali Linux에서 사용자와 시스템을 관리하는 방법을 배웁니다. 직접 명령을 실행하면서 현재 사용자를 확인하고, root 권한으로 전환하고, 새 사용자를 생성하고, 시스템 프로세스를 모니터링하고, 시스템 로그를 확인하는 기본 명령을 익힙니다. 이러한 기술은 LabEx VM 환경에서 시스템을 효과적으로 관리하고 문제를 해결하는 데 필수적입니다. 터미널을 열면 Kali Linux 컨테이너의 셸에 자동으로 연결되므로 바로 실습을 시작할 수 있습니다.

whoami로 현재 사용자 확인

이 단계에서는 whoami 명령을 사용해 시스템에 로그인한 현재 사용자를 확인합니다. Kali Linux와 같은 Linux 시스템에서 현재 어떤 사용자 계정으로 작업하는지 아는 것은 기본적이면서도 중요한 기술입니다. 사용자 계정에 따라 명령을 실행할 수 있는 권한이 달라지기 때문입니다.

LabEx VM 환경에서 터미널을 열면 Kali Linux 컨테이너의 셸에 자동으로 연결됩니다. 컨테이너를 직접 시작하거나 셸에 수동으로 들어갈 필요가 없습니다. 환경이 이미 준비되어 있습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

whoami

이 명령은 현재 사용자의 사용자 이름을 표시합니다. 다음과 비슷한 출력이 나타납니다.

root

이 출력은 현재 Kali Linux 컨테이너에 root 사용자로 로그인되어 있음을 의미합니다. 이 환경에서 root는 기본적으로 모든 관리 권한을 가집니다. 특정 권한이 필요한 작업을 수행하기 전에 현재 사용자를 확인하는 것이 중요합니다.

이 간단한 명령은 사용자 관리의 기초가 됩니다. 다음 단계부터는 권한을 관리하고 추가 사용자를 생성하는 방법을 살펴봅니다. 계속하기 전에 예상한 출력이 표시되는지 확인합니다.

도구 설치를 위한 패키지 목록 업데이트

이 단계에서는 사용자 관리와 시스템 모니터링 작업을 진행하기 전에 Kali Linux 컨테이너의 패키지 목록을 업데이트합니다. 이 준비 작업을 수행하면 이후 소프트웨어 설치가 원활하게 진행됩니다.

Kali Linux 컨테이너의 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

apt update

이 명령은 구성된 저장소에서 패키지 목록을 새로 가져옵니다. 이를 통해 최신 소프트웨어 패키지 정보를 사용할 수 있습니다. 다음과 비슷한 출력이 나타납니다. 정확한 내용은 다를 수 있습니다.

Get:1 http://mirrors.cloud.aliyuncs.com/kali kali-rolling InRelease [41.2 kB]
Get:2 http://mirrors.cloud.aliyuncs.com/kali kali-rolling/main amd64 Packages [19.1 MB]
...
Fetched 19.5 MB in 5s (3,912 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

이 출력은 시스템이 최신 패키지 정보를 다운로드하고 있음을 보여 줍니다. 명령이 완료되면 오래된 패키지 데이터로 인한 문제 없이 필요한 도구를 설치할 수 있습니다. 다음 작업에서 소프트웨어를 설치하기 전에 수행해야 하는 준비 단계입니다.

adduser로 새 사용자 추가

이 단계에서는 패키지 목록을 업데이트했으므로 adduser 명령을 사용해 Kali Linux 컨테이너에 새 사용자를 생성합니다. 새 사용자를 생성하면 시스템에서 여러 사용자나 역할에 따라 접근 권한과 권한 설정을 관리할 수 있습니다.

adduser 명령은 Linux에서 새 사용자 계정을 설정하기 쉽게 해 주는 도구입니다. 대화형 과정에 따라 사용자의 비밀번호와 기타 정보를 설정하므로 초보자에게 적합합니다. 현재 컨테이너에 root 사용자로 로그인되어 있으므로 이 작업을 수행하는 데 필요한 권한을 이미 가지고 있습니다.

아직 설치되지 않았다면 adduser를 설치합니다.

apt install -y adduser

터미널에 다음 명령을 입력하고 Enter 키를 눌러 testuser라는 새 사용자를 추가합니다.

adduser testuser

다음 설명에 따라 대화형 프롬프트에 응답합니다. 입력은 최소화하되 각 단계를 반드시 완료합니다.

  • Enter new UNIX password: test123과 같은 간단한 비밀번호를 입력하고 Enter 키를 누릅니다. 보안상의 이유로 입력한 문자는 화면에 표시되지 않습니다.
  • Retype new UNIX password: 같은 비밀번호 test123을 다시 입력하고 Enter 키를 누릅니다.
  • Full Name, Room Number, Work Phone, Home Phone, Other: 각 항목에서 Enter 키를 눌러 건너뜁니다.
  • Is the information correct? [Y/n]: Y를 입력하고 Enter 키를 눌러 확인합니다.

다음과 비슷한 출력이 나타납니다. 세부 내용은 조금 다를 수 있습니다.

Adding user 'testuser' ...
Adding new group 'testuser' (1000) ...
Adding new user 'testuser' (1000) with group 'testuser' ...
Creating home directory '/home/testuser' ...
Copying files from '/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
    Full Name []:
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Is the information correct? [Y/n] Y

이 출력은 testuser 사용자와 홈 디렉터리 및 필요한 설정이 생성되었음을 확인해 줍니다. 사용자가 존재하는지 확인하려면 다음 명령을 입력하고 Enter 키를 누릅니다.

id testuser

다음과 비슷한 출력이 나타납니다.

uid=1000(testuser) gid=1000(testuser) groups=1000(testuser)

이 출력은 testuser에 고유한 사용자 ID와 그룹 ID가 설정되었음을 확인해 줍니다. 사용자를 추가하면 root 계정에만 의존하지 않고 접근 권한을 관리할 수 있으므로 시스템 보안을 강화하는 데 도움이 됩니다. 이제 사용자가 생성되었으므로 다음 단계에서 더 많은 관리 작업을 수행할 수 있습니다.

top으로 시스템 프로세스 모니터링

이 단계에서는 새 사용자를 생성했으므로 top 명령을 사용해 Kali Linux 컨테이너에서 실행 중인 프로세스를 모니터링합니다. 이 도구를 사용하면 시스템 성능과 리소스 사용량을 파악할 수 있습니다.

top 명령은 시스템에서 실행 중인 프로세스를 실시간으로 대화형 화면에 표시합니다. CPU 사용량, 메모리 사용량, 프로세스 상태 등을 보여 주므로 성능 문제를 해결하는 데 유용합니다. 현재 root 사용자로 작업하고 있으므로 추가 권한 없이 이 명령을 직접 실행할 수 있습니다.

아직 설치되지 않았다면 top을 설치합니다.

apt install -y procps

터미널에 다음 명령을 입력하고 Enter 키를 눌러 프로세스 모니터링을 시작합니다.

top

명령을 실행하면 터미널에 정보가 계속 갱신되는 표가 표시됩니다. 다음과 비슷한 화면이 나타납니다. 실행 중인 프로세스와 값은 달라질 수 있습니다.

%Cpu(s):  1.0 us,  0.5 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   2048.0 total,    512.3 used,   1535.7 free,     10.2 shared,    200.1 buff/cache
MiB Swap:    512.0 total,      0.0 used,    512.0 free

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    1 root      20   0   12345   2345   1234 S   0.0   0.1   0:01.23 init
  123 root      20   0   54321   9876   4321 S   0.0   0.5   0:00.45 bash

top 출력에서 주요 항목은 다음과 같습니다. %Cpu(s)는 CPU 사용량의 세부 내역을, MiB Mem은 메모리 사용량을, PID는 프로세스 ID를, %CPU%MEM은 리소스 사용률을, COMMAND는 프로세스 이름을 나타냅니다. 이 정보를 사용하면 현재 시스템에서 실행 중인 항목과 리소스를 많이 사용하는 프로세스를 확인할 수 있습니다.

top 화면을 종료하고 터미널 프롬프트로 돌아가려면 키보드에서 q 키를 누릅니다. 프로세스 모니터링은 시스템 상태를 관리하는 데 중요한 기술입니다. 이제 다음 단계에서 시스템 로그를 확인할 준비가 되었습니다.

dmesg와 tail로 시스템 로그 확인

이 단계에서는 dmesgtail 명령을 사용해 Kali Linux 컨테이너의 시스템 로그를 확인합니다. 로그에는 시스템 이벤트에 대한 자세한 정보가 기록되어 있어 문제를 해결하고 시스템 동작을 이해하는 데 유용합니다.

이 실습은 systemd를 사용할 수 없는 Docker 컨테이너에서 진행되므로 시스템 로그를 확인할 때 다른 방법을 사용합니다. dmesg 명령은 커널 관련 메시지를 표시하고, tail은 다양한 로그 파일을 직접 확인하는 데 사용할 수 있습니다.

먼저 필요한 도구를 설치합니다.

apt install -y util-linux

커널 메시지를 확인하려면 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

dmesg

다음과 비슷한 출력이 나타납니다. 정확한 내용은 달라질 수 있습니다.

[    0.000000] Linux version 5.10.0-18-amd64 ...
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.10.0-18-amd64 ...
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'

syslog에서 가장 최근의 시스템 메시지를 확인하려면 다음 명령을 사용할 수 있습니다.

tail -f /var/log/syslog

syslog 파일이 없으면 다음 명령으로 다른 일반 로그 파일을 확인할 수 있습니다.

ls -l /var/log/

이 명령은 시스템에서 사용할 수 있는 로그 파일을 보여 줍니다. 그런 다음 tail 명령으로 특정 로그 파일을 확인할 수 있습니다.

tail -n 20 /var/log/messages

-n 20 옵션은 로그 파일의 마지막 20줄을 표시합니다. tail -f 명령을 종료하려면 Ctrl+C를 누릅니다.

이 명령은 시스템 활동을 서로 다른 관점에서 보여 줍니다.

  • dmesg는 커널 메시지와 부팅 시점 정보를 중점적으로 표시합니다.
  • 로그 파일과 함께 사용하는 tail은 계속 발생하는 시스템 이벤트와 애플리케이션 로그를 보여 줍니다.

systemd의 journalctl만큼 포괄적이지는 않지만, 이 도구들도 시스템 동작을 파악하는 데 유용하며 컨테이너 환경에 적합합니다.

요약

이 실습에서는 Kali Linux에서 사용자와 시스템을 관리하는 데 필요한 기본 기술을 익혔습니다. 먼저 whoami로 현재 사용자를 확인하고, 설치를 준비하기 위해 apt update로 패키지 목록을 업데이트했으며, adduser로 새 사용자를 생성해 접근 권한을 관리했습니다. 또한 top으로 시스템 프로세스를 모니터링해 리소스 사용량을 파악하고, dmesgtail로 시스템 로그를 확인해 시스템 이벤트를 분석했습니다. 이러한 기초 기술은 Linux 환경에서 시스템을 효과적으로 관리하고 문제를 해결하는 데 도움이 됩니다.