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