SKS 공부 - 2025-12-01

SKS 홈으로
25회차 공부

한줄요약:
    리눅스/네트워크 보안 - 유선 LAN은 혼선 방지를 위한 꼬임선(트위스트 페어) 또는 장거리 전송을 위한 광케이블을 주로 사용하며, **네트워크 계층(L3)**에서는 라우터가 IP 주소를 기반으로 최적 경로를 결정하고 (라우팅), DHCP로 IP를 할당하며, NAT로 공인/사설 IP를 변환하고, IPsec으로 보안 터널을 구성합니다. **트랜스포트 계층(L4)**에서는 신뢰성 있는 전송을 위해 TCP가 3-way Handshake 및 흐름/혼잡 제어를 수행하고, 빠르고 단순한 전송을 위해 UDP를 사용합니다.
    					

오늘 공부한 내용:
    IP 동적 할당 (DHCP), NAT, 라우팅, ICMP, IPsec 및 트랜스포트 계층 (TCP/UDP) 요약
    제공해주신 네트워크 계층의 주요 기능(DHCP, NAT, 라우팅, ICMP, IPsec)과 트랜스포트 계층(TCP, UDP)에 대한 상세 정보를 핵심적으로 정리했습니다.
    
    1. 네트워크 계층 (L3) 기능
    A. IP 주소 동적 할당 (DHCP 릴레이 에이전트)
    DHCP 릴레이 에이전트: DHCP 클라이언트와 서버가 서로 다른 네트워크에 있을 때 필수적입니다.
    
    기능: 클라이언트의 브로드캐스트 DHCP 요청 패킷을 수신한 후, 서버로 전달하기 위해 유니캐스트 패킷으로 변환하여 라우터를 넘어 전달합니다. (첫 번째 라우터에 활성화되어야 함)
    
    B. NAT (Network Address Translation) 기능
    목적: 부족한 글로벌(공인) IP 주소 문제 해결을 위해 사설 IP 주소를 공인 IP 주소로 변환하는 기술입니다. 또한, 내부 네트워크를 외부에 숨겨 보안을 강화합니다.
    
    유형:
    
    정적 NAT: 로컬 IP와 글로벌 IP를 1:1로 고정 매핑 (외부에서 내부 서버 접근 가능).
    
    동적 NAT: 글로벌 IP **풀(Pool)**에서 임의의 주소를 할당하며, 풀 수량만큼만 변환 가능.
    
    PAT (Port Address Translation) / NAPT: 포트 번호를 활용하여 여러 사설 IP를 하나의 글로벌 IP로 변환 (N:1 연결 지원). (가정/회사 공유기에서 흔히 사용)
    
    C. 라우팅 (Routing)
    정의: IP 패킷을 최적의 경로를 선택하여 목적지까지 이송하는 절차입니다.
    
    라우팅 테이블: 라우터, L3 스위치, 컴퓨터 등이 저장하는 경로 정보의 집합. 목적지 네트워크, 넥스트 홉(Next Hop), 인터페이스 등의 정보를 포함합니다.
    
    패킷 전달 과정: 송신지 MAC 주소와 수신지 MAC 주소는 홉(Hop)마다(라우터를 지날 때마다) 변하지만, 송신지 IP 주소와 수신지 IP 주소는 목적지에 도달할 때까지 변하지 않습니다 (NAT 사용 시 제외).
    
    D. ICMP (Internet Control Message Protocol)
    역할: IP 통신의 상태를 확인하거나 에러를 알리는 역할을 담당합니다.
    
    주요 메시지:
    
    Echo Request/Reply: 네트워크 연결 상태 확인에 사용 (ping 명령어).
    
    Destination Unreachable (Type 3): 수신지에 도달할 수 없는 이유를 통지 (네트워크, 호스트, 포트 도달 불가 등).
    
    Time Exceeded (Type 11): 패킷의 TTL이 0이 되어 파기되었음을 알림 (traceroute / tracert 명령어).
    
    E. IPsec (IP Security)
    역할: 네트워크 계층에서 IP 패킷을 캡슐화, 인증, 암호화하여 VPN (가상 전용선) 터널을 만드는 기술. (최근에는 SSL VPN도 많이 사용됨)
    
    작동 프로토콜 조합:
    
    IKE (Internet Key Exchange): 제어 터널을 만들어 암호화 방식, 인증 방식 합의 및 암호화에 사용할 키를 교환하는 프로토콜.
    
    ESP (Encapsulating Security Payload): IP 패킷을 새로운 IP 헤더로 캡슐화하고 암호화하여 데이터 기밀성 제공 (가장 널리 사용).
    
    AH (Authentication Header): IP 패킷을 캡슐화하지만 암호화는 하지 않음.
    
    모드: 터널 모드 (새 IP 헤더 사용, 거점 간 VPN) vs 전송 모드 (기존 IP 헤더 사용).
    
    2. 트랜스포트 계층 (L4) 프로토콜
    트랜스포트 계층은 애플리케이션 식별과 전송 제어를 담당합니다.
    
    A. UDP (User Datagram Protocol)
    특징: 커넥션리스(Connectionless) 프로토콜로, 논리적 통신로 확립 절차가 없어 빠릅니다. 신뢰성 확보를 위한 재전송/흐름 제어가 없어 즉시성이 요구되는 애플리케이션(DNS, VoIP, DHCP 등)에 사용됩니다.
    
    UDP 데이터그램 포맷: 송신지/수신지 포트, 데이터그램 길이, 체크섬으로 구성됩니다.
    
    포트 분류: System Ports (0-1023, Well-known ports), User Ports (1024-49151), Dynamic Ports (49152-65535).
    
    B. TCP (Transmission Control Protocol)
    특징: 신뢰성이 요구되는 애플리케이션에 사용됩니다. 데이터 전송 전 TCP 커넥션이라는 논리적 송신로를 3-way Handshake를 통해 확립합니다.
    
    TCP 세그먼트 포맷:
    
    시퀀스 번호 (Sequence Number): 데이터의 각 바이트에 부여된 연번, 수신 측에서 데이터 정렬에 사용.
    
    응답 확인 번호 (ACK Number): 다음에 받을 데이터의 위치를 알려줌 (시퀀스 번호 + 데이터 크기).
    
    컨트롤 비트: 커넥션 상태 제어 (SYN 연결 시작, ACK 확인 응답, FIN 연결 종료, RST 강제 연결 종료 등).
    
    윈도우 크기 (Window Size): ACK를 기다리지 않고 받을 수 있는 데이터 크기 (흐름 제어).
    
    커넥션 관리:
    
    접속 시작: **3-way Handshake (SYN -> SYN/ACK -> ACK)**를 통해 ESTABLISHED 상태 진입.
    
    접속 종료: **4-way Handshake (FIN -> ACK -> FIN -> ACK)**를 통해 CLOSED 상태 진입.
    
    TIME_WAIT: FIN 송신 후 지연될 수 있는 잉여 패킷을 기다리는 상태.
    
    데이터 전송 제어:
    
    흐름 제어 (Flow Control): 수신 측의 윈도우 크기를 이용해 데이터양 조절 (슬라이딩 윈도).
    
    혼잡 제어 (Congestion Control): 송신 측이 **혼잡 윈도우 (CWND)**를 이용해 네트워크 혼잡을 회피하고 데이터양 조절 (Slow Start, Congestion Avoidance 등).
    
    재전송 제어: 중복 ACK 또는 재전송 타임아웃 (RTO) 발생 시 패킷 재전송.
    
    SACK (Selective Acknowledgment): 손실된 특정 세그먼트만을 재전송하여 불필요한 재전송을 줄임.