2016년 8월 20일 토요일

정보보안기사 정리 25 - 네트워크 계층, 스니핑 공격, TCP/IP 프로토콜

네트워크 - 각 계층 정리(물리, 데이터링크, 네트워크, 전송 ), 스위치 환경에서의 스니핑 공격 유형(스위치 재밍, ARP 스푸핑, ARP redirect, ICMP redirect)과 대응, TCP/IP 프로토콜 계층(IP 계층, 라우팅 테이블 및 검색 방법, ICMP 프로토콜, TCP 프로토콜), IP 스푸핑, TCP 세션 하이재킹, 네트워크 관리 명령어 개념(ping, traceroute, netstat, ifconfig, route, tcpdump)


1. Physical Layer(L1)
- 데이터 전송하는 계층, 전기적 신호만 선을 타고 연결된 모든 노드에게 전달됨.
- 주요 장비
  Hub(Dummy Hub): 들어온 신호를 연결된 모든 포트로 전달하는 중계장치. (2계층에서 사용되는 Switching Hub와는 구별됨.)
  Repeater: 신호 재생장치
  * Switching Hub:  MAC이라는 목적지 주소를 이용하여 목적지 노드가 연결된 포트로만 신호를 전달함. Dummy Hub는 주소 없이 모든 노드에 전달.
- Dummy Hub 스니핑: 전달받은 패킷을 연결된 모든 노드에게 전송하므로 더미 허브에 연결된 노드들은 스니핑이 가능함.
  NIC의 기본 모드에서는 자신의 MAC 주소를 목적지로 하지 않는 패킷은 모두 폐기하므로 스니핑을 하지 않지만
  NIC의 Promiscuous Mode(무차별 모드)를 설정하면 모든 패킷을 수신하게 됨.


2. Datalink layer(L2)
- 인접노드 간의 통신을 담당. 최종 목적지 노드에 도달하기 위해서는 각각의 노드 간에 프레임에 대한 주소설정(MAC 사용)이 필요한데 이것을 L2에서 함.
- NIC의 MAC 주소를 사용.
- IEEE 802 표준에서는 LAN 상의 L2계층을 LLC(Logical Link Control)과 MAC(Media Access Control) 두계층으로 분리함.
  * LLC: Network layer(L3)와의 연결을 담당. 상위 계층으로 정상적인 데이터 전달을 위해 오류 검출 등 수행.
  * MAC(Media Access Control): L1 계층과의 연결 담당. 신호변환을 통해 물리적 계층과 연결됨.
- L2의 프로토콜: Ethernet, TokenRing, X.25, Frame Relay 등
- 신뢰성 있는 전송을 위한 기능(보통 데이터링크 컨트롤 이라고 부름)
  ① 흐름제어(Flow Control): 수신 노드의 처리속도를 고려하여 전송을 컨트롤. Stop and Wait 방식과 Sliding Window 방식을 지원함.
      * Stop and Wait: 송신측에서 프레임을 전송하고 수신측으로부터 ACK를 받을때까지 기다림.
      * Sliding Window: 한번에 여러 프레임을 전송하는 방식
  ② 오류제어: BEC(Backward Error Correction) 방식과 FEC(Forward Error Correction) 방식이 있음.
      * BEC: 송신측에서 제공한 오류검출용 부가정보를 이용하여 수신측이 점검하고 재전송을 요청하는 방식. 즉, ARQ 방식.
      * FEC: 송신측이 오류 검출 및 수정까지 가능한 정보를 함께 보냄. 재전송이 필요 없음.
  ④ 회선제어: P2P, 단방향 또는 반이중 또는 전이중 방식 지원.

- 주요 장비
  ① L2 Switch: MAC 주소 테이블을 통해 목적지 MAC 주소의 포트에 연결된 노드에게만 패킷 전송.
      * 모니터링 포트 기능: 특정 포트를 통과하는 모든 패킷을 복제하여 모니터링. 공격자가 물리적으로 스위치에 접근하면 이 기능으로 스니핑 가능.
      * Tap 장비를 통한 트래픽 분석: 추가적인 장비로 물리적으로 연결되어 설치 지점을 통과하는 모든 패킷을 모니터링 함.
  ② Bridge: 물리적으로 떨어진 동일한 LAN을 연결하는 장비.

- L2 Switch에서의 스니핑 공격
  기본적으로 목적지로만 패킷을 전송하므로 스니핑이 어려움. 이런환경에서 스니핑을 위해서는 스위치 재밍, ARP 스푸핑, ARP 리다이렉트, ICMP 리다이렉트,
  스위치의 SPAN/Monitoring Port 이용 방법을 사용함.
  ① 스위치 재밍(Switch Jamming)/MAC Flooding 공격
      스위치의 MAC 주소 테이블의 버퍼를 오버플로우 시켜서 스위치가 허브처럼 동작하게 만드는 방법.
      스위치는 Safe/Open 정책을 따르므로 장애가 발생하면 더미허브처럼 동작함.
     테이블을 오버플로우 시키기 위해 Source MAX 주소를 계속 변경하여 패킷을 지속적으로 전송함.
     * 시스템 및 네트워크 장비에 장애 발생시 보안 관련 정책은 2가지로 구분.
       1) Fail Safe(Fail Open): 장애 발생시 모든 기능 허용, 가용성을 더 중요하게 여기므로 장애 발생시 모든 트래픽을 허용함.
       2) Fail Secure: 장애 발생시 모든 기능 차단. 동작을 않함. 가용성 보다는 보안성을 중요시 함.
  ② ARP 스푸핑
      공격자가 특정 호스트의 MAC 주소를 자신의 MAC주소로 위조하고 ARP Reply 패킷을 만들어 타켓에게 지속적으로 전송하면,
      희생자의 ARP Cache 테이블에 특정 호스트의 MAC 정보가 공격자의 MAC 정보로 변경됨.
      * 지속적으로 전송하는 이유: ARP Table의 정보들은 일정시간동안만 유지되므로.
      이를 통해 특정 호스트로 가는 패킷을 공격자에게 향하게 하며, 만약 송수신 패킷을 모두 스니핑 하려면 통신하는 양쪽의 호스트를 모두 ARP 스푸핑 하면 됨.
      IP Forward 기능활성화 시켜 통해 타켓들이 스니핑을 인식하지 못하고 정상적으로 통신하게 만듦. → 스니핑을 눈치채지 못함.
      * 일반 호스트의 경우 자신을 목적지로 하지않는 패킷은 폐기하지만 IP Forward 기능을 활성화하면 라우터 처럼 동작하여 패킷들을 라우팅함.
      * ARP 스푸핑 대응: ARP 캐시를 Static으로 설정하여 변경이 안되게 함. ARP 트랙픽 모니터링 프로그램(ARPWatch 등)으로 변경 감시.
        Static 옵션 지정: arp –s ip 주소, mac 주소
  ③ ARP redirect
      공격자가 자신이 라우터인 것처럼 자신의 MAC을 ARP Reply 패킷에 담아 주기적으로 broadcast 함.
      로컬 네트워크의 모든 호스트의 ARP Cache 테이블의 라우터/게이트웨이의 MAC 주소가 공격자의 것으로 변경되어
      로컬 네트워크내에 모든 호스트와 라우터 사이의 트래픽을 스니핑 하게됨.
      IP Forward 기능활성화 시켜 통해 타켓들이 스니핑을 인식하지 못하고 정상적으로 통신하게 만듦.
  ④ ICMP redirect
      ICMP Redirect 메시지는 호스트-라우터 또는 라우터-라우터 사이의 라우팅 경로를 재설정하기 위해 사용되는 메시지.
      Redirect 메시지를 수신한 호스트는 자신의 라우팅 테이블에 특정 목적지로 나가는 gateway 주소를 변경함.
      이런 특성을 이용하여 공격자가 타켓 호스트의 특정 gateway 주소를 공격자의 주소로변경시켜 특정 목적지로 가는 패킷을 공격자쪽으로 가게함.
      공격자가 특정 IP대역 또는 패킷의 라우팅 경로를 자신의 주소로 위조한 ICMP Redirect 메시지를 생성하여 타켓 호스트에게 전송하여,
      타켓의 라우팅 테이블을 변조하여 패킷을 스니핑 함.
      IP Forward 기능활성화 시켜 통해 타켓들이 스니핑을 인식하지 못하고 정상적으로 통신하게 만듦.
      공격 예:
      -1) 보통 네트워크에 라우터나 게이트웨이는 하나지만 로드밸런싱을 위해 라우터를 두 개 이상 운영.
      -2) 로드밸런싱은 라우팅 테이블에 라우팅 엔트리를 하나 더 넣거나 ICMP 리다이렉트 방법 이용.
      -3) 호스트 A가 기본라우터 R1에게 B로 보내는 패킷을 전송. 로드밸런싱으로 R2에게 R1이 받은 패킷을 전송하고 호스트 A에게 icmp redirect 패킷을 전송하여
           이후부터 A의 패킷이 R2에게 가게함. A는 라우팅 테이블에 R2 정보를 추가.
      -4) 공격자를 라우터 R2로 인지하게 함.
      대응: ICMP Redirect 메시지에 의해 라우팅 테이블이 변경되지 않도록 ICMP redirect 옵션 해제
  ⑤ 스위치의 SPAN/Port Mirroring 기능 
      스위치의 이 기능은 스위치를 통과하는 모든 트래픽을 보는 기능.
      단, 공격자는 물리적으로 접근해서 스니핑 해야함.

- L2 Switch에서의 스니핑 공격 대응
  ① 능동적 대응: 스니퍼를 탐지.
      -1) 스니퍼는 promiscuous 모드에서 동작하며, TCP/IP를 이용하므로 요청을 받으면 요청에 대한 응답을 함.
          따라서 의심이 되는 호스트에 ping을 보내며, 이 때 받는 사람 MAC 주소를 네트워크에 존재하지 않는 MAC 주소를 위장하여 보낸다.
          네트워크 내 다른 호스트들은 자신의 MAC 주소로 온것이 아니므로 패킷을 폐기하지만 스니퍼는 이에 대한 응답을 하게 됨.
          만약 ICMP Echo Reply를 받으면 해당 호스트가 스니핑 하는 것.
      -2) ARP: 위조된 ARP 요청보내서 response가 오면 상대방이 promiscuous 모드 사용중.
      -3) ARP watch: ARP 테이블을 모니터링 하는 프로그램으로 테이블의 데이터를 변경하는 패킷이 탐지되면 관리자에게 알림.
      -4) Decoy(유인) 방법: 스니핑의 대다수 목적은 계정과 패스워드를 얻기 위한 것이므로 네트워크에 가짜 계정과 패스워드를 뿌리고,
           가짜 계정과 패스워드로 접속을 시도하는 시스템을 탐지하여 스니퍼를 감지해 냄.
  ② 수동적 대응: 통신 암호화, SSL(암호화된 웹 서핑), SSH, VPN, PGP(이메일 전송시 사용하는 암호화) 등 사용

*참고
- https://www.linux.co.kr/security/certcc/tr2000-07.htm

3. Network layer(L3)
- 라우팅 담당. 라우팅 알고리즘에 의해 패킷을 최적 경로로 전송.
- 최종 목적지 노드를 찾기위해 TCP/IP 프로토콜에서는 논리적 주소인 IP 주소를 사용함.
- 주요 프로토콜: IP(TCP/IP), IPX(Novel Netware)
- 주요 장비
  ① 라우터/L3 Switch: 라우팅 수행, 데이터 링크 계측의 브로드캐스트와 멀티캐스트를 포워딩 하지 않으며, VLAN간 통신을 가능케 하고,
      기본적인 보안 기능, QoS관련 기능 지원.


4. Transport layer(L4)
- 목적지 노드에서 최종 목적지인 프로세스를 식별하기위해 포트 사용.
- 주요 프로토콜: TCP/IP의 TCP, UDP, SCTP(TCP와UDP 조합), Novel Netware의 SPX
- 주요 장비: L4 Switch
- 신뢰성 있는 데이터전송 보장 기능
  ① Segmentation과 Reassembly(분할과 재조합)
      MTU(최대 프레임 길이)에 따라 원본 데이터를 전송가능한 크기로 분할하고 목적지에서 다시 조립.
  ② 연결지향형 TCP와 비연결지향형 UDP 지원
  ③ 흐름제어(Flow Control)
  ④ 오류제어
  ⑤ 혼잡제어(Congestion Control)


5. TCP/IP 프로토콜
OSI 7 Layer와 TCP/IP Stack
- Network Interface layer: 인접한 노드간 신뢰성 있는 데이터 전송 담당. 인접 노드를 식별하기위해 MAC 주소(48bit) 사용.
  주요 프로토콜: LAN(Ethernet, TokenRing, FDDI 등), WAN(X.25, PPP, Frame Relay 등)

- Internet layer: 라우팅 담당. 호스트 식별을 위해 IP 주소 사용.
  주요 프로토콜: IP(비신뢰성, 비연결지향 데이터그램 프로토콜), ICMP(에러 및 상태진단 메시지 프로토콜), IGMP(멀티캐스트용 프로토콜), 
  ARP(IP주소→물리주소), RARP(물리주소→IP 주소).
  * 책에 따라 ARP와 RARP를 L2 또는 L3 layer로 소개하기도 함.
  * ARP 동작 방식: http://vnfmsehdy.blogspot.kr/2014/10/computer-networking-top-down-approach-5.html 참고
  * ARP Cache 테이블: arp -a 로 캐시 내용을 보며, arp -d 로 캐시 내용 삭제.
    테이블에 유지된 IP 주소와 물리주소의 매핑 타입에서는 Dynamic과 Static이 있으며, Static은 시스템 종료시까지 유지됨.
    "arp -s IP주소 물리주소" 명령으로 Dynamic타입을 Static 타입으로 변환함.

- IP 프로토콜
  ① IP 프로토콜 구조 중 대표적 필드
      Fragmentation offset(13bit): 단편화된 원본 패킷들이 순서대로 조합될수 있도록 하는 offset 값을 저장함. (중간노드에서 분할되도 최종목적지에서 조합됨)
      Time to live(TTL, 8bit): 라우터/게이트웨이 통과 횟수. 패킷이 목적지에 도달 안하면 무한 루핑이 발생할 수 있으므로 TTL 값을 설정하여
      통과될때마다 -1씩 하고 0이되면 폐기함. OS마다 TTL 값이 다르므로 "OS 핑거프린트" 목적으로 사용가능.
  ② 라우팅 규칙
      목적지 주소가 자신과 동일한 네트워크에 있다면 직접 전송.
      목적지 주소가 다른 네트워크에 속한다면 직접 전송이 불가능하므로 1차 경유지(gateway) 주소를 라우팅 테이블에서 찾음.
      (netstat -rn 명령어로 호스트의 라우팅 테이블 정보확인 가능)
      목적지 주소가 자신일 경우 상위 계층으로 데이터 전송.
  ③ 라우팅 테이블 검색 방식 및 우선순위
      IP 패킷의 목적지 IP와 라우팅 테이블의 netmask/genmask를 bit and(&)  연산 수행후 라우팅 테이블의 destination 필드와 비교하여 일치하는 경로로 패킷 전송.
      * bit and  연산을 하는 것은 목적지 IP에서 네트워크 ID만 추출하는 것.
      검색 우선순위:
      -1) 목적지 IP 주소와 일치하는 경로 찾음.
      -2) 목적지 IP 주소와 일치하는 경로가 없다면, 목적지 네트워크 주소와 일치하는 경로 찾음.
      -3) 일치하는 경로가 없다면 기본 게이트웨이로 보냄.
  ④ 라우팅 테이블 검색 예
      라우팅 테이블 구성: destination ip, gateway ip, genmask, flags, interface
      -1) destination ip: 목적지 호스트 주소
      -2) gateway ip: 목적지 호스트로 가기위한 gateway 주소, genmask: 목적지 호스트를 식별하기위한 마스크(255, 255, 255, 255),
      목적지 network를 식별하기위한 마스크(넷마스크), 기본 gateway를 식별하기위한 마스크(0,0,0,0)
      -3) Flags: 해당 경로에 대한 상태 정보 플래그, U(경로 활성화), G(gateway 사용중), H(목적지가 호스트)
      경로 계산 예:
      -1) 패킷 목적지가 10.0.96.100 일 경우,
           테이블의 첫번째 행의 genmask(255,255,255,255)와 bit and 연산 수행.
           결과: 목적지 주소가 10.0.96.100이고,
           테이블에 목적지 주소가 일치하는 것이 있으면 해당 목적지의 게이트웨이 주소와 인터페이스로 패킷 전송.
      -2) 테이블의 첫번째 행의 genmask와 bit and 연산을 하고 목적지 주소와 비교했지만 일치하는 것이 없는 경우, 두번째 행, 세번째 행 순서로 진행하면서
           genmask와 bit and 연산을 하고 목적지 주소와 비교. 일치하는것이 테이블에서 나올때까지 진행 함.
      -3) 일치하는 목적지 주소가 없는 경우 기본으로 설정된 게이트웨이 주소로 패킷 전송.

  ⑤ IP 스푸핑(Spoofing): IP를 속이고 통신하는 공격.
      서버와 클라이언트 사이의 통신이 연결된 것을 확인(신뢰관계 확인)하고 클라이언트를 연결 불능 상태로 만든 후(DoS 공격 등을 이용)
      공격자가 클라이언트 IP로 위조(Spoofing)하여 서버에 접속하는 것.
      예: 공격자는 클라이언트의 IP로 위조 후 rlogin 등으로 서버에 접속한 후 백도어 등을 설치함.
      대응: r계열(rlogin 등) 서비스 원격 접속 차단, 패킷 필터링, tcp wrapper, ssh 운영, 인증 사용.

- ICMP 프로토콜
  ① L3(Network layer, Internet layer)의 IP 프로토콜은 신뢰할 수 없는 프로토콜 이므로 전송상태에 대한 관리를 할 수 없음.
      그러므로 IP 패킷 전송 중 에러 발생 시 원인을 알려주거나 네트워크 상태를 진당해주는 ICMP 프로토콜을 만듦.
  ② 주요 ICMP 에러 보고 메시지
      Destination Unreachable: 목적지 도달 불가. (최종 단계의 라우터가 목적지로 패킷 전송 실패, 목적지 호스트에서 특정 프로토콜 사용 불가,
      IP 헤더의 단편화 불가 플래그 설정으로 인한 전송 불가, UDP 포트가 닫혀있음, TCP 포트가 닫혀 있으면 TCP RST 패킷 반환)
      Redirection: 라우팅 경로가 잘못되어 새로운 경로를 알려주는 메시지. ICMP Redirect 공격에 사용 됨.
      Time Exceeded: TTL 값이 0이 되 패킷 폐기됨. 또는 단편화된 조각 일부가 손실됨.
  ③ 주요 ICMP Query 메시지
      Echo Request and Reply: 송신지와 수신지 사이의 네트워크 및 호스트 상태 진단을 목적으로 사용됨.
  ④ ICMP Redirect 공격:  L2 Switch에서의 스니핑 공격 파트에서 설명함.

- TCP 프로토콜
  ① 신뢰할 수 있는 프로토콜. 흐름제어, 에러제어, 혼잡제어 등 수행
  ② TCP 상태 플래그
      URG(긴급데이터 설정), ACK(수신 확인 응답 설정), PSH(송수신 버퍼에 있는 데이터 즉시처리 설정), RST(연결 강제 종료), SYN(연결설정), FIN(정상종료)
  ③ 연결 설정 과정(3-Way Handshake)
      -1) SYN(연결 요청) 패킷을 클라이언트가 서버에게 보냄. SYN은 synchronize(동기화)의 줄임말로 서로간에 Sequence Number를 동기화하자는 의미.
           최초 Sequence Number는 0이 아닌 랜덤 값.
      -2) 클라이언트의 SYN 연결 요청 패킷에 대해 서버가 ACK(확인응답) 패킷에 SYN 설정을 하여 보냄.
           ACK 설정시 다음에 상대방이 보낼 패킷의 Sequence number를 담아보냄. 즉, 클라이언트가 보낸 패킷에 설정된 Sequence number+1이
          서버가 보낼 Sequence number. 상대방의 SYN 패킷을 수신한 TCP 상태를 SYN_RECV라고 함.
      -3) 서버의 SYN 패킷에 대해 클라이언트는 ACK를 전송하고 최종적으로 연결 설정을 완료함.
  ④ 연결 종료 과정
      -1) 클라이언트가 서버와의 연결을 종료하기 위해 FIN 패킷을 보냄.
      -2) 서버는 연결 종료 요청에 대한 수신확인응답 ACK를 클라이언트에게 보냄.
      -3) 서버는 해당 서버 어플리케이션이 소켓 종료 시스템콜을 할때까지 대기한 후 종료되면, 다시 클라이언트에게 연결 종료 패킷 FIN+ACK 패킷을 보냄.
      -4) 서버의 ACK를 수신한 클라이언트는 서버에게 수신확인 응답 ACK를 보낸후 2MSL(최대 세그먼트 생존시간, 보통 1~4분) 동안 대기했다가 종료함.
           대기하는 이유는 만약 서버가 클라이언트의 마지막 ACK를 못받으면 서버가 FIN+ACK 패킷을 재전송할 것이고 이를 처리하기 위해서임.
  ⑤ 클라이언트가 TCP 프로토콜 사용시 연결을 위해 SYN 패킷 전송했지만 서버가 해당 포트를 열지 않으면 RST+ACK 패킷이 반환되고 연결 종료수행.
  ⑥ 클라이언트가 강제로 연결 종료시, RST+ACK 패킷을 서버에 보내면 서버는 즉시 TCP 연결 종료 수행.

  ⑦ TCP 세션 하이재킹(Session Hijacking) 공격
      TCP로 연결된 두 호스트는 출발지 IP/PORT, 목적지 IP/PORT, Sequence number, Acknowledgment number 같은 세션 정보를 이용하여 서로를 인식함.
      TCP 세션 하이재킹은 이런 세션 식별 정보를 공격자가 위조하는 것.
      패킷을 스니핑 하고 있던 공격자는 출발지 IP/PORT로 자신의 패킷을 위조(스푸핑)하고 Sequence number를 예측하여 목적지에 보내고 세션을 탈취함.
      이러한 공격은 클라이언트-서버 간의 통신 뿐만 아니라 트러스트(신뢰)를 이용한 세션, 텔넷, FTP 등 TCP를 이용한 거의 모든 세션의 탈취가 가능함.
      -1) 특징: Sequence number에 따른 TCP 연결 상태는 동기화와 비동기화 두가지 임. 정상적 접속이면 연결된 양쪽의 호스트는 동기화상태 임.
           비동기화 상태는 서버가 초기 설정 단계의 접속을 끊고 새로운 접속을 생성하여 Sequence number가 바뀔때 또는 대량의 null data를 보냈을 때 만들어짐.
           원격 세션 하이재킹 공격: TCP Sequence number를 모를때 추측하여 공격하는 것.
           로컬 세션 라이재킹 공격: TCP 세션을 탐지할 수 있는 상태에서 공격하는 것.
      -2) 공격절차: 패킷을 스니핑하고 있던 공격자는 출발지 IP/PORT로 자신의 패킷을 위조(스푸핑)하고 Sequence number를 예측 또는 적절하게 설정.
           RST 패킷을 서버쪽에 보내 서버의 연결을 끊음. 서버는 잠시 Closed 상태이고, 클라이언트는 계속 Established 상태로 있음.
           공격자가 위조한 패킷을 서버에 보내면 서버가 새로운 번호를 받아들이고 공격자, 클라이언트, 서버 모두 Established 상태가 됨.
      -3) 위조된 패킷을 받은 호스트(서버)는 정상 응답 ACK패킷을 보내는데 공격자가 아닌 정상적으로 연결된 상대 호스트(클라이언트)는 패킷도 안보냈는데,
      Acknowledgment number가 증가된 응답패킷을 받게되는 상황이 발생함.
      클라이언트 호스트는 이를 교정하기 위한 ACK를 상대 호스트(서버)에게 보내고, 서버 호스트는 ACK를 수신하고 교정을 위해 ACK 메시지를 보냄.
      이과정이 반복적으로 대량으로 발생하는데 이를 "ACK STORM" 이라고 함. 공격자에 의해 세션의 Seq. number, Ack. number가 조작되므로
      정상적인 두 호스트(서버, 클라이언트)는 ACK를 보내도 해결할 수 없게됨.
      결과적으로 공격자는 정상 클라이언트에게 RST 패킷(강제종료)을 보내 연결을 종료하고 공격자와 서버만 세션을 유지하게 됨.
      -4) 대응: SSH 같은 암호화된 연결 사용. Seq.number 체크를 통한 비동기화 상태 탐지. ACK Storm 탐지. 갑작스런 세션 리셋(Reset) 탐지. 주기적 사용자 인증.
      * HTTP Session Hijacking와는 다른 것이므로 헷갈리지 말것.


6. 네트워크 관리 명령어
- ping 명령: 타켓 호스트 접근, 해당 구간에 대한 네트워크 속도, 손실률 등을 검사
  ICMP Echo Request와 Echo Reply 메시지 이용.
  예: 128바이트 패킷을 google.com에 5번 전송.
       (window) ping -n 5 -l 128 www.google.com
       (Linux) ping -c 5 -s 128 www.google.com
- traceroute 명령: 두 호스트 사이의 여러 노드(라우터)들의 각 구간에 대한 네트워크 상태 관리.
  UDP 패킷의 포트를 안쓸것 같은 것으로 설정하고, TTL값을 1씩 증가시키면서 패킷을 타켓 호스로 보냄.
  TTL 값을 0으로 만든 호스트는 최초 출발지로 ICMP Time Exceeded 메시지를 보내는데 이것으로 상태 관리.
  보안상의 이유로 ICMP 응답을 비활성화시키는 경우가 많음.
  목적지 호스트에서는 당연히 안쓰는 포트가 닫혀있으므로 출발지로 ICMP Destination Unreachable 메시지가 반환되고 출발지가 호스트까지의 상태를 알게됨.
  예: traceroute 123.123.122.12
- netstat 명령: 시스템의 네트워크 상태정보 관리.
  -a 옵션: 모든 연결 및 연결 요청 대기 소켓 정보
  -i 옵션: 네트워크 인터페이스 정보
  -r 옵션: 시스템의 라우팅 테이블 정보
  -s 옵션: 각 프로토콜(TCP, UDP, ICMP, IP 등)별 통계정보
  n 네트워크 주소를 숫자형식으로 출력하라는 것으로 위의 옵션들과 붙여서 씀.
- ifconfig 명령: 네트워크 인터페이스 설정 정보 조회
  IP 주소, MAC 주소, 연결된 인터페이스(Ethernet 등) 종류, 브로드캐스트 주소, 넷마스크, 인터페이스 활성화 여부, MTU 등의 정보를 보여줌.
- route 명령: 라우팅 테이블 설정.
  route add 또는 route delete 로 설정
  예: route add -net 123.0.1.2 netmask 255.255.255.0 gw 192.168.0.122 (gw: gateway)
       route del -net 123.0.1.2 netmask 255.255.255.0 gw 192.168.0.122
- tcpdump 명령: 네트워크 패킷/로그 분석
  스니핑 도구의 일종. 자신의 컴퓨터에 들어오는 모든 패킷의 내용을 봄.
  예: tcpdump -i eth0 , eth0 인터페이스의 트래픽 모니터
      tcpdump host 123.142.23.9 and port 80 , 출발 또는 목적지 IP가 123.142.23.9이고 포트가 80인 패킷 모니터링

댓글 없음:

댓글 쓰기