전체 글 284

CIS Benchmark 기반 정리 :: AppArmor vs SELinux

CIS Benchmark 기반 정리 :: AppArmor vs SELinux두 도구 복습둘 다 강제 접근 제어(MAC) 도구 — 파일 권한(rwx)보다 상위 레벨에서 프로세스가 접근 가능한 자원을 제한AppArmor: 우분투 계열 기본, 파일 경로 기반으로 정책 작성(이전 실습에서 이미 다룸)SELinux: 레드햇/CentOS 계열 기본, 레이블(라벨) 기반으로 훨씬 정교하지만 복잡경로 기반 vs 레이블 기반 차이AppArmor는 “/home/사용자/secret.txt 파일에 대한 접근을 허용”처럼 파일 경로 자체를 정책에 직접 명시SELinux는 모든 파일과 프로세스에 보이지 않는 라벨(컨텍스트)을 붙여두고, “이 라벨을 가진 프로세스는 저 라벨을 가진 파일에 접근 가능”이라는 식으로 라벨끼리의 관계로..

보안 2026.11.02

네트워크 기초 정리 :: RIP vs OSPF 경로 선택 방식 비교

네트워크 기초 정리 :: RIP vs OSPF 경로 선택 방식 비교RIP(Routing Information Protocol) 복습가장 오래된 동적 라우팅 프로토콜 중 하나. 경로를 선택하는 기준이 단 하나 — 홉 수(경유하는 라우터 개수)“라우터를 가장 적게 거치는 경로”를 무조건 최적 경로로 판단(그 경로의 실제 속도나 안정성은 전혀 고려 안 함)OSPF와의 근본적 차이RIP: 홉 수만 봄 — 3홉짜리 저속 회선과 2홉짜리 초고속 회선이 있으면, 무조건 2홉짜리를 선택(설령 그게 더 느려도)OSPF: 각 링크의 비용(대역폭 기반으로 자동 계산되는 cost)까지 고려해서 진짜 “효율적인” 경로를 선택이전 라우팅 심화 실습에서 다뤘던 메트릭 개념이 RIP에는 사실상 없는 셈 — 그래서 RIP는 소규모 네..

Network 2026.11.01

Kubernetes 보안 심화 :: NetworkPolicy로 Pod 간 통신 제한

Kubernetes 보안 심화 :: NetworkPolicy로 Pod 간 통신 제한NetworkPolicy란RBAC 실습에서는 “누가 API에 접근 가능한지(get, delete 같은 동작)“를 제한했는데, NetworkPolicy는 “어떤 Pod가 어떤 Pod와 네트워크 통신 가능한지”를 제한기본적으로 Kubernetes는 아무 정책이 없으면 모든 Pod가 서로 자유롭게 통신 가능 — VLAN 실습에서 다룬 “기본은 전부 열려있다”는 문제의식이 클러스터 내부에도 그대로 적용됨왜 필요한가웹 Pod가 뚫리면, 기본 상태에서는 그 Pod가 클러스터 안의 DB Pod든 다른 팀의 Pod든 다 접근할 수 있음VLAN 실습에서 웹서버망과 DB망을 물리적으로 나눴던 것처럼, NetworkPolicy는 Kuberne..

네트워크 기초 정리 :: DHCP 이중화와 네트워크 네임스페이스

네트워크 기초 정리 :: DHCP 이중화와 네트워크 네임스페이스DHCP Failover (DHCP 서버 이중화)왜 필요한가DHCP 서버가 하나뿐이면, 그 서버가 죽는 순간 새 기기들이 IP를 못 받아서 네트워크에 못 들어옴DHCP Failover는 DHCP 서버 두 대를 이중화해서, 하나가 죽어도 나머지가 계속 IP를 나눠주게 만드는 구성VM 구성VM 1 — Primary DHCP 서버 (192.168.50.5)VM 2 — Secondary DHCP 서버 (192.168.50.6)Primary 서버 설정 파일에 failover 블록 추가vi /etc/dhcp/dhcpd.conffailover peer “dhcp-failover” {primary;address 192.168.50.5;port 647;pee..

Network 2026.10.26

네트워크 기초 정리 :: BGP 소규모 피어링 실습

네트워크 기초 정리 :: BGP 소규모 피어링 실습BGP(Border Gateway Protocol) 복습인터넷 전체를 구성하는 핵심 라우팅 프로토콜, AS(Autonomous System, 자율 시스템) 간의 경로를 결정OSPF와 근본적으로 다른 철학 — OSPF는 “가장 빠른 경로”를 자동으로 계산하지만, BGP는 라우터 관리자가 정책으로 “어떤 경로를 선호할지” 직접 결정할 수 있음이번 실습의 한계진짜 인터넷 규모의 BGP는 재현 불가능 — AS 번호도 실제 등록된 것 대신 사설로 예약된 번호(64512~65534)를 임의로 사용BGP 프로토콜 자체가 어떻게 동작하는지, 핵심 원리를 소규모로 확인하는 목적VM 구성 (임의의 AS 번호 부여)VM 1 — 라우터 A, AS 65001 (192.168.1..

Network 2026.10.24

네트워크 기초 정리 :: NTP (시간 동기화 프로토콜)

네트워크 기초 정리 :: NTP (시간 동기화 프로토콜)NTP(Network Time Protocol): 네트워크에 연결된 장비들의 시간을 정확하게 맞춰주는 프로토콜중요성: 시스템 내부 시계는 수정 발진자를 기반으로 동작하는데, 온도나 하드웨어 특성에 따라 조금씩 빨라지거나 느려짐방치하면 하루에 몇 초에서 몇십 초까지도 어긋날 수 있어서버 여러 대를 운영할 때, 각 서버 시계가 제각각이면 여러 문제 발생시간이 안 맞으면 생기는 문제1. 로그 타임스탬프 왜곡모든 로그(auth.log, access.log, journalctl 등)는 이벤트가 발생한 시각을 기록하는데, 서버 시간 자체가 틀어져 있으면 그 기록도 실제 시각과 다르게 남음특정 시간대에 몰린 요청 확인이나 사고 발생 추정 시점 전후 로그 조회 같..

Network 2026.10.22

Kubernetes 보안 정리 :: RBAC(Role-Based Access Control)

Kubernetes 보안 정리 :: RBAC(Role-Based Access Control)RBAC(Role-Based Access Control): 역할(Role) 기반으로 권한을 부여하는 방식으로, 사용자에게 직접 권한을 주는 대신 “이런 역할은 이런 걸 할 수 있다”를 먼저 정의하고 사용자를 그 역할에 연결함기본 구성 요소1. Role: 특정 네임스페이스 안에서 어떤 리소스에 어떤 동작(get, list, create, delete 등)을 허용할지 정의2. ClusterRole: Role과 비슷하지만 특정 네임스페이스에 국한되지 않고 클러스터 전체에 적용3. RoleBinding: 특정 Role을 특정 사용자나 서비스 계정에 실제로 연결4. ClusterRoleBinding: ClusterRole을..

SQL 기초 실습 :: 비밀번호 정책 점검

SQL 기초 실습 :: 비밀번호 정책 점검비밀번호 정책의 필요성계정 생성 시 아무 비밀번호나 허용하면 사용자가 약한 비밀번호를 사용함DB 레벨에서부터 비밀번호 복잡도를 강제하면, 애플리케이션이 따로 검증하지 않아도 최소한의 방어선이 생김플러그인 설치sudo mysqlINSTALL SONAME 'simple_password_check';설치 확인SHOW PLUGINS;SHOW VARIABLES LIKE 'simple_password_check%';결과로 아래 항목들이 값과 함께 출력simple_password_check_minimal_length: 최소 길이simple_password_check_letters_same_case: 대문자/소문자 각각 최소 개수simple_password_check_digit..