정보보안기사

[정보보안기사(실기)] SECTION 04 네트워크 기본 학습 (2)

tnvori 2026. 4. 16. 16:32

용용선생. 쏜애플 노래를 틀어주는 게 인상적


3. ARP/RARP 프로토콜

  1. 개요
    • 네트워크 계층에서 IP 프로토콜 하위에 있는 프로토콜
    • 데이터링크 계층 프로토콜로 캡슐화
  2. ARP 프로토콜 구조
    • Hardware Type(16bit) — 물리적인 주소의 프로토콜 타입
    • Protocol Type(16bit) — 논리적인 주소의 프로토콜 타입
    • Hardware Length(8bit) — 물리적인 주소 길이
    • Protocol Length(8bit) — 논리적인 주소 길이
    • Operation(16bit) — 동작 모드(1: ARP Request, 2: ARP Reply)
    • Sender hardware address
    • Sender protocol address
    • Target protocol address — 요청 시 대상 호스트의 MAC 주소를 모르므로 모든 비트를 0으로 채움
    • Target protocol address
  3. ARP 동작 방식
    1. 요청 메시지를 생성하여 브로드캐스트 방식으로 전송
    2. 응답자는 유니캐스트 방식으로 전송
    3. 요청자와 응답자 모두 자신의 ARP 캐시 테이블에 상대방의 MAC 주소 정보를 일정 시간 유지하고 이를 참조
  4. ARP 캐시 테이블 관리
    • 개요
      • 동적 정보 — ARP 요청/응답 메시지를 통해 설정된 정보로 일정 시간 동안 유지된 후 삭제
      • 정적 정보 — 관리자에 의해 설정된 정보로 시스템이 종료하기 전까지 지속해서 유지되면 ARP 요청/응답 메시지에 의해 갱신되지 않음
    • 명령어
      • ARP 캐시 정보 확인 — arp -a
      • ARP 캐시 정보 삭제 — arp -d
      • ARP 캐시 정적 설정 — arp -s
        • 정적 정보는 PERM으로 표시

4. IP(IPv4) 프로토콜

  1. 개요
    • 비연결형 프로토콜 — 논리적인 연결 상태를 유지하지 않아 패킷의 전송 순서를 보장하지 않음
    • 비신뢰적 프로토콜 — 목적지까지 패킷의 안전한 전송을 보장하지 않음
      • 최선 노력형 프로토콜
      • 신뢰성 있는 전송을 위해 필요한 제어(흐름 제어, 오류 제어, 혼잡 제어, 순서 제어 등)를 수행하지 않음
  2. IP 프로토콜 구조
    • VER(4bit)
    • HLEN(4bit) — 4바이트 단위
    • Service type(8bit) — IP 패킷의 우선순위 및 서비스 품질(전달 지연 정보, 처리율, 신뢰성 등)을 설정하기 위한 필드
    • Total length(16bit)
    • Identification(16bit) — 단편화 전 원본 IP 데이터그램을 식별하기 위한 ID 필드
    • Flags(3bit)
      • 첫 번째 비트 — 사용 안 함(예약)
      • 두 번째 비트 — DF 비트
        • 전송 과정에서 단편화 허용 여부
        • 0 — 단편화 허용
        • 1 — 단편화 미허용
      • 세 번째 비트 — MF 비트
        • 1 — 재조합할 추가 단편이 남아있음
        • 0 — 추가 단편이 더 이상 없음
      • Fragment offset(13bit)
        • 최종 목적지에서 단편 재조합 시 순서를 보장하기 위한 위치값 필드
        • 원본 IP 데이터그램에서 해당 단편의 상대 위치를 나타냄
        • 8바이트 단위로 설정
      • Time to live(8bit)
        • IP 패킷의 생존 시간을 설정하는 필드로 홉 카운트로 표시
        • 라우팅 과정에서 루핑 현상 방지
        • 리눅스는 64, 윈도우는 128, 유닉스는 255
      • Protocol(8bit)
        • 상위 프로토콜을 식별하기 위한 프로토콜 번호 필드
        • ICMP(1), TCP(6), UDP(17) 등
      • Header checksum(16bit)
      • Source IP address(32bit)
      • Destination IP address(32bit)
      • 주요 IP 옵션 헤더
        • Loose source route — 출발지에서 지정한 경로로 라우팅할 수 없는 경우 다른 경로로 라우팅 가능
        • Strict source route — 출발지에서 지정한 경로로만 라우팅하는 옵션
  3. IP 단편화 및 재조합
    • 개요
      • 하위 계층의 다양한 물리적 네트워크 프로토콜 프레임으로 캡슐화되기 위해 MTU에 따른 단편화 발생
        • MTU — 물리적 네트워크 프로토콜 프레임의 페이로드 최대 크기
        • 이더넷 — 1500바이트
        • FDDI — 4352
        • X.25 — 576
        • PPP -296
      • 단편화는 경유 구간의 MTU에 따라 추가로 발생할 수 있지만 재조합은 최종 목적지에서만 발생
      • 일정 시간 이내에 재조합에 실패하면 수신한 모든 단편을 폐기하고 오류 보고 메시지 전송
    • 단편화 동작 방식
      • Offset = 해당 단편 위치(8바이트 단위로 설정(// 8)
    • 단편화의 단점과 PMTUD
      • 단편화가 최대한 발생하지 않도록 경유 구간의 MTU 중 가장 작은 값 계산
      • DF 플래그를 설정한 패킷을 성공할 때까지 전송 후 MTU 설정
  4. IP 라우팅
    • 라우팅 규칙
      1. 목적지 주소가 동일한 네트워크에 있다면 직접 전송
      2. 목적지 주소가 자신과 동일한 네트워크에 속하지 않는다면 1차 경유지 주소를 라우팅 테이블을 참조하여 찾음
      3. 목적지가 자신인 경우 상위 계층으로 데이터 전달
    • 라우팅 테이블 검색 방법 및 우선순위
      • 검색 방식 — IP 패킷의 목적지 주소와 라우팅 테이블의 Netmast(Genmask)를 bit and 연산 수행 후 라우팅 테이블의 Destination 필드와 비교, 일치하는 경로를 선택하여 패킷 전송
      • 검색 우선 순위 — 최장 프리픽스 매치 방식
        1. 목적지 IP 주소와 일치하는 경로 탐색
        2. 목적지 네트워크 주소와 일치하는 경로 탐색. 여러 개라면 가장 긴 목적지 네트워크 주소와 일치하는 경로 우선
        3. 일치하는 경로가 없으면 기본 게이트웨이로 전송
    • 실습
      • (리눅스) 라우팅 테이블 설정 일부 — netstat -rn
        • Destinataion
        • Gateway
        • Genmask — 범용 목적의 마스크
        • Flags — 해당 경로에 대한 상태 정보 플래그
          • U(route is UP) — 해당 경로가 활성화되어 있음
          • G(use Gateway) — 해당 경로는 게이트웨이 사용
          • H(target is a Host) — 해당 경로의 목적지는 호스트를 의미함
        • Interface — 해당 경로로 보내기 위한 네트워크 인터페이스 이름
  5. IP Spoofing
    • 개요
      • IP를 속이고 통신하는 공격
      • 신뢰 관계 이용
    • 실습
      • /etc/hosts.equiv 파일 — 현재 호스트의 모든 계정에 대해 신뢰 관계를 설정하는 파일
      • $HOME/.rhosts 파일 — 현재 호스트의 계정별로 신뢰 관계를 설정하는 파일
    • 대응책
      • 시스템간 트러스트 설정을 사용하지 않는다
      • 필요한 경우 신뢰하는 시스템의 MAC 주소를 정적으로 설정하여 IP 주소만 위조한 접속을 차단한다
    • $HOME/.rhosts, hosts.equiv 사용 금지
      • 개요
        • r 계열 서비스를 통한 원격 접속은 보안상 매우 취약함
        • 사용할 경우 $HOME/.rhosts, hosts.equiv에 적절한 보안 조치 필요
      • 보안 조치
        • /etc/hosts.equiv 및 &HOME/.rhosts 파일 소유자를 root 또는 해당 계정으로 변경
        • /etc/hosts.equiv 및 $HOME/.rhosts 파일 권한을 600 이하로 변경
        • /etc/hosts.equiv 및 $HOME/.rhosts 파일에서 + 기호를 제거하고 반드시 필요한 호스트 및 계정만 등록