본문 바로가기

리눅스 마스터 1급 1차 (필기) 대비 3과목 요약 정리

@Engineer-yr2025. 6. 13. 11:02
728x90

💡 1. 파일 시스템 및 디렉토리 관리
  • 주요 디렉토리 및 용도
    • /bin: 기본 명령어 (ls, cp, mv 등) [20.06]
    • /sbin: 시스템 관리 명령어 (ifconfig, shutdown 등)
    • /etc: 시스템 환경 설정 파일 [17.03]
    • /var: 가변 데이터 파일 (로그, 스풀, 메일, 웹 페이지 등) [20.06]
    • /dev: 장치 파일 [16.03]
    • /proc: 가상 파일 시스템 (프로세스 정보, 시스템 정보 등) [16.09]
    • /tmp: 임시 파일 (시스템 재부팅 시 삭제)
    • /usr: 시스템에서 사용하는 프로그램, 라이브러리, 문서 등 (User System Resources)
    • /opt: 추가적인 소프트웨어 설치 디렉토리 (Optional)
    • /boot: 부팅 관련 파일 (커널, GRUB 설정 등)
    • /home: 일반 사용자 홈 디렉토리
    • /root: root 사용자 홈 디렉토리
  • 파일 시스템 종류
    • Ext2/Ext3/Ext4
      • Ext3: 저널링 기능 추가 (시스템 충돌 시 복구 용이). [15.03]
      • Ext4: 대용량 파일/파티션 지원, 다중 블록 할당(mballoc) 등 성능 개선. [17.03]
    • XFS
      • SGI에서 개발한 저널링 파일 시스템, 대용량 파일/디스크 볼륨 지원. [15.03]
      • RHEL 7의 기본 파일 시스템.
    • JFS
      • IBM에서 개발한 저널링 파일 시스템. [15.03]
    • Swap
      • 가상 메모리로 사용되는 영역. 물리적 메모리 부족 시 하드디스크의 일부를 메모리처럼 사용. [18.03, 16.09, 16.03]
      • free 명령어로 용량 확인. [18.03]
  • 파일 시스템 관련 명령어
    • df: 마운트된 파일 시스템의 사용량 확인. [15.09, 19.03]
    • du: 파일 또는 디렉토리의 디스크 사용량 확인. [19.03]
    • mount: 파일 시스템 마운트. [15.09]
    • umount: 파일 시스템 언마운트.
    • fsck: 파일 시스템 검사 및 복구. [20.06]
    • mkfs: 파일 시스템 생성.
    • fdisk: 파티션 생성/삭제/관리 (대화형). [19.03]
    • parted: 파티션 생성/삭제/관리 (고급, GPT 지원).
    • dd: 파일/디스크 복사 및 변환 (디스크 이미지 생성/복원 등). [20.06]
  • 저널링 파일 시스템의 장점: 시스템 충돌 시 데이터 무결성 보장, 빠른 복구 시간. [15.03]
  • RAID (Redundant Array of Independent Disks)
    • RAID-0 (Striping): 데이터 분산 저장, 성능 향상, 안정성 없음. [15.09]
    • RAID-1 (Mirroring): 데이터 중복 저장, 안정성 높음, 용량 효율성 50%. [15.09]
    • RAID-5: 패리티 정보 분산 저장, 최소 3개 디스크 필요, 1개 디스크 오류 허용. [15.09, 23.03]
    • RAID-6: 이중 패리티 정보 저장, 2개 디스크 오류 허용, 최소 4개 디스크 필요. [19.03]
    • RAID-10 (RAID 1+0): 스트라이핑된 미러링, 성능과 안정성 모두 높음. [15.09]
    • RAID 볼륨 생성 시: mdadm 명령 사용. [20.06]
  • LVM (Logical Volume Manager)
    • 물리 디스크를 유연하게 관리하여 논리 볼륨 생성/확장/축소 가능. [19.03]
    • 물리 볼륨(PV) → 볼륨 그룹(VG) → 논리 볼륨(LV) 순서. [19.03]

💡 2. 프로세스 및 작업 관리

🐧 프로세스 제어 및 관리

  • 프로세스 상태
    • R (Running): 실행 중 또는 실행 가능한 상태.
    • S (Sleeping): 대기 상태 (인터럽트 가능).
    • D (Uninterruptible Sleep): 인터럽트 불가능한 대기 상태 (I/O 대기 등).
    • Z (Zombie): 좀비 프로세스 (자식 프로세스가 종료되었으나 부모가 회수하지 않음).
    • T (Stopped): 일시 중지 상태 (Ctrl+Z 또는 시그널).
    • X (Dead): 종료 상태 (거의 나타나지 않음).
  • 프로세스 관련 명령어
    • ps: 현재 실행 중인 프로세스 목록 확인. [15.09]
      • ps -ef: 모든 프로세스의 상세 정보 (PID, PPID, UID 등).
      • ps aux: 모든 프로세스 (BSD 스타일).
    • top: 실시간 프로세스 모니터링 (CPU, 메모리 사용량 등). [15.09]
    • pstree: 프로세스 트리 형태로 출력. [20.10]
    • kill: 프로세스에 시그널 전송. [19.09]
      • kill -9 [PID] (SIGKILL): 프로세스 강제 종료 (최강의 시그널). [19.09, 20.06, 22.03]
      • kill -15 [PID] (SIGTERM): 프로세스에게 정상 종료 요청 (기본). [22.03]
      • kill -1 [PID] (SIGHUP): 터미널 종료 시 프로세스에게 전송.
      • kill -2 [PID] (SIGINT): Ctrl+C 시 전송.
      • kill -19 [PID] (SIGSTOP) 또는 kill -STOP [PID]: Ctrl+Z 시 전송 (강제 일시 정지). [16.03]
      • kill -18 [PID] (SIGCONT) 또는 kill -CONT [PID]: 중지된 프로세스 재개.
      • kill -20 [PID] (SIGTSTP) 또는 kill -TSTP [PID]: Ctrl+Z 시 전송 (터미널 정지 시그널). [22.03]
    • killall: 특정 이름의 모든 프로세스 종료.
    • pkill: 패턴으로 프로세스 종료.
    • bg: 백그라운드로 전환된 프로세스 재개.
    • fg: 백그라운드 프로세스를 포어그라운드로 전환. [20.06]
    • nohup: 터미널 종료와 상관없이 프로세스 실행.
    • nice: 프로세스의 우선순위 설정 (높은 nice 값 = 낮은 우선순위). [15.09]
    • renice: 실행 중인 프로세스의 우선순위 변경.
  • forkexec
    • fork: 부모 프로세스와 동일한 자식 프로세스 생성. [19.09]
    • exec: 현재 프로세스를 새로운 프로그램으로 대체. [19.09]
  • Crontab (정기적인 작업 예약)
    • 사용자별 작업 예약: crontab -e (편집), crontab -l (목록 확인). [20.10]
    • 시스템 전체 작업: /etc/crontab 또는 /etc/cron.d 디렉토리.
    • 필드 순서: 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-7) 명령어 [15.09]
    • */10: 10분마다.
    • 1,5: 1분과 5분에.
  • at (일회성 작업 예약)
    • 특정 시간에 한 번만 실행될 작업 예약. [20.10]
    • at -l: 예약된 작업 목록 확인.
    • at -r [작업번호]: 예약된 작업 삭제.

💡 3. 사용자 및 그룹 관리

🐧 사용자 및 그룹 관리

  • 주요 설정 파일
    • /etc/passwd: 사용자 계정 정보 (로그인 쉘, 홈 디렉토리, UID 등) [20.06]
    • /etc/shadow: 사용자 패스워드 암호화 정보, 패스워드 만료 정책 [20.06]
    • /etc/group: 그룹 정보 (GID, 그룹 멤버)
    • /etc/gshadow: 그룹 패스워드 정보
    • /etc/default/useradd: useradd 명령의 기본값 설정 (홈 디렉토리 생성 여부 등) [20.06]
    • /etc/login.defs: 사용자 계정 생성 시 기본값 및 패스워드 정책 (최대/최소 길이 등) [20.06]
  • 사용자 관련 명령어
    • useradd: 사용자 계정 생성. [20.06]
      • -m: 홈 디렉토리 생성.
      • -g [그룹명]: 주 그룹 지정.
      • -G [그룹명]: 보조 그룹 지정.
      • -s [쉘경로]: 로그인 쉘 지정.
      • -u [UID]: UID 지정.
    • usermod: 사용자 계정 정보 변경. [20.06]
    • userdel: 사용자 계정 삭제. [20.06]
    • passwd: 사용자 패스워드 변경. [20.06]
      • passwd -l [사용자명]: 계정 잠금 (Lock).
      • passwd -u [사용자명]: 계정 잠금 해제 (Unlock).
      • passwd -d [사용자명]: 패스워드 삭제 (패스워드 없이 로그인 가능).
    • su: 다른 사용자로 전환 (Superuser).
    • sudo: 다른 사용자의 권한으로 명령어 실행 (주로 root 권한). /etc/sudoers 파일로 설정.
    • id: 사용자 및 그룹 ID 확인. [17.09]
    • whoami: 현재 로그인한 사용자 이름 확인.
  • 그룹 관련 명령어
    • groupadd: 그룹 생성. [20.06]
    • groupmod: 그룹 정보 변경.
    • groupdel: 그룹 삭제.
  • UMASK (파일 및 디렉토리 생성 시 기본 권한)
    • 파일: 666 - UMASK 값 = 생성 권한.
    • 디렉토리: 777 - UMASK 값 = 생성 권한.
    • umask 명령어로 확인/설정. [15.09]
  • 파일 접근 권한 (chmod, chown, chgrp)
    • chmod: 파일 또는 디렉토리 권한 변경. [15.09]
      • u: 사용자, g: 그룹, o: 기타, a: 전체.
      • +: 권한 추가, -: 권한 제거, =: 권한 설정.
      • r: 읽기 (4), w: 쓰기 (2), x: 실행 (1).
      • 특수 권한: SetUID (4000), SetGID (2000), Sticky Bit (1000).
      • SetUID: 실행 시 파일 소유자의 권한으로 실행 (-rwsr-xr-x). [18.09, 20.06]
      • SetGID: 실행 시 그룹 소유자의 권한으로 실행 / 디렉토리 생성 시 부모 디렉토리 그룹 상속 (-rwxr-sr-x).
      • Sticky Bit: 디렉토리 내 파일 삭제/이름 변경은 소유자만 가능 (drwxrwxrwt). (예: /tmp)
    • chown: 파일 또는 디렉토리의 소유자/그룹 변경. [15.09]
      • chown user:group file: 소유자 및 그룹 변경.
    • chgrp: 파일 또는 디렉토리의 그룹 변경.

💡 4. 네트워크 설정 및 관리

🐧 네트워크 설정 및 관리

  • 네트워크 설정 파일
    • /etc/sysconfig/network-scripts/ifcfg-ethX: 네트워크 인터페이스 설정 (IP, 넷마스크, 게이트웨이, DNS 등). [17.09, 20.10]
    • /etc/sysconfig/network: 네트워크 호스트명, 게이트웨이 등 전역 네트워크 설정.
    • /etc/hosts: 호스트 이름과 IP 주소 매핑 (로컬 DNS 역할). [15.09, 17.09]
    • /etc/resolv.conf: DNS 서버 주소 설정. [20.06, 22.03]
    • /etc/services: 서비스명과 포트 번호 매핑. [17.09]
  • 네트워크 관련 명령어
    • ifconfig: 네트워크 인터페이스 설정 및 정보 확인 (IP, MAC 주소, 전송량 등). [15.09] (최근 ip 명령으로 대체)
    • ip: 네트워크 설정 및 정보 확인 (더 확장된 기능).
      • ip addr show: 인터페이스 IP 주소 확인.
      • ip link show: 인터페이스 정보 확인.
    • route: 라우팅 테이블 확인 및 설정. (최근 ip route 명령으로 대체)
    • netstat: 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등 확인. [20.06, 17.09]
      • -natp: 모든 TCP/UDP 포트 및 관련 프로세스 확인.
      • -r: 라우팅 테이블.
      • -l: Listening 포트.
      • SYN_RECV: SYN Flooding 공격 확인 시 사용되는 상태. [20.06, 23.03]
    • ping: 네트워크 연결 및 응답 시간 확인 (ICMP 프로토콜 사용). [15.09]
    • traceroute: 특정 호스트까지의 경로 추적. [15.09]
    • nslookup: DNS 질의. [15.09] (최근 dig 명령으로 대체)
    • dig: DNS 질의 (고급).
    • hostname: 호스트명 확인 및 설정.
    • dhclient: DHCP 서버로부터 IP 주소 할당.
    • ntpdate: NTP 서버와 시간 동기화 (일회성). [20.10, 23.03]
    • ntpd / chronyd: NTP 데몬 (지속적인 시간 동기화).
  • DHCP (Dynamic Host Configuration Protocol)
    • IP 주소 및 네트워크 설정 자동 할당.
    • 설정 파일: /etc/dhcp/dhcpd.conf 또는 /etc/dhcpd.conf. [20.06]
  • DNS (Domain Name System)
    • 도메인 이름을 IP 주소로 변환.
    • 주요 설정 파일: /etc/named.conf (네임 서버), /etc/resolv.conf (클라이언트).
  • FTP (File Transfer Protocol)
    • 파일 전송 프로토콜.
    • 데몬: vsftpd, proftpd, pure-ftpd.
    • 설정 파일: /etc/vsftpd/vsftpd.conf.
    • 익명 FTP 홈 디렉토리: /var/ftp. [15.09]
    • FTP 전송 모드: Active Mode (서버에서 클라이언트로 연결) / Passive Mode (클라이언트에서 서버로 연결).
  • SSH (Secure Shell)
    • 보안 원격 접속.
    • 설정 파일: /etc/ssh/sshd_config. [19.03]
    • 포트 번호 변경, Root 로그인 허용 여부, 비밀번호 인증 방식 등 설정.
  • Apache HTTP Server (웹 서버)
    • 설정 파일: /etc/httpd/conf/httpd.conf. [20.10]
    • 주요 지시어: DocumentRoot (웹 문서 기본 디렉토리), Listen (포트), ServerName (호스트명). [20.10]
    • 기본 웹 문서 디렉토리: /var/www/html 또는 /usr/local/apache/htdocs.
  • Samba (윈도우 파일 공유)
    • 리눅스/유닉스 시스템과 윈도우 시스템 간 파일 및 프린터 공유.
    • 설정 파일: /etc/samba/smb.conf. [17.09, 20.10]
    • 주요 데몬: smbd (파일/프린터 공유), nmbd (이름 해석).
    • VNC 서버: 리눅스 서버와 윈도우 클라이언트 간 데스크톱 공유. [20.10]
  • Proxy Server (Squid)
    • 클라이언트와 인터넷 사이에서 중개 역할. 캐싱, 접근 제어 등.
    • 설정 파일: /etc/squid/squid.conf. [17.09, 20.06]
    • http_port: 프록시 서버 포트 설정. [20.06]
    • cache_dir: 캐시 저장 디렉토리 설정. [17.09]
  • Xinetd (확장 인터넷 서비스 데몬)
    • 주요 서비스의 요청에 따라 데몬을 실행하는 역할 (서비스 관리). [15.09, 17.09]
    • telnet, ftp 등의 서비스를 관리.
    • 설정 파일: /etc/xinetd.conf, /etc/xinetd.d/*.
    • log_type FILE /var/log/xinetd.log: 로그 파일 경로 설정. [17.03]
  • Systemd (최신 서비스 관리 시스템)
    • SysVinit을 대체하는 초기화 시스템.
    • 서비스 관리: systemctl. (예: systemctl enable sshd, systemctl start sshd)
    • 기본 런레벨 확인: systemctl get-default. [22.03]

💡 5. 시스템 보안

🐧 시스템 보안

  • IPTables (리눅스 방화벽)
    • 패킷 필터링 규칙 설정.
    • filter, nat, mangle, raw 테이블. [17.09]
    • 체인(Chain): INPUT (들어오는 패킷), OUTPUT (나가는 패킷), FORWARD (전달되는 패킷), PREROUTING, POSTROUTING. [17.09]
    • 정책(Policy): ACCEPT (허용), DROP (버림), REJECT (버림+응답 메시지), RETURN (현재 체인 벗어남). [15.09, 20.06, 23.03]
    • 주요 옵션:
      • -A: 규칙 추가 (맨 뒤). [15.03, 23.03]
      • -D: 규칙 삭제.
      • -I: 규칙 삽입 (맨 앞).
      • -R: 규칙 교체.
      • -P: 기본 정책 설정. [19.03]
      • -L: 규칙 목록 출력.
      • -F: 모든 규칙 삭제.
      • -Z: 카운터 초기화.
      • -j [타겟]: 규칙의 목표 (ACCEPT, DROP, REJECT 등).
      • -s [IP/네트워크]: 출발지 IP/네트워크.
      • -d [IP/네트워크]: 목적지 IP/네트워크.
      • -p [프로토콜]: 프로토콜 (tcp, udp, icmp).
      • --dport [포트]: 목적지 포트.
    • iptables -P INPUT DROP: INPUT 체인의 기본 정책을 DROP으로 설정. [19.03]
    • 정책 저장: iptables-save > /etc/sysconfig/iptables 또는 service iptables save. [16.03, 17.09]
    • 주의: lokkit, firewall-cmd는 CentOS/RHEL 계열의 방화벽 관리 도구. ipchains는 iptables의 이전 버전. [20.10, 23.03]
  • TCP Wrapper
    • 네트워크 서비스에 대한 접근 제어. [15.09]
    • 설정 파일: /etc/hosts.allow (허용), /etc/hosts.deny (거부). [19.03]
    • 허용 규칙이 거부 규칙보다 우선.
  • SELinux (Security-Enhanced Linux)
    • 강제적 접근 제어 (Mandatory Access Control, MAC) 구현.
    • 파일 시스템의 모든 개체에 보안 컨텍스트 부여.
    • 모드: Enforcing (강제), Permissive (허용), Disabled (비활성화).
    • 주의: setenforce 명령으로 모드 변경 시 재부팅 후에도 유지되지 않음. 영구 적용은 /etc/selinux/config 파일 수정. [19.03]
  • PAM (Pluggable Authentication Modules)
    • 인증(authentication), 계정(account), 세션(session), 패스워드(password) 관리 모듈. [15.09]
    • /etc/pam.d 디렉토리에 각 서비스별 설정 파일 존재.
  • 로그 파일
    • /var/log/messages: 시스템 일반 메시지, 커널, 부팅 정보 등. [20.10]
    • /var/log/secure: 보안 관련 로그 (인증, 로그인, SSH 등). [20.10]
    • /var/log/maillog: 메일 서버 로그.
    • /var/log/httpd/*: Apache 웹 서버 로그 (access_log, error_log).
    • /var/log/audit/audit.log: 감사 시스템 로그.
    • 로그 관리 데몬: syslogd, rsyslogd, systemd-journald.
    • 로그 파일 순환 관리: logrotate.
  • 네트워크 공격 유형
    • DoS (Denial of Service) / DDoS (Distributed Denial of Service)
      • 서비스 거부 공격. [18.09]
      • DDoS는 여러 대의 공격자를 분산 배치하여 공격. [18.09]
    • SYN Flooding
      • TCP 3-way handshake 과정에서 SYN 패킷만 보내 SYN_RECV 상태의 연결을 고갈시키는 공격. [19.09, 20.06, 23.03]
      • netstat으로 SYN_RECV 상태 확인. [20.06, 23.03]
    • Smurf Attack
      • 공격 대상 IP로 위장하여 ICMP Request를 브로드캐스트 주소로 보내, 다수의 시스템으로부터 ICMP Echo Reply를 공격 대상으로 집중시키는 공격. [18.03]
    • Land Attack
      • 출발지 IP와 목적지 IP를 동일하게 하여 공격 대상 서버가 자신에게 계속 응답하도록 부하를 유발. [19.03, 18.03]
    • Ping of Death
      • IP 패킷을 정상 크기보다 크게 만들어 전송하여 시스템 부하 유발. [19.09, 18.03]
    • Teardrop Attack
      • IP Fragment Offset 값을 조작하여 재조합 과정에서 시스템 오류 유발. [19.09]
    • Brute Force Attack
      • 무작위 대입 공격 (패스워드 등). [19.09]
    • 가용 자원 고갈 공격: 메모리, 디스크, 프로세스, 네트워크 대역폭 등 자원을 고갈시키는 공격. [20.06, 23.03]
    • DDoS 공격 도구: Trinoo, TFN (TFN2K), Stacheldraht, Tribe Flood Network. Boink는 DDoS 도구가 아님. [20.10]
  • 침입 탐지 시스템 (IDS) / 침입 방지 시스템 (IPS)
    • IDS: 침입 징후 탐지. (예: Snort, Suricata, Tripwire) [15.09, 20.06]
    • IPS: 침입 실시간 차단.
    • Tripwire: 무결성 검사 도구. [15.03]
    • John the Ripper: 패스워드 크랙 도구. [20.06]
  • 가상화 도구
    • virt-manager: 가상 머신 관리자 GUI. [20.10, 19.09]
    • virt-top: 가상 머신 CPU 사용량 모니터링. [20.10, 19.09]
    • virsh: 가상 머신 명령줄 인터페이스. [20.10]
    • libvirtd: 가상화 관리 데몬. [20.10, 19.09]

🐧 리눅스 마스터 1급 3과목 핵심 빈출 지문 100선 (2015년 ~ 2023년)

  1. `/bin` 디렉터리는 모든 사용자가 사용할 수 있는 기본 실행 파일(명령어)을 저장한다.
  2. `/sbin` 디렉터리는 시스템 관리자(root)만 주로 사용하는 시스템 관리 명령어를 저장한다.
  3. `/etc` 디렉터리는 시스템의 다양한 설정 파일을 저장한다.
  4. `/dev` 디렉터리는 하드웨어 장치 파일을 저장한다. (예: `/dev/sda`, `/dev/tty`)
  5. `/proc` 디렉터리는 현재 실행 중인 프로세스 정보, 시스템 정보 등을 담고 있는 가상 파일 시스템이다.
  6. `/var` 디렉터리는 시스템 운영 중에 동적으로 생성되거나 변경되는 데이터(로그 파일, 스풀 파일, 메일 스풀 등)를 저장한다.
  7. `/usr` 디렉터리는 사용자 관련 프로그램 및 데이터를 저장한다. (예: `/usr/bin`, `/usr/local`)
  8. `/tmp` 디렉터리는 임시 파일을 저장하며, 시스템 재부팅 시 내용이 삭제될 수 있다.
  9. XFSRHEL 7의 기본 파일 시스템으로, 대용량 파일 및 디스크 볼륨 지원에 강점을 가진 저널링 파일 시스템이다.
  10. 저널링 파일 시스템은 시스템 충돌 시 데이터 무결성을 보장하고 빠른 복구 시간을 제공한다.
  11. 스왑(Swap) 영역은 물리적 메모리(RAM)가 부족할 때 하드디스크의 일부를 메모리처럼 사용하는 공간이다.
  12. `free` 명령은 메모리 및 스왑 영역의 사용량을 확인한다.
  13. `df` 명령은 마운트된 파일 시스템의 총 용량, 사용량, 남은 용량을 확인한다. (`-h` 옵션으로 읽기 쉬운 단위로 출력).
  14. `du` 명령은 특정 파일 또는 디렉토리의 디스크 사용량을 확인한다. (`-sh` 옵션으로 요약 및 읽기 쉬운 단위로 출력).
  15. `fdisk` 명령은 하드디스크의 파티션을 생성, 삭제, 관리하는 데 사용되는 대화형 도구이다.
  16. `mkfs` 명령은 특정 파티션에 파일 시스템을 생성한다. (예: `mkfs.ext4`, `mkfs.xfs`).
  17. `mount` 명령은 파일 시스템을 특정 디렉토리(마운트 포인트)에 연결하여 사용할 수 있도록 한다.
  18. `umount` 명령은 마운트된 파일 시스템을 해제한다.
  19. `/etc/fstab` 파일은 시스템 부팅 시 자동으로 마운트될 파일 시스템 정보를 저장한다.
  20. `fsck` 명령은 파일 시스템을 검사하고 복구한다.
  21. `dd` 명령은 블록 단위로 데이터를 복사하며, 디스크 이미지 생성 및 복원에 유용하다.
  22. RAID-0 (Striping)은 데이터를 여러 디스크에 분산 저장하여 성능을 향상시키지만, 내결함성(fault tolerance)은 없다.
  23. RAID-1 (Mirroring)은 데이터를 두 개 이상의 디스크에 동일하게 복사하여 저장하여 데이터 안정성을 높인다.
  24. RAID-5데이터와 패리티 정보를 분산 저장하여 디스크 하나가 고장 나도 복구가 가능하며, 최소 3개 이상의 디스크가 필요하다.
  25. RAID-6두 개의 디스크 장애 발생에도 데이터 손실이 없으며, 최소 4개 이상의 디스크가 필요하다.
  26. RAID-10 (RAID 1+0)은 RAID-0의 성능과 RAID-1의 안정성을 결합한 방식으로, 최소 4개 이상의 디스크가 필요하다.
  27. LVM (Logical Volume Manager)은 물리적 디스크 공간을 유연하게 관리하는 기술로, PV (물리 볼륨) → VG (볼륨 그룹) → LV (논리 볼륨) 순으로 구성된다.
  28. `pvcreate`, `vgcreate`, `lvcreate` 명령으로 LVM 구성 요소를 생성한다.
  29. `lvextend` 명령으로 논리 볼륨의 크기를 확장하고, `resize2fs` (ext) 또는 `xfs_growfs` (xfs)로 파일 시스템 크기를 조정한다.
  30. 프로세스 상태에서 `R` (Running)실행 중 또는 실행 대기 중인 상태를 의미한다.
  31. 프로세스 상태에서 `S` (Sleeping)휴면 상태로, 이벤트를 기다리는 상태이다.
  32. 프로세스 상태에서 `D` (Uninterruptible Sleep)인터럽트 불가능한 대기 상태로, 주로 I/O 작업 대기 시 발생하며 `kill` 명령으로 종료하기 어렵다.
  33. 프로세스 상태에서 `Z` (Zombie)좀비 프로세스로, 자식 프로세스가 종료되었으나 부모 프로세스가 아직 종료 상태를 회수하지 않아 시스템에 남아있는 상태이다.
  34. 프로세스 상태에서 `T` (Stopped)정지 상태로, 시그널에 의해 일시 정지된 상태이다.
  35. `ps` 명령은 현재 실행 중인 프로세스 목록을 확인한다. (예: `ps -ef`, `ps aux`).
  36. `top` 명령은 실시간으로 프로세스의 CPU, 메모리 사용량 등을 모니터링한다. `k` 키로 프로세스 종료, `r` 키로 우선순위 변경이 가능하다.
  37. `pstree` 명령은 프로세스들을 트리 형태로 출력하여 부모-자식 관계를 파악하기 용이하다.
  38. `kill` 명령은 특정 PID(프로세스 ID)를 가진 프로세스에 시그널을 보내 종료하거나 제어한다.
  39. `killall` 명령은 특정 이름을 가진 모든 프로세스를 종료한다.
  40. `pkill` 명령은 프로세스 이름 또는 패턴을 사용하여 프로세스를 종료한다.
  41. `SIGKILL` (시그널 번호: 9)은 프로세스를 강제로 즉시 종료시키는 시그널이다.
  42. `SIGTERM` (시그널 번호: 15)은 프로세스에게 정상적인 종료를 요청하는 기본 시그널이다.
  43. `SIGSTOP` (시그널 번호: 19) 또는 `SIGTSTP` (Ctrl+Z)는 프로세스를 일시 정지시키는 시그널이다.
  44. `bg` 명령은 일시 정지된 프로세스를 백그라운드에서 실행한다.
  45. `fg` 명령은 백그라운드 프로세스를 포어그라운드로 전환한다.
  46. `nohup` 명령은 터미널이 종료되어도 프로세스가 계속 실행되도록 한다.
  47. 명령어 뒤에 `&` 기호를 붙이면 해당 명령어가 백그라운드에서 실행된다.
  48. `nice` 명령은 프로세스 실행 시 우선순위(Nice 값)를 설정한다. Nice 값은 `-20` (가장 높음)부터 `19` (가장 낮음)까지의 범위이다.
  49. `renice` 명령은 실행 중인 프로세스의 우선순위를 변경한다.
  50. `fork`부모 프로세스와 동일한 내용의 자식 프로세스를 생성하는 시스템 호출(System Call)이다.
  51. `exec`현재 실행 중인 프로세스를 새로운 프로그램으로 완전히 대체하여 실행하는 시스템 호출(System Call)이다.
  52. `crontab` 명령은 사용자별로 정기적으로 반복되는 작업을 예약하는 데 사용된다.
  53. `crontab`의 설정 필드 순서는 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-7) 명령어 순이다.
  54. `/etc/crontab` 파일은 시스템 전체의 크론 작업을 정의한다.
  55. `at` 명령은 단 한 번만 실행될 작업을 예약하는 데 사용된다.
  56. `atq` (또는 `at -l`) 명령은 예약된 `at` 작업을 확인한다.
  57. `atrm` (또는 `at -d`) 명령은 예약된 `at` 작업을 삭제한다.
  58. `batch` 명령은 시스템 부하가 낮을 때 한 번만 실행되는 작업을 예약한다.
  59. `/var/log` 디렉터리는 시스템에서 발생하는 다양한 로그 파일이 저장되는 기본 위치이다.
  60. `/var/log/messages`커널 부팅 메시지, 시스템 데몬의 일반적인 정보 및 경고 등이 기록되는 주요 로그 파일이다.
  61. `/var/log/secure`사용자 인증 시도, SSH 접속, sudo 사용 등 보안과 관련된 이벤트가 기록되는 로그 파일이다.
  62. `/var/log/maillog`메일 서버(Sendmail, Postfix 등)의 활동을 기록하는 로그 파일이다.
  63. `/var/log/boot.log`시스템 부팅 과정에서 발생하는 메시지를 기록한다.
  64. `/var/log/lastlog`각 사용자의 마지막 로그인 시간을 기록하는 파일이다.
  65. `/var/log/wtmp`사용자의 로그인 및 로그아웃 기록을 바이너리 형태로 저장한다. (`who`, `w`, `last` 명령으로 확인 가능).
  66. `/var/log/btmp`실패한 로그인 시도 기록을 바이너리 형태로 저장한다. (`lastb` 명령으로 확인 가능).
  67. `dmesg` 명령은 커널 부팅 메시지를 출력한다.
  68. `syslog` (System Log Daemon)는 시스템 로그 메시지를 수집, 분류, 저장하는 데몬으로, `/etc/syslog.conf` 또는 `/etc/rsyslog.conf` 파일에 설정 정보가 있다.
  69. 로그 설정 파일의 형식은 `[시설(Facility)].[심각도(Severity)] [액션(Action)]`이다.
  70. 시설(Facility)은 메시지를 생성한 서비스 또는 시스템 부분을 나타낸다 (예: `auth`, `cron`, `mail`, `kern`).
  71. 심각도(Severity)는 메시지의 중요도를 나타낸다 (예: `emerg`, `alert`, `crit`, `err`, `warning`, `notice`, `info`, `debug`, `none`).
  72. `logrotate`로그 파일을 주기적으로 관리(압축, 보관, 삭제)하여 디스크 공간을 효율적으로 사용하도록 돕는다.
  73. `/etc/logrotate.conf`는 `logrotate`의 주요 설정 파일이고, 각 서비스별 설정은 `/etc/logrotate.d` 디렉터리에 있다.
  74. 전체 백업(Full Backup)모든 데이터를 백업하며, 복구 시간이 가장 빠르다.
  75. 증분 백업(Incremental Backup)마지막 백업(전체 또는 증분) 이후 변경된 데이터만 백업하며, 백업 용량이 가장 작지만 복구 시 여러 백업본이 필요하여 복잡하다.
  76. 차등 백업(Differential Backup)마지막 전체 백업 이후 변경된 데이터만 백업하며, 복구 시 전체 백업본과 마지막 차등 백업본만 있으면 되어 증분 백업보다 간단하다.
  77. `tar` 명령은 파일/디렉터리를 묶거나 풀 때 사용된다. (옵션: `-c` 생성, `-x` 추출, `-v` 과정 표시, `-f` 파일 지정, `-z` gzip, `-j` bzip2, `-J` xz 압축/해제).
  78. `gzip`, `gunzip`은 파일을 .gz 확장자로 압축/해제한다.
  79. `bzip2`, `bunzip2`는 파일을 .bz2 확장자로 압축/해제한다.
  80. `xz`, `unxz`는 파일을 .xz 확장자로 압축/해제한다.
  81. `dump``restore` 명령은 파일 시스템 단위의 백업 및 복구에 사용된다.
  82. `rsync` 명령은 파일/디렉터리를 효율적으로 동기화하는 데 사용된다.
  83. `/etc/hosts` 파일은 IP 주소와 호스트 이름을 매핑하는 로컬 DNS 역할을 한다.
  84. `/etc/resolv.conf` 파일은 DNS 서버의 IP 주소를 설정한다.
  85. `ifconfig` (또는 `ip addr`) 명령은 네트워크 인터페이스의 IP 주소, 넷마스크, MAC 주소 등을 확인하거나 설정한다.
  86. `route` 명령은 네트워크 라우팅 테이블을 확인하거나 설정한다.
  87. `netstat` 명령은 네트워크 연결 상태, 라우팅 테이블, 인터페이스 통계 등을 확인한다. (`-nap` 옵션으로 모든 TCP/UDP 포트와 연결된 프로그램, PID 확인).
  88. `ping` 명령은 특정 호스트와의 네트워크 연결 여부와 응답 시간을 확인한다.
  89. `traceroute` 명령은 특정 호스트까지의 네트워크 경로를 추적하며, 각 라우터까지의 지연 시간을 보여준다.
  90. `nslookup` 또는 `dig` 명령은 도메인 이름과 IP 주소 간의 변환(DNS 질의)을 수행한다.
  91. NTP (Network Time Protocol)는 네트워크를 통해 시스템 시간을 동기화하는 프로토콜이다.
  92. `ntpdate` 명령은 원격 NTP 서버와 한 번 시간을 동기화할 때 사용된다.
  93. `firewalld`RHEL 7+에서 기본 방화벽 관리 도구로, `firewall-cmd` 명령을 사용하여 정책을 설정한다.
  94. `IPTables`는 리눅스 커널의 넷필터(Netfilter) 프레임워크를 기반으로 하는 방화벽 도구로, 패킷 필터링 규칙을 설정한다.
  95. IPTables의 주요 체인(Chain)은 `INPUT` (서버로 들어오는 패킷), `OUTPUT` (서버에서 나가는 패킷), `FORWARD` (서버를 경유하는 패킷), `PREROUTING`, `POSTROUTING` 등이다.
  96. IPTables의 정책(Target) 중 `ACCEPT`는 패킷을 허용하고, `DROP`은 패킷을 버리며 아무런 응답도 하지 않는다.
  97. IPTables의 정책 중 `REJECT`는 패킷을 차단하되, 송신자에게 거부 메시지(예: ICMP Port Unreachable)를 보낸다.
  98. `iptables-save > [파일경로]` 명령은 현재 IPTables 규칙을 파일로 저장한다.
  99. TCP Wrapper네트워크 서비스에 대한 접근 제어를 수행하며, `/etc/hosts.allow` (허용)`/etc/hosts.deny` (거부) 파일을 사용한다.
  100. Samba는 리눅스 시스템에서 윈도우 시스템과 파일 및 프린터 공유를 가능하게 하는 서비스이다.
  101. Squid는 웹 프록시 서버로, 캐싱, 접근 제어 등의 기능을 수행하여 네트워크 트래픽을 효율적으로 관리한다.
  102. xinetd는 확장 인터넷 서비스 데몬으로, 서비스 요청에 따라 해당 데몬을 실행하는 역할을 한다. (예: `telnet`, `ftp` 서비스).
  103. systemd는 리눅스 시스템의 초기화 프로세스 및 서비스 관리 시스템으로, `systemctl` 명령을 사용한다.
  104. DoS (Denial of Service) 공격은 단일 시스템을 이용하여 특정 서버나 네트워크를 마비시키는 공격이다.
  105. DDoS (Distributed Denial of Service) 공격여러 대의 공격 시스템(좀비 PC)을 분산 배치하여 동시에 서비스 거부 공격을 수행하는 것이다.
  106. SYN Flooding 공격은 TCP 3-way handshake 과정에서 SYN 패킷만 대량으로 보내 서버의 연결 자원을 고갈시키는 DoS 공격 유형이다. `netstat` 명령 시 `SYN_RECV` 상태가 과도하게 발생한다.
  107. Land Attack은 공격자가 출발지 IP 주소와 목적지 IP 주소를 공격 대상 서버의 IP 주소와 동일하게 위장하여 서버가 자신에게 계속 응답하도록 부하를 유발한다.
  108. Smurf Attack은 공격자가 임의의 IP 주소로 위장하여 ICMP Request 패킷을 브로드캐스트 주소로 전송하고, 이로 인해 다수의 시스템이 공격 대상 서버로 ICMP Echo Reply를 집중시켜 부하를 발생시키는 DoS 공격이다.
  109. Ping of Death정상 크기보다 큰 IP 패킷을 전송하여 시스템에 과부하를 주거나 다운시키는 DoS 공격 유형이다.
  110. Teardrop Attack은 IP 패킷의 Fragment Offset 값을 조작하여 수신 시스템이 재조합 과정에서 오류를 일으키게 하는 DoS 공격 유형이다.
  111. IDS (Intrusion Detection System, 침입 탐지 시스템)는 네트워크 트래픽이나 시스템 로그를 분석하여 침입 징후를 탐지하는 시스템이다. (예: Snort, Suricata).
  112. Tripwire시스템 파일의 무결성을 검사하여, 허가되지 않은 변경 사항을 탐지하는 보안 도구이다.
  113. John The Ripper패스워드 크랙(Cracking)에 사용되는 도구이다.
  114. SELinux (Security-Enhanced Linux)는 강제적 접근 제어(MAC)를 구현하며, 파일 시스템의 모든 개체에 보안 컨텍스트를 부여하여 보안을 강화하는 리눅스 보안 기능이다.
  115. PAM (Pluggable Authentication Modules)은 인증, 계정, 세션, 패스워드 관리를 위한 플러그인 가능한 모듈 시스템이다.
  116. KVM (Kernel-based Virtual Machine)은 리눅스 커널을 기반으로 하는 가상화 기술이다.
  117. `virt-manager`가상 머신을 그래픽 환경에서 관리할 수 있는 도구이다.
  118. `virt-top`가상 머신 환경에서 CPU 사용량을 모니터링할 때 사용하는 도구이다.
728x90
Engineer-yr
@Engineer-yr :: SE-STUDY

https://github.com/yurimheo

공부 기록

목차