리버스 쉘 이해하기

서론 리버스 쉘은 일반적인 연결 방향과 반대로 작동하는 원격 쉘 기법이다. 대상 시스템이 공격자의 시스템으로 연결을 시도해 원격 명령 실행을 가능하게 한다. 방화벽과 NAT 환경에서 특히 유용한데, 대부분의 방화벽이 들어오는 연결은 차단하지만 나가는 연결은 허용하기 때문이다. 작동 원리 리버스 쉘이 작동하는 기본 흐름은 다음과 같다: 공격자는 자신의 시스템에서 특정 포트의 연결을 수신하는 리스너를 설정한다 대상 시스템에서 실행된 코드가 공격자 시스템으로 연결을 시도한다 대상 시스템의 입출력이 공격자에게 전달된다 공격자는 대상 시스템에 명령을 실행하고 결과를 확인할 수 있다 일반적인 원격 접속은 ‘공격자가 대상 시스템에 접속하는’ 형태지만, 리버스 쉘은 ‘대상 시스템이 공격자에게 연결해오도록 만드는’ 방식이다. 이런 역방향 연결이 방화벽을 우회하는 열쇠가 된다. ...

4월 27, 2025 · 5 분 · 955 단어 · In-Jun Hwang

홈랩 #9 - 모니터링 시스템 구축하기

개요 이전 글에서는 CI/CD 시스템을 완성하고 프로젝트 자동화 시스템을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터를 모니터링하기 위한 기본 시스템을 구축하는 방법을 알아본다. Prometheus와 Grafana를 설치하고 기본 대시보드를 활용하여 클러스터 상태를 한눈에 볼 수 있도록 구성할 것이다. 또한 로그 수집을 위한 Loki를 설치하여 통합 모니터링 환경을 구성한다. 모니터링의 필요성 홈랩 쿠버네티스 클러스터를 운영하다 보면 다음과 같은 정보를 주기적으로 확인해야 한다: 클러스터 상태: 노드, 파드, 배포 등의 상태 리소스 사용량: CPU, 메모리, 디스크, 네트워크 사용량 애플리케이션 상태: 파드의 정상 작동 여부 시스템 로그: 문제 발생 시 원인 파악을 위한 로그 데이터 이런 정보를 시각적으로 모니터링하기 위해 다음 도구들을 사용한다: ...

2월 28, 2025 · 6 분 · 1120 단어 · In-Jun Hwang

홈랩 #8 - CI/CD 구축해서 배포 자동화하기 (2)

개요 이전 글에서는 CI/CD 시스템의 핵심 구성 요소인 Harbor 레지스트리, Argo Events, Argo Workflows를 설치했다. 이번 글에서는 이 세 가지 구성 요소와 기존에 설치한 ArgoCD를 통합하여 완전한 CI/CD 파이프라인을 완성하고, GitOps 기반의 프로젝트 자동화 시스템을 구축하는 방법을 알아본다. CI/CD와 GitOps의 통합 기존 CI 시스템과 GitOps의 통합은 자연스러운 진화 과정이다. 기존의 CI는 코드 변경을 감지하여 빌드하고 테스트하는 데 중점을 두었다면, GitOps는 배포 상태를 선언적으로 관리하고 자동으로 동기화하는 데 중점을 둔다. 이 두 가지를 결합하면 코드 변경부터 자동 배포까지 완전 자동화된 파이프라인을 구축할 수 있다. ...

2월 28, 2025 · 15 분 · 3192 단어 · In-Jun Hwang

홈랩 #7 - CI/CD 구축해서 배포 자동화하기 (1)

개요 이전 글에서는 홈랩 쿠버네티스 클러스터에 Vault를 설치하고 시크릿 관리 시스템을 구축했다. 이번 글에서는 CI/CD 시스템의 기반이 되는 세 가지 핵심 컴포넌트인 Harbor 레지스트리, Argo Events, Argo Workflows를 설치하고 기본 설정하는 방법을 알아본다. CI/CD 시스템의 구성 요소 홈랩 환경에서 완전한 CI/CD 파이프라인을 구축하기 위해서는 다음과 같은 핵심 컴포넌트들이 필요하다: 컨테이너 레지스트리: 빌드된 이미지를 저장하고 관리하는 저장소 이벤트 처리 시스템: 코드 변경 등의 이벤트를 감지하고 처리하는 시스템 워크플로우 엔진: 빌드, 테스트, 배포 등의 작업을 실행하는 엔진 선언적 배포 시스템: 배포 상태를 관리하고 동기화하는 시스템 이 중 4번(선언적 배포 시스템)은 이미 이전 글에서 설치한 ArgoCD가 담당한다. 이번 글에서는 나머지 세 가지 컴포넌트를 설치하고 구성한다. ...

2월 28, 2025 · 8 분 · 1584 단어 · In-Jun Hwang

홈랩 #6 - Vault를 활용한 시크릿 관리

개요 이전 글에서는 홈랩 쿠버네티스 클러스터에 Traefik 인그레스 컨트롤러를 설치하고 외부 접근을 구성했다. 이번 글에서는 쿠버네티스 클러스터에서 민감한 정보(비밀번호, API 키, 인증서 등)를 안전하게 관리하기 위한 HashiCorp Vault 설치와 구성 방법을 다룬다. 왜 기본 쿠버네티스 시크릿으로는 부족했나? GitOps 방식으로 홈랩 환경을 구성하면서 시크릿 관리가 난제였다. 기본 쿠버네티스 Secret을 사용해보니 몇 가지 한계가 명확했다. 첫째, GitOps와의 통합 문제다. Git에 시크릿을 그대로 저장할 수 없고, base64로 인코딩해도 쉽게 복원 가능해 보안에 취약하다. Sealed Secrets나 SOPS 같은 도구도 검토했으나 단순 암호화를 넘어선 종합적인 시크릿 관리 솔루션이 필요했다. ...

2월 26, 2025 · 11 분 · 2221 단어 · In-Jun Hwang