UFW + fail2ban으로 Ubuntu 서버 보안 강화

UFW(Uncomplicated Firewall)는 iptables/nftables를 쉽게 다루기 위한 우분투 기본 방화벽 프론트엔드이고, fail2ban은 로그를 감시하다가 비정상적인 접속 시도가 반복되면 해당 IP를 자동으로 차단하는 침입 차단 도구다. UFW가 "어떤 포트를 열지"를 정한다면, fail2ban은…

Continue ReadingUFW + fail2ban으로 Ubuntu 서버 보안 강화

Kernel Debugging 옵션 정리

커널을 디버깅할 때 미리 켜두면 좋은 Kconfig 옵션들을 목적별로 정리한다. 대부분 CONFIG_DEBUG_KERNEL=y가 함께 켜져 있어야 메뉴에 노출되는 옵션들이다. KASAN KASAN(Kernel Address SANitizer)은 커널 메모리의 out-of-bounds 접근이나 use-after-free를 런타임에 탐지한다. CONFIG_KASAN=y…

Continue ReadingKernel Debugging 옵션 정리

Stack Protector 사용법

스택 기반 버퍼 오버플로우는 지역 변수에 정해진 크기보다 많은 데이터를 써서 스택에 저장된 return address까지 덮어쓰고, 함수가 리턴할 때 공격자가 원하는 코드로 실행 흐름을 옮기는 전형적인 취약점 패턴이다. 커널은 컴파일러가…

Continue ReadingStack Protector 사용법

cgroup v2 사용법

cgroup v2는 리눅스 커널에서 프로세스를 그룹화 하고, 각 그룹에 대해 리소스 할당/제한을 설정하는 기능을 제공한다. cgroup v1보다 간편하고 세밀한 제어를 지원한다. 계층적 구조를 지원하여 복잡한 리소스 관리를 더욱 효율적으로 수행할…

Continue Readingcgroup v2 사용법

EEVDF 스케줄러

Linux 6.6부터 기존의 CFS(Completely Fair Scheduler)를 대체하는 EEVDF(Earliest Eligible Virtual Deadline First) 스케줄러가 메인라인에 병합되었다. EEVDF는 1996년 Stoica & Zhang이 제안한 알고리즘을 기반으로 하며, CFS의 구조적 한계였던 레이턴시 불공정 문제를…

Continue ReadingEEVDF 스케줄러

Linux 메모리 관리 – 페이지 캐시와 스왑 동작 원리

Linux는 디스크 I/O 비용을 줄이기 위해 읽은 파일 데이터를 RAM에 보관한다. 이것이 페이지 캐시(Page Cache)다. 반대로 RAM이 부족해지면 잘 안 쓰는 메모리를 디스크로 밀어내는데, 이것이 스왑(Swap)이다. 두 메커니즘은 서로 긴밀하게…

Continue ReadingLinux 메모리 관리 – 페이지 캐시와 스왑 동작 원리

Ubuntu Server에 NoMachine으로 GUI 원격 접속하기

Ubuntu Server를 설치하는 방법은 아래 글을 참고한다. https://junorionblog.co.kr/ubuntu-24-04-lts-server-%ec%84%a4%ec%b9%98-%ea%b0%80%ec%9d%b4%eb%93%9c/ GUI가 없는 Ubuntu Server에 NoMachine을 설치해서 원격으로 데스크탑 환경에 접속하는 방법이다. NoMachine은 NX 프로토콜을 사용하며 VNC보다 빠르고 설정이 간단하다. 서버: 데스크탑 환경…

Continue ReadingUbuntu Server에 NoMachine으로 GUI 원격 접속하기