Kali Linux 에서 PostgreSQL 시작 방법

Kali LinuxBeginner
지금 연습하기

소개

사이버 보안 (Cybersecurity) 분야에서 데이터베이스 관리 (database management) 에 대한 깊은 이해는 매우 중요합니다. 이 튜토리얼은 인기 있는 오픈 소스 데이터베이스 관리 시스템 (database management system) 인 PostgreSQL 을 Kali Linux 플랫폼에서 설정하고 사용하는 과정을 안내합니다. 이 튜토리얼을 마치면 사이버 보안 관련 작업 및 프로젝트에 PostgreSQL 을 사용할 수 있는 지식을 갖추게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 고급 레벨의 실험이며 완료율은 40%입니다.학습자들로부터 98%의 긍정적인 리뷰율을 받았습니다.

PostgreSQL 소개

PostgreSQL 은 Postgres 라고도 알려져 있으며, 다양한 산업 및 애플리케이션에서 널리 사용되는 강력한 오픈 소스 관계형 데이터베이스 관리 시스템 (RDBMS) 입니다. 강력한 기능, 안정성 및 SQL (Structured Query Language) 표준 준수로 유명합니다.

PostgreSQL 은 구조화된 데이터와 비구조화된 데이터를 포함한 광범위한 데이터 유형을 처리하도록 설계되어 다양한 사용 사례에 적합합니다. 트랜잭션 (transactions), 동시성 제어 (concurrency control), 데이터 무결성 (data integrity) 과 같은 고급 기능을 지원하여 데이터의 안정성과 일관성을 보장합니다.

PostgreSQL 의 주요 장점 중 하나는 확장성 (extensibility) 입니다. 사용자는 사용자 정의 데이터 유형, 함수, 심지어 프로그래밍 언어까지 생성할 수 있어 특정 비즈니스 요구 사항에 매우 적합합니다. 또한 PostgreSQL 은 역할 기반 액세스 제어 (role-based access control) 및 암호화 (encryption) 와 같은 고급 보안 기능을 제공하여 무단 액세스로부터 데이터를 보호합니다.

graph TD A[PostgreSQL] --> B[Relational Database] B --> C[SQL Compliance] B --> D[Data Types] B --> E[Transactions] B --> F[Concurrency Control] B --> G[Data Integrity] B --> H[Extensibility] B --> I[Security]

PostgreSQL 은 다음과 같은 광범위한 응용 분야를 가지고 있습니다.

응용 분야 설명
웹 애플리케이션 전자 상거래 플랫폼, 콘텐츠 관리 시스템 및 소셜 미디어 플랫폼과 같은 웹 기반 애플리케이션의 데이터 저장 및 관리.
비즈니스 인텔리전스 비즈니스 인텔리전스 및 의사 결정을 위해 대규모 데이터 세트를 저장하고 분석.
지리 공간 애플리케이션 위치 기반 서비스 및 지리 정보 시스템 (GIS) 과 같은 지리 공간 데이터 처리.
과학 및 연구 유전체 데이터, 천문 관측 및 환경 모니터링과 같은 과학 데이터 저장 및 분석.

PostgreSQL 의 기본 사항을 이해함으로써 강력한 기능을 활용하여 데이터 관리 요구 사항을 충족하는 강력하고 확장 가능한 애플리케이션을 구축할 수 있습니다.

Kali Linux 에 PostgreSQL 설치하기

Kali Linux 는 Debian 을 기반으로 하는 인기 있는 침투 테스트 및 윤리적 해킹 배포판입니다. Kali Linux 는 주로 보안 관련 도구에 중점을 두고 있지만, 데이터베이스 관리, 데이터 분석, 보안 관련 애플리케이션과의 통합 등 다양한 목적으로 PostgreSQL 의 설치 및 사용을 지원합니다.

터미널을 열면 자동으로 Kali Linux 컨테이너 셸에 들어갑니다. 다음 모든 명령은 이 Kali Linux 환경 내에서 실행해야 합니다.

먼저, 사용 가능한 패키지에 대한 최신 정보를 얻기 위해 패키지 목록을 업데이트합니다.

apt-get update

다음으로, PostgreSQL 패키지를 설치합니다. 이 명령은 PostgreSQL 서버 및 클라이언트 도구를 다운로드하여 설치합니다.

apt-get install -y postgresql postgresql-contrib

-y 플래그는 설치를 자동으로 확인하므로, 프롬프트가 표시될 때 'y'를 입력할 필요가 없습니다. postgresql-contrib 패키지에는 PostgreSQL 용 추가 유틸리티 및 확장 기능이 포함되어 있습니다.

설치가 완료된 후, 다음 명령을 실행하여 PostgreSQL 버전을 확인할 수 있습니다.

psql --version

이렇게 하면 설치된 PostgreSQL 버전이 표시되어 설치가 성공적으로 완료되었는지 확인할 수 있습니다.

PostgreSQL 시작 및 연결

PostgreSQL 을 설치한 후, 서비스는 일반적으로 자동으로 시작됩니다. 그러나 Docker 컨테이너 환경 내에서는 서비스를 수동으로 시작하거나 실행 중인지 확인해야 할 수 있습니다.

Kali Linux 컨테이너 내에서 PostgreSQL 서비스를 시작하려면 다음 명령을 사용하십시오.

service postgresql start

이 명령은 PostgreSQL 데이터베이스 서버 프로세스를 시작합니다.

서비스가 실행되면 psql 명령줄 도구를 사용하여 PostgreSQL 데이터베이스에 연결할 수 있습니다. 기본적으로 PostgreSQL 은 슈퍼유저 권한을 가진 postgres라는 사용자를 생성합니다. 이 사용자로 전환한 다음 데이터베이스에 연결할 수 있습니다.

su - postgres

이 명령은 현재 사용자를 postgres로 전환합니다. 이제 postgres 사용자의 홈 디렉토리에 있게 됩니다.

이제 psql을 입력하여 PostgreSQL 대화형 터미널에 연결합니다.

psql

postgres=#와 같은 PostgreSQL 프롬프트를 볼 수 있습니다. 이는 postgres 사용자로 PostgreSQL 데이터베이스에 성공적으로 연결되었음을 나타냅니다.

PostgreSQL connection verification

연결을 확인하고 사용 가능한 데이터베이스를 보려면 psql 프롬프트 내에서 \l 명령을 사용할 수 있습니다.

\l

이 명령은 PostgreSQL 인스턴스에 있는 모든 데이터베이스를 나열합니다. postgres, template0, template1과 같은 기본 데이터베이스를 볼 수 있습니다.

psql 프롬프트를 종료하려면 \q를 입력하고 Enter 키를 누릅니다.

\q

postgres 사용자 세션을 종료하고 루트 사용자 (또는 이전 사용자) 로 돌아가려면 exit를 입력하고 Enter 키를 누릅니다.

exit

이제 Kali Linux 컨테이너 셸로 돌아왔습니다.

데이터베이스 생성 및 관리

이제 PostgreSQL 에 연결할 수 있으므로, 새로운 데이터베이스와 그 안에 간단한 테이블을 만들어 보겠습니다.

먼저, 데이터베이스 작업을 수행하기 위해 postgres 사용자로 다시 전환합니다.

su - postgres

psql 프롬프트에 연결합니다.

psql

psql 프롬프트 내에서 cyberdb라는 새 데이터베이스를 생성합니다.

CREATE DATABASE cyberdb;

CREATE DATABASE와 같은 메시지가 표시됩니다.

이제 새로 생성된 데이터베이스에 연결합니다. \c를 입력하고 데이터베이스 이름을 입력하여 이 작업을 수행할 수 있습니다.

\c cyberdb

프롬프트가 cyberdb=#로 변경되어 현재 cyberdb 데이터베이스에 연결되어 있음을 나타냅니다.

다음으로, cyberdb 데이터베이스 내에 users라는 간단한 테이블을 만들어 보겠습니다. 이 테이블은 ID, 사용자 이름 및 이메일을 포함한 사용자 정보를 저장합니다.

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

이 명령은 세 개의 열이 있는 테이블을 생성합니다.

  • id: 기본 키 역할을 하는 자동 증가 정수입니다.
  • username: 최대 50 자 길이의 문자열로, 고유해야 하며 비어 있을 수 없습니다.
  • email: 최대 100 자 길이의 문자열로, 고유해야 하며 비어 있을 수 없습니다.

CREATE TABLE과 같은 메시지가 표시됩니다.

테이블이 생성되었는지 확인하려면 \dt 명령을 사용하여 현재 데이터베이스의 테이블을 나열할 수 있습니다.

\dt

그러면 cyberdb 데이터베이스의 테이블 목록이 표시되고, users 테이블이 나열된 것을 볼 수 있습니다.

마지막으로, psql 프롬프트와 postgres 사용자 세션을 종료합니다.

\q
exit

이제 Kali Linux 컨테이너 셸로 돌아왔습니다.

Steps to create and manage database

데이터 삽입 및 쿼리

이제 데이터베이스와 테이블이 있으므로, users 테이블에 데이터를 삽입한 다음 쿼리해 보겠습니다.

먼저, postgres 사용자로 다시 전환하고 cyberdb 데이터베이스에 연결합니다.

su - postgres
psql -d cyberdb

이제 cyberdb 데이터베이스에 연결되었습니다.

INSERT INTO 명령을 사용하여 users 테이블에 새 사용자를 삽입합니다.

INSERT INTO users (username, email) VALUES ('labex', 'info@labex.io');

INSERT 0 1과 같은 메시지가 표시되어 한 행이 성공적으로 삽입되었음을 나타냅니다.

이제 다른 사용자를 삽입해 보겠습니다.

INSERT INTO users (username, email) VALUES ('kaliuser', 'kali@example.com');

다시 INSERT 0 1이 표시됩니다.

users 테이블에서 모든 데이터를 검색하려면 SELECT 명령을 사용합니다.

SELECT * FROM users;

이 명령은 users 테이블의 모든 행과 열을 표시합니다. 방금 삽입한 두 명의 사용자를 볼 수 있습니다.

특정 열을 선택할 수도 있습니다.

SELECT username FROM users;

이렇게 하면 테이블에서 사용자 이름만 표시됩니다.

조건에 따라 특정 사용자를 선택하려면 WHERE 절을 사용합니다.

SELECT * FROM users WHERE username = 'labex';

이렇게 하면 사용자 이름이 'labex'인 행이 검색됩니다.

마지막으로, psql 프롬프트와 postgres 사용자 세션을 종료합니다.

\q
exit

이제 Kali Linux 컨테이너 셸로 돌아왔습니다.

Illustration for data operations in SQL

요약

이 튜토리얼은 사이버 보안 분야에서 널리 사용되는 플랫폼인 Kali Linux 환경에서 PostgreSQL 데이터베이스를 설정하고 관리하는 방법에 대한 포괄적인 가이드를 제공했습니다. PostgreSQL 을 설치하고, 서비스를 시작하고, psql 명령줄 도구를 사용하여 데이터베이스에 연결하고, 새 데이터베이스와 테이블을 만들고, 데이터를 삽입하고 쿼리하는 방법을 배웠습니다. 설명된 단계를 따르면 이제 PostgreSQL 을 자신 있게 시작하여 사이버 보안 중심의 프로젝트 및 작업을 지원하는 기능을 활용할 수 있습니다. 이 지식을 통해 사이버 보안 기술을 더욱 향상시키고 사이버 보안 분야에서 데이터베이스 관리의 광대한 잠재력을 탐구할 수 있습니다.