전체 글 139

Linux systemd 완전 정복하기

systemd리눅스 시스템 관리에 있어서 systemd는 중요한 구성 요소 중 하나입니다. 이 글에서는 systemd가 무엇인지, 그리고 systemd에서 사용하는 유닛 파일들에 대해 자세히 알아보겠습니다.systemd란? systemd는 리눅스 시스템과 서비스 관리자로, 초기화 시스템(init), 시스템 서비스 관리자, 그리고 세션 관리자의 역할을 합니다. 대부분의 최신 리눅스 배포판에서는 기본 초기화 시스템으로 systemd를 사용합니다. systemd는 시스템의 부팅 과정을 책임지며, 시스템이 가동되는 동안 서비스들을 시작, 중지, 관리합니다.systemd의 주요 기능병렬 처리: systemd는 서비스들을 병렬로 시작합니다. 이는 시스템의 부팅 시간을 단축시킵니다.유닛 파일: 서비스, 소켓, 디바이..

Linux 2024.05.07

Linux 부팅 프로세스

Linux 부팅 프로세스모던 리눅스에서 소개되는 리눅스 부팅 프로세스에 대해 자세하게 설명하고자 합니다. 리눅스의 부트 프로세스는 일반적으로 하드웨어와 커널이 함께 동작하는 여러 단계의 작업으로 구성됩니다.컴퓨터의 전원이 켜진 순간부터 리눅스 운영체제가 완전히 시작될 때까지 아래의 일련의 단계로 구성됩니다.1단계: BIOS/UEFI컴퓨터의 전원이 켜지면 BIOS(Basic Input/Output System) 또는 UEFI(Unified Extensible Firmware Interface)가 활성화됩니다. 이 펌웨어 소프트웨어는 하드웨어를 초기화하고 전원 켜기 자가 진단(POST / Power On Self Test)을 수행하여 컴퓨터의 기본 하드웨어가 제대로 작동하는지 확인합니다.2단계: 부트로더BI..

Linux 2024.05.07

Linux 접근 제어 목록(ACL) 이란?

접근 제어 목록(ACL)Access Control List (ACL)는 파일과 디렉토리에 대해 세분화된 사용자 및 그룹 권한을 설정할 수 있게 해주는 기능입니다. 기본적인 리눅스 권한 시스템은 소유자, 그룹, 기타에 대한 권한을 제공하는 반면, ACL을 통해서는 특정 사용자 또는 그룹에 대해 더 구체적인 권한을 부여할 수 있습니다.ACL 사용을 위한 준비대부분의 현대 리눅스 배포판은 ACL을 지원하지만, getfacl 및 setfacl 명령어를 사용하기 위해서는 acl 패키지를 설치해야 합니다. Ubuntu에서는 다음 명령어로 설치할 수 있습니다:$ sudo apt-get update$ sudo apt-get install aclACL 설정 방법ACL 설정 확인: 파일이나 디렉토리에 대한 현재 ACL 설..

Linux 2024.05.03

Linux seccomp 프로필과 접근제어목록(ACL)이란?

seccomp 프로필seccomp 는 보안 컴퓨팅 모드(secure computing mode)로 2005년부터 사용할 수 있게 된 리눅스 커널 기능중 하나입니다.샌드박스의 기술의 기본 개념인 seccomp라는 전용 시스템 콜을 통해 프로세스가 사용할 수 있는 시스템 콜을 제한할 수 있습니다. 컨테이너와 관련되어서는 Docker와 Kubernetes 모두 seccomp를 지원하고 있습니다. 다양한 Seccomp 프로필 작성 방법Seccomp 프로필은 JSON 형식으로 작성되며, 주로 다음과 같은 구조를 가집니다:defaultAction: 기본적으로 적용할 행동 (SCMP_ACT_ALLOW, SCMP_ACT_ERRNO 등)architectures: 프로필이 적용될 아키텍처syscalls: 시스템 호출에 대..

Linux 2024.05.03

Linux Capability 란?

리눅스에서 Capability과 Seccomp profile는 시스템 보안 강화를 위한 중요한 메커니즘입니다. 두 기능 모두 프로세스가 운영체제와 상호작용하는 방식을 제한함으로써 보안을 향상시킬 수 있습니다. 이번 글에서는 우선 Capability에 대해 설명하도록 하겠습니다. Capability전통적인 Unix-like 시스템에서, root 계정(UID 0)은 모든 권한을 가지고 있습니다. 이는 매우 강력하지만, 만약 root 권한을 가진 프로세스가 취약점을 갖고 있다면 시스템은 큰 위험에 노출될 수 있습니다. 리눅스 Capabilities는 root 권한을 더 세밀하게 분할하여, 특정 권한만을 프로세스에 부여할 수 있게 합니다. 예를 들어, 네트워크 소켓을 열 수 있는 권한, 시스템 시간을 변경할 수..

Linux 2024.05.02

RUID EUID SUID 란?

"모던리눅스 교과서" 책을 읽던 중 RUID, EUID, SUID 에 대해 읽게 되었는데 이해를 위해 좀 더 찾아보고 정리하는 글입니다.RUID (Real User ID)RUID는 프로세스를 실행시킨 실제 사용자의 ID입니다. 이는 사용자가 시스템에 로그인할 때 할당되고, 대부분의 경우에 변경되지 않습니다.EUID (Effective User ID)프로세스가 시스템 리소스에 접근할 때 사용하는 ID입니다. EUID는 특히 파일이나 다른 시스템 리소스에 접근 권한을 체크할 때 중요하게 사용됩니다. 만약 어떤 프로그램이 SUID 비트가 설정된 상태로 실행된다면, 그 프로그램의 EUID는 프로그램의 소유자 ID로 설정됩니다.SUID (Set-user-ID)특수한 접근 권한으로, 파일을 실행할 때 실행 파일의 ..

Linux 2024.05.02

Terraform 사용하여 GKE Cluster 배포하기

2024.04.04 - [GKE Project] - Terraform을 사용하여 GKE(Google Kubernetes Engine) 배포 이전에 준비했던 사전 설정에 이어서 진행한다. 1. API 활성화 우선 GKE Clsuter API와 Compute API 를 활성화 하기 위해 아래 과정을 진행해줍니다. # 이전 포스팅에서 설정한 config에서 Project id값을 불러와 변수로 설정한다. $ GCP_PROJECT_ID=$(gcloud config list | grep project | awk '{print $3}') # 변수 설정을 확인해본다. $ echo $GCP_PROJECT_ID # GCP compute, container API 활성화 $ gcloud services enable com..

GKE Project 2024.04.15

Terraform을 사용하여 GKE(Google Kubernetes Engine) 배포 - 사전 준비

GCP에서 제공하는 300달러 크래딧으로 토이 프로젝트를 진행하려는데 GKE를 계속 띄워두자니 크래딧을 너무 빨리 소모할 것 같다. Terraform도 사용해보고 IaC을 사용해서 손쉽게 올리고 내리기 위해 우선 Terraform으로 GKE를 구성해보고자 글을 작성한다. 1. WSL에 gcloud SDK 설치 및 계정 등록 # WSL2 / Ubuntu 22.04 에 설치 진행 # Cloud SDK 를 사용하기 위해서는 Python 설치가 필수이므로 Python3를 아래와 같이 설치 진행합니다. $ sudo apt update $ sudo apt install -y python3 python3-pip # 이어서 gcloud 설치를 진행합니다. $ curl https://sdk.cloud.google.com..

GKE Project 2024.04.04

DevOps를 위한 쿠버네티스 마스터 강의 정리(2)

아래 강의에서 필요하거나 핵심적인 내용만 정리하였습니다. https://inf.run/wAfB2 데브옵스(DevOps)를 위한 쿠버네티스 마스터 강의 - 인프런 컨테이너 기반 오픈 소스 가상화 프로젝트인 "쿠버네티스"를 이용한 컨테이너 환경의 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 활용하는 방법을 입문부터 활용까지 다룹니다., [ www.inflearn.com - 범위: 색션 0: 하이퍼바이저와 가상 머신의 이해 ~ 도커와 쿠버네티스 이해 가상화란? 가상화는 전통적으로 하드웨어에 종속된 리소스를 사용하여 유용한 IT 서비스를 만드는 기술 가상화를 사용하면 물리적 머신의 기능을 여러 사용자 또느 ㄴ환경에 배포하여 물리적 머신을 최대한 활용 가능 가상화를 통해 기업은 서버를 파티셔닝하고 여러 ..

k8s 2024.03.12

DevOps를 위한 쿠버네티스 마스터 강의 정리(1)

아래 강의에서 필요하거나 핵심적인 내용만 정리하였습니다. https://inf.run/wAfB2 데브옵스(DevOps)를 위한 쿠버네티스 마스터 강의 - 인프런 컨테이너 기반 오픈 소스 가상화 프로젝트인 "쿠버네티스"를 이용한 컨테이너 환경의 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 활용하는 방법을 입문부터 활용까지 다룹니다., [ www.inflearn.com - 범위: 색션 0: 쿠버네티스 이슈 ~ 마이크로서비스 성공 사례-1 클라우드 네이티브란? 클라우드의 장점을 최대한 활용하여 정보 시스템을 구축 및 실행하는 환경 클라우드 네이티브 기술, 애플리케이션, 아키텍처, 개발 방법론, 조직, 프로세스 등 다양한 용어와 결합하여 다양한 의미로 사용 쿠버네티스는 클라우드 네이티브 구성요소를 완전..

k8s 2024.03.12