1. 프로세스 관리
프로세스(Process)는 현재 실행 중인 프로그램을 의미합니다. 보안 엔지니어는 비정상적인 프로세스(악성코드, 리소스 과다 점유 프로세스 등)를 식별하고 종료할 수 있어야 합니다.
- ps (Process Status) 현재 실행 중인 프로세스의 목록을 보여줍니다. 단독으로 사용하기보다는 옵션과 함께 사용합니다.

-
# 현재 터미널에서 실행 중인 프로세스 $ ps # 시스템에서 실행 중인 모든 프로세스를 상세 정보와 함께 표시 (가장 많이 사용) # a: 모든 사용자의 프로세스 # u: 사용자 중심의 상세 정보 (USER, %CPU, %MEM 등) # x: 터미널(제어 터미널)이 없는 프로세스(백그라운드 데몬 등)까지 표시 $ ps aux # [활용 예시] 'apache'라는 이름의 프로세스만 찾아보기 (grep과 조합) $ ps aux | grep 'apache' - Bash
- top / htop (Table of Processes) ps가 특정 순간을 스냅샷처럼 보여준다면, top은 작업 관리자처럼 실시간으로 시스템 상태와 프로세스 현황을 보여줍니다. (CPU, 메모리 사용률 순으로 정렬) htop은 top보다 시각적으로 보기 편하고 마우스 조작도 지원하는 업그레이드 버전입니다. (설치 필요: sudo apt install htop)

-
Bash
# 실시간 프로세스 모니터링 시작 (종료는 'q' 키) $ top - kill 특정 프로세스에 시그널(Signal)을 보내 종료시킵니다. ps나 top으로 확인한 PID(Process ID) 값을 사용합니다.
-
Bash
# 1234번 PID를 가진 프로세스를 정상 종료 $ kill 1234 # 1234번 프로세스를 강제 종료 (-9, SIGKILL) # 프로그램이 응답하지 않을 때 사용 $ kill -9 1234
2. 네트워크 모니터링
서버가 외부와 통신하는 '문(Port)'을 확인하고, 어떤 연결이 이루어지고 있는지 파악하는 것은 보안의 기본 중의 기본입니다.
- ss (Socket Statistics) netstat을 대체하는 최신 명령어로, 시스템의 소켓(네트워크 연결) 상태를 보여줍니다.
- netstat -antp도 ss -ntlp와 거의 동일한 역할을 수행하며 여전히 많이 사용됩니다.

-
Bash
# 현재 열려있는 모든 포트와 연결 상태 표시 # n: 숫자 (호스트명, 서비스명 대신 IP와 포트 번호로 표시) # t: TCP 연결만 # l: LISTEN (대기 중) 상태의 포트 # p: 해당 포트를 사용하는 프로세스 표시 (관리자 권한 필요) $ sudo ss -ntlp # [활용 예시] ESTABLISHED (연결 완료) 상태인 연결만 확인 $ ss -nt state established - ip ifconfig를 대체하는 최신 명령어로, 시스템의 네트워크 인터페이스(랜카드)와 IP 주소를 확인/설정합니다.

-
Bash
# 모든 네트워크 인터페이스의 IP 주소 확인 (ifconfig -a 와 유사) $ ip addr # 축약형 $ ip a # 라우팅 테이블(게이트웨이) 확인 $ ip route - curl / wget 터미널 환경에서 HTTP/HTTPS 등 다양한 프로토콜로 데이터를 전송(요청/다운로드)하는 도구입니다.

-
Bash
# google.com의 웹페이지 소스를 터미널에 출력 (웹 서버 동작 확인) $ curl https://google.com # 특정 파일 다운로드 $ wget https://example.com/file.zip # [보안 활용] 특정 포트(8080)로 서버가 응답하는지 헤더 정보만 확인 (-I) $ curl -I http://localhost:8080
3. 시스템 및 서비스 관리
최신 리눅스 배포판(Ubuntu, CentOS 7+ 등)은 대부분 systemd라는 초기화 시스템을 사용합니다. systemctl은 이 systemd를 제어하는 핵심 명령어입니다.
- systemctl 시스템의 백그라운드에서 항상 실행되는 서비스(데몬)를 관리합니다. (예: 웹 서버, SSH 서버)

-
# 'sshd' (SSH 서버) 서비스의 현재 상태(활성화, 실행 중 여부, 로그) 확인 $ systemctl status sshd # 서비스 시작 / 중지 / 재시작 $ sudo systemctl start sshd $ sudo systemctl stop sshd $ sudo systemctl restart sshd # 부팅 시 서비스가 자동으로 시작되도록 활성화 $ sudo systemctl enable sshd # 부팅 시 자동 시작 비활성화 $ sudo systemctl disable sshd - Bash
4. 디스크 용량 확인
시스템의 저장 공간을 관리하는 것은 장애 예방의 기본입니다.
- df (Disk Free) 시스템 전체의 디스크(파일 시스템) 사용량을 보여줍니다.

-
Bash
# -h (Human-readable): 사람이 읽기 쉬운 단위(GB, MB)로 표시 $ df -h - du (Disk Usage) 특정 디렉토리나 파일이 차지하는 용량을 보여줍니다.
-
Bash
# -s (Summarize): 각 인자의 총합만 표시 # -h (Human-readable): 읽기 쉬운 단위 # [활용] 현재 디렉토리(*)의 하위 항목들이 각각 얼마나 용량을 쓰는지 확인 $ du -sh * # [활용] /var/log 디렉토리의 총 사용량 확인 $ du -sh /var/log
5. 사용자 및 권한 관리
리눅스는 다중 사용자 시스템이며, 파일과 디렉토리에 대한 접근 제어는 보안의 핵심입니다.
- chmod (Change Mode) 파일이나 디렉토리의 접근 권한(읽기:r, 쓰기:w, 실행:x)을 변경합니다.

-
Bash
# 'script.sh' 파일에 소유자(user)에게 실행(x) 권한 추가 $ chmod u+x script.sh # 'private_key' 파일의 권한을 소유자만 읽기/쓰기(600) 가능하도록 변경 # (r=4, w=2, x=1 이므로 rw- --- --- 는 600) $ chmod 600 private_key - chown (Change Owner) 파일이나 디렉토리의 소유자 및 소유 그룹을 변경합니다.
-
Bash
# 'data.txt' 파일의 소유자를 'www-data' 사용자로 변경 $ sudo chown www-data data.txt # 디렉토리와 그 안의 모든 하위 파일/디렉토리의 소유권까지 변경 (-R) $ sudo chown -R hoonss:hoonss /home/hoonss/project - whoami / who / last 로그인 및 사용자 정보를 확인합니다.

-
Bash
# 현재 로그인된 사용자 ID를 표시 $ whoami # 현재 시스템에 접속해 있는 사용자들의 상세 정보 표시 $ who # 최근 시스템 로그인/로그아웃 기록을 표시 (보안 감사에 유용) $ last
6. 패키지(소프트웨어) 관리
보안 도구를 설치하거나 시스템을 최신 상태로 유지하기 위해 패키지 관리자를 사용합니다. (Debian/Ubuntu 계열 기준)
- apt (Advanced Package Tool) 소프트웨어를 설치, 업그레이드, 삭제하는 명령어입니다.

-
Bash
# 패키지 목록 정보 갱신 (설치 전 항상 권장) $ sudo apt update # 설치된 모든 패키지를 최신 버전으로 업그레이드 $ sudo apt upgrade # 'nmap'이라는 새 패키지(보안 스캐너) 설치 $ sudo apt install nmap # 'nmap' 패키지 삭제 $ sudo apt remove nmap
'2025 Security engineer Bootcamp > 3. 운영체제 개요' 카테고리의 다른 글
| 운영체제 개요(리눅스) (0) | 2025.10.14 |
|---|