제3부 네트워크 보안 1장 TCP / IP

Download Report

Transcript 제3부 네트워크 보안 1장 TCP / IP

TCP/IP
㈜ 올앳 나익채
Transmission Control Protocol/Internet Protocol
1
목차
가. TCP/IP 개요
나. Network Interface Layer
다. Internet Layer
라. Transport Layer
마. 프로토콜 취약점을 이용한 대표적인 공격
바. TCP/IP 관리 명령어
Transmission Control Protocol/Internet Protocol
2
가. TCP/IP 개요
역사
 1969년

미국방성의 ARPANet를 위하여 개발된 프로토콜
 1982년

프로토콜 모델이 공개되면서, TCP/IP가 인터넷 프로
토콜로 지정
 1990년

ARPANet 없어짐
 1992년

WWW 시작
Transmission Control Protocol/Internet Protocol
3
OSI 7계층과 TCP/IP 프로토콜
Transmission Control Protocol/Internet Protocol
4
TCP/IP에서 데이터의 전달 과정
T.H : TCP Header
I.H : IP Header
F.H : Frame Header
F.T : Frame Trailer
Transmission Control Protocol/Internet Protocol
5
응용층에서 제공하는 주요 프로토콜
분류
파일 송수신
메일 송수신
기능
Protocol
FTP
파일 송수신
NFS
네트워크를 통해 다른 시스템의 파일 시스템을 이용할 때 쓰임
SMTP
POP
메일서버와 메일서버간의 메일 송수신
메일서버와 메일클라이언트간의 메일 송수신
원거리 접속
Telnet
다른 시스템으로 로그인 할 수 있는 기능
망 관리
SNMP
데이터흐름 정보를 가지고 네트워크 및 시스템의 상태 파악
기타
DNS
호스트이름에 대한 IP Address를 알려주는 기능
HTTP
Web 서비스 Protocol
FTP : File Transfer Protocol
NFS : Network File System
SMTP : Simple Mail Transfer Protocol
POP : Post Office Protocol
Telnet : Telecommunication Network Protocol
SNMP : Simple Network Management Protocol
DNS : Domain Name System
HTTP : Hyper Text Transfer Protocol
Transmission Control Protocol/Internet Protocol
6
나. Network Interface Layer
Network Interface Layer 개요
 실제
네트워크에서 전송매체에 프레임 전송
 IP층에서 받은 패킷에 Preamble와 CRC 추가


Preamble : 프레임의 시작을 정의하는 바이트
CRC : 프레임이 손상되지 않았음을 검증하는 수학적
계산값
Transmission Control Protocol/Internet Protocol
7
다. Internet Layer
 IP (Internet Protocol) Address

각각의 컴퓨터를 네트워크에서 유일하게 구분
해 줄 수 있는 고유번호
Transmission Control Protocol/Internet Protocol
8
ipconfig를 이용한 TCP/IP 구성 확인
Transmission Control Protocol/Internet Protocol
9
IP 주소의 이해
IP Address = Network ID + Host ID
집 주소 = 시/도/동 + 번지
다음 예제에서의 2가지 가정
 편지의
주소는 "동"과 "번지"만으로 이루어진다.
 같은 동에 속한 사람들끼리는 직접 편지를 교환
하고, 다른 동으로 편지를 보내기 위해서는 반드
시 우체국을 이용해야 한다.
Transmission Control Protocol/Internet Protocol
10
Network ID의 이해 1
 삼성동 100번지"에 사는 사람이, "대치동 100번지"
로 편지를 발송하는 상황
동 = Network ID
번지 = Host ID
우체국 = Router
Transmission Control Protocol/Internet Protocol
11
Network ID의 이해 2
 같은 "동"에 있는 "삼성동 200번지"로 편지를 배달
동 = Network ID
번지 = Host ID
우체국 = Router
Transmission Control Protocol/Internet Protocol
12
Network ID의 이해 3
 "삼성동 200번지"에 살던 [B]라는 사람이 "대치동"
으로 이사를 했지만, 주소는 그대로 "삼성동 200번
지"를 사용하고 있다고 가정해 보자.
Transmission Control Protocol/Internet Protocol
13
IP Address(주소지정)
 32비트 4바이트로 구성
 0-255 사이의 숫자 지정
 10진수로 표기하며, dot로 구분
Transmission Control Protocol/Internet Protocol
14
IP Address 표기
Transmission Control Protocol/Internet Protocol
15
IP Address 체계에서의 가장 큰 수
 IANA(Internet Assigned Numbers Authority)에서 관리
 ISP (Internet Service Provider)에게 발급
 일반 사용자들은 ISP로부터 할당
Transmission Control Protocol/Internet Protocol
16
IP Address 구분
 A Class = Network ID(1바이트) + Host ID(3바이트)
 B Class = Network ID(2바이트) + Host ID(2바이트)
 C Class = Network ID(3바이트) + Host ID(1바이트)
Transmission Control Protocol/Internet Protocol
17
첫 번째 옥텟의 계산 근거
Transmission Control Protocol/Internet Protocol
18
첫 번째 옥텟의 계산 근거
 A Class
 00000000 (가장 작은 수)
-> 0, this Network
 00000001 (유효한 가장 작은 수)
-> 1
 01111110 (유효한 가장 큰 수)
-> 126
 01111111 (가장 큰 수)
-> 127 Loopback Address
 B Class
 10000000 (가장 작은 수)
-> 128
 10111111 (가장 큰 수)
-> 191
 C Class
 11000000 (가장 작은 수)
-> 192
 11011111 (가장 큰 수)
-> 223
Transmission Control Protocol/Internet Protocol
19
Host ID 범위의 계산 예제
Transmission Control Protocol/Internet Protocol
20
클래스별 Network ID & Host ID
Transmission Control Protocol/Internet Protocol
21
Subnet Mask & Default Gateway
Transmission Control Protocol/Internet Protocol
22
Subnet Mask & Default Gateway
 B가 C에게 메시지를 보내고자 할 때,
 C가 자신과 같은 네트워크에 있는지(로컬인지)?,
 다른 네트워크에 있는지(원격지인지)? 결정

IP Address를 이용하는데 IP Address중에서 Network ID부
분을 가려낸 다음 Network ID를 서로 비교


자신의 Network ID와 상대방 컴퓨터의 Network ID가 같다면 당연
히 같은 네트워크임을 의미
Network ID가 서로 다르다면 서로 다른 네트워크임을 의미
Transmission Control Protocol/Internet Protocol
23
Subnet Mask
 IP Address중에서 네트워크ID 부분을 가려내는 역
할
 잘못 입력하면 통신 불가능
 Subnet Mask를 이용하여 상대방 컴퓨터가 로컬인지
원격지인지 판단
 예제

B의 Network ID와 C의 Network ID를 계산하는 방법을 그
림으로 표현
Transmission Control Protocol/Internet Protocol
24
로컬인지 원격인지 결정하는 방법
Transmission Control Protocol/Internet Protocol
25
Subnet Mask 결정 방법
 IP Address 중 Network ID 부분은 “1”로 기록하고,
Host ID 부분은 “0”으로 기록한다.
Transmission Control Protocol/Internet Protocol
26
Default Gateway
 목적지 호스트가 자신과 같은 로컬에 있는지 원격
지에 있는지를 판단하여,
 원격지에 있는 결과가 나오면 Default Gateway를 이
용하여 통신
 자신의 네트워크에 있는 라우터의 로컬 인터페이스
의 IP Address
 만일 목적지 호스트가 자신의 로컬 네트워크에 있
다면, Default Gateway는 쓰임새가 없다.
Transmission Control Protocol/Internet Protocol
27
CIDR (Classless InterDomain Routing)
 문제가 되는 네트워크에서 Broadcast 통신을 줄이는
방법으로,
 OSI 네트워크계층의 장비인 Router를 통하여 네트
워크를 여러 개의 Broadcast Domain으로 세그먼트
화하는 방법
 네트워크를 여러 개로 나누면, 각각의 네트워크에
서 발생되는 Broadcast 패킷은 해당 네트워크에 한
정되기 때문에, 그만큼 효율적인 네트워크의 사용
이 가능해 진다.
Transmission Control Protocol/Internet Protocol
28
Subnetting 계산 방법
1. 회사에서 필요로 하는 네트워크의 수 결정
1.
2.
향후 확장을 고려
예제에서는 4개의 네트워크가 필요
2. 필요한 Network ID를 만들기 위해, bit의 수 결정
1.
22= 4 (4개의 네트워크는 2비트 필요)
3. 서브넷 마스크(User defined Subnet Mask) 계산
Transmission Control Protocol/Internet Protocol
29
Subnetting 계산 방법
4. 서브넷 ID 계산
1.
서브넷팅된 Network ID (Subnet ID)를 계산
Transmission Control Protocol/Internet Protocol
30
Subnetting 계산 방법
5. 서브넷별 호스트ID의 범위 계산

예외






000000 : 해당 네트워크 주소
111111 : 해당 네트워크 브로드케스트 주소
207.46.230.1 ~ 207.46.230.62
207.46.230.65 ~ 207.46.230.126
207.46.230.129 ~ 207.46.230.190
207.46.230.193 ~ 207.46.230.254
Transmission Control Protocol/Internet Protocol
31
Subnetting 계산 방법
Transmission Control Protocol/Internet Protocol
32
서브넷팅 빠른 계산 방법
문제
C Class Network ID하나를 할당 받았다.
 회사에서는 6개의 물리적인 네트워크로 나뉘어
있다.
 6개의 네트워크를 지원하기 위한 Subnet ID와 각
서브넷별 Host ID의 범위를 구하면?
 218.55.9.0
Transmission Control Protocol/Internet Protocol
33
서브넷팅 빠른 계산 방법
1. 6개의 네트워크를 지원하기 위해 필요한 비트의
개수 산출 : 3개(6<23)
2. 사용자정의 서브넷 마스크를 계산하면

255.255.255.224
3. Subnet ID 계산

0, 32, 64, 96, 128, 160, 192, 224
4. Host ID 계산

다음 그림 참조
Transmission Control Protocol/Internet Protocol
34
서브넷팅 빠른 계산 방법
Transmission Control Protocol/Internet Protocol
35
CIDR 표기법
207.46.230.2/26
 26비트가
Network ID
 Subnet Mask : 255.255.255.192
Transmission Control Protocol/Internet Protocol
36
2. Internet Layer 프로토콜
 역할

패킷을 목적지까지 전달
 종류

IP (Internet Protocol)
 ICMP (Internet Control Message Protocol)
 IGMP (Internet Group Message Protocol)
 ARP (Address Resolution Protocol)
 RARP (Reserve Address Resolution Protocol)
 IP는 패킷의 최단경로 제공하지만, 신뢰성은 없다.
 Transport Layer의 TCP가 재전송 기능을 담당
Transmission Control Protocol/Internet Protocol
37
IP Header의 형식
Transmission Control Protocol/Internet Protocol
38
IP Header의 형식
명 칭
역 할
VERS
인터넷 프로토콜 버전으로 현재 IP는 버전 4
HLEN
IP 프로토콜 헤더의 길이
Service Type
교환하는 데이터의 종류에 따라 지연, 통신효율, 신뢰성의 우선순위를 지정할 수 있음
Total Length
IP의 프로토콜 헤더에 계속되는 데이터도 포함한 IP 패킷의 전체 길이
Identification
상위층으로부터 각 IP 데이터그램을 분별하기 위한 식별번호
Flags
IP 데이터그램이 분할( Fragment )에 관한 정보를 나타냄
Format Offset
각 프래그먼트의 원 데이터에 있어서의 위치를 바이트 단위로 나타냄
TTL
Time To Live의 약자로 통과가능한 라우터의 남은 수를 나타냄
라우터를 경유할 때마다 이 값이 하나씩 줄어든다.
Protocol Type
데이터에 포함되는 상위 프로토콜( TCP :6, UDP :17 )의 종류를 나타냄
Header Checksum
IP 프로토콜 헤더 자체의 내용이 바르게 교환되고 있는가를 점검
Source IP A'd
발신원의 IP Address
Destination IP A'd
수신처의 IP Address
Transmission Control Protocol/Internet Protocol
39
IP와 TCP/UDP와의 관계
Transmission Control Protocol/Internet Protocol
40
ICMP (Internet Control Message Protocol)
 IP 프로토콜 내의 에러제어를 위한 프로토콜
 ICMP의 제어 메시지는 IP 데이터그램의 데이터부
에 실리어 전송
 인터넷 초창기에는 통신회선이 끊어지거나 라우터
나 서버가 다운돼 패킷을 전달할 수 없을 경우, 이를
해결할 수 있는 메커니즘이 없었다.
 따라서 이러한 문제점을 극복하기 위해 패킷을 전
달하지 못하는 것에 대한 정보나 에러를 보고할 수
있는 기능을 추가
Transmission Control Protocol/Internet Protocol
41
ICMP (Internet Control Message Protocol)
ICMP 메시지 유형
 Error-Reporting




Destination Unreachable (목적지 전달 불가) : 3
Time Exceeded (시간 초과) : 11
Source Quench (발신지 억제) : 4
Redirect (방향 재설정) : 5
 Query




Message
Message
Echo Request (응답 요구) : 8
Echo Reply (응답 : 정상 상태) : 0
Address Request(주소 요청) : 17
Address Reply(주소 응답) : 18
Transmission Control Protocol/Internet Protocol
42
ICMP 메시지 유형
Transmission Control Protocol/Internet Protocol
43
ARP (Address Resolution Protocol)
 IP Address를 알고 Mac Address를 모를 때,
 Data Link 계층의 Mac Address를 알아내는 프로토콜
 Local Computer 에서의 ARP 통한 Mac Address 파악
Transmission Control Protocol/Internet Protocol
44
ARP (Address Resolution Protocol)
 Remote Computer에서 ARP 통한 Mac Address 파악
Transmission Control Protocol/Internet Protocol
45
RARP (Reverse ARP)
 Mac Address는 알고 있는데 IP Address를 모를 경우
 Network 계층인 IP Address 알아내는 프로토콜
 Local Computer 에서의 RARP 통한 IP Address 파악
Transmission Control Protocol/Internet Protocol
46
RARP (Reverse ARP)
 Remote Computer에서의 RARP 통한 IP Address 파악
Transmission Control Protocol/Internet Protocol
47
IGMP (Internet Group Message Protocol)
 Multicast 메시지와 관련
 IGMP를 사용하는 라우터는 멀티캐스트를 받아야
할 호스트 컴퓨터를 판단하고, 다른 라우터로 멀티
캐스트 정보를 전달
 IGMP 패킷은 IP 데이타그램을 통해서 전달
 참고 : TCP/IP 통신의 유형



Unicast : 1:1 통신
Multicast : 1:多 통신
Broadcast : 1:all 통신
Transmission Control Protocol/Internet Protocol
48
Ethernet에서 TCP/IP를 이용한 데이터 전달과정
T.H : TCP Header
I.H : IP Header
E.H : Ethernet Header
E.T : Ethernet Trailer
Ethernet Frame
= Ethernet Header(14Byte) + IP Header(20Byte)
+ TCP Header(20Byte) + Data + Ethernet Trailer(4byte)
Transmission Control Protocol/Internet Protocol
49
라. Transport Layer
 Application Layer로부터 받은 Data를 Segment 형태
로 만들어 네트워크를 통해 목적지까지 전달
 TCP 와 UDP 두 가지 프로토콜 제공
Transmission Control Protocol/Internet Protocol
50
라. Transport Layer
TCP
 연결지향형(Connection
Oriented) 프로토콜
 Segment가 목적지까지 제대로 전달되었는지, 확
인응답(Acknowledgment)을 주고받음으로써 신
뢰성 있는 전송
 Data를 Segment 별로 쪼개서 송신하고 목적지에
서 다시 재 조립
 3-Way Handshaking 이라는 방법으로 연결설정
Transmission Control Protocol/Internet Protocol
51
TCP Connection Sequence
Transmission Control Protocol/Internet Protocol
52
TCP Sequence & Acknowledgment
Source : Source Port No
Seq : Sequence
Dest : Destination Port No
Ack : Acknowledgment
Transmission Control Protocol/Internet Protocol
53
Windows 2000에서의 netstat -an
< windows 2000에서의 netstat -an >
Transmission Control Protocol/Internet Protocol
54
TCP 프로토콜의 상태
 Closed

TCP Connection이 종료된 상태
 Listen

주어진 Port번호에서 외부에서의 접속을 대기 중인 상태
 Syn_SENT

Connection을 요청하는 Syn Packet을 보내고 상대방으로부터 Ack Packet을
기다리는 상태
 Syn_RCVD
Connection을 요청하는 Syn Packet을 수신하고 해당하는 Syn, Ack Packet을
보낸 상태
 자신이 보낸 Syn에 대한 Ack를 기다린다.

 ESTABLISHED

TCP Connection이 연결된 상태로 실제 Data가 전송되는 상태
Transmission Control Protocol/Internet Protocol
55
TCP 프로토콜의 상태
 FIN_WAIT_1

Connection을 종료하는 Fin Packet을 보내고 해당하는 Ack Packet을 기다리는
상태
 CLOSE_WAIT

Connection을 종료하는 Fin Packet을 수신하고 해당하는 Ack Packet을 전송
한 상태
 FIN_WAIT_2

Connection을 종료하려고 보낸 FIN Packet을 보낸 후 상대방으로부터 FIN의
Ack를 수신한 상태
 LAST_Ack

Server에서 더 이상 보낼 Data가 없기 때문에 FIN Packet을 보낸 후 해당하는
Ack를 기다리는 상태
 TIME_WAIT


Server로부터 FIN Packet을 수신한 후 해당하는 Ack를 보낸 상태
Server로 보낸 마지막 Ack가 Server에 도달하지 못할 경우가 가능하므로 지
정한 시간까지 대기하다가 종료
Transmission Control Protocol/Internet Protocol
56
TCP Segment 형식
Transmission Control Protocol/Internet Protocol
57
TCP Segment 형식
명 칭
역 할
Source Port
발신지의 통신 소프트 포트 번호( 임의적인 번호 )
Destination Port
목적지의 통신 소프트 포트 번호( 고정된 번호 )
Sequence Number
TCP 프로토콜 헤더에 부여되는 연속번호, 도착한 패킷의 순서제어에 이용
Acknowledgment
다음에 수신할 것을 기다리는 시퀀스 번호
이 번호까지 정상적으로 수신 했음을 나타냄
HLEN
TCP 프로토콜 헤더의 길이( HLEN:Header Length )
Reserved
사용하지 않고 예약된 부분, 모두가 0으로 되어있음
Code Bits
Segment 타입을 나타냄
URG:긴급, ACK:확인, PHS:강제전송, RST:리셋 SYN:동기, FIN:종료
Window
Segment 전송중의 송수신 버퍼 사이즈를 지정하기 위해 사용
Checksum
TCP 패킷의 내용이 바르게 교환되었는지를 점검
Urgent Pointer
시퀀스 번호에 의한 연속된 데이터보다도 우선하는 긴급 데이터의 교환시 데이
터의 어디까지가 긴급 데이터인지를 나타냄
Options
최대의 Segment 사이즈 등을 지정함
Padding
TCP 프로토콜 헤더를 32bit 에 맞추기 위해 붙여짐
Transmission Control Protocol/Internet Protocol
58
Well-Known Port 번호
Protocol Port 번호
Telnet
23
FTP
21
www
80
POP3
110
Protocol Port 번호
Bgp
179
DNS
53
Echo
7
SNMP
161
POP2
Whois
Gopher
Klogin
Kshell
Uucp
109
43
70
543
544
540
Transmission Control Protocol/Internet Protocol
59
Application Protocol 에 따른 Port 번호
Transmission Control Protocol/Internet Protocol
60
UDP (User Datagram Protocol)
 TCP와 달리 비연결지향형(Connectionless) 프로토콜
 Segment를 보내기만 하고 Acknowledgment를 주고받지 않기
때문에, 제대로 전달되었는지 확인하지 않는 특성(신뢰성 없
음)
Transmission Control Protocol/Internet Protocol
61
UDP Segment 형식
Transmission Control Protocol/Internet Protocol
62
UDP Protocol 과 DNS
Transmission Control Protocol/Internet Protocol
63
TCP와 UDP의 차이점
TCP
UDP
데이터 전송
형태
연결지향형
데이터전송은 데이터 링크를
확립하고 나서 행한다.
비연결지향형형
데이터전송은 데이터 링크를 확립하지
않고 보낸다.
신뢰성
송신중에 데이터 링크를 유지
하고 있으므로 신뢰성이 높다
송신중의 데이터 분실이나 순서 에러에
관여하지 않기 때문에 신뢰성이 낮다
데이터 전송
속도
데이터 흐름제어나 순서제어
를 하기 때문에 전송속도가 늦
어진다.
흐름제어나 순서제어를 하지 않는 만큼
전송속도의 저하를 피할 수 있다.
데이터 전송
포맷
각종 제어를 위한 헤더/트레일
오버헤더는 최소화된다.
러(오버헤더)가 커진다.
상위층에의
영향
상위층은 자신의 에러처리 이
외에는 관여하지 않아도 좋다.
End to End 의 에러처리가 필요
Transmission Control Protocol/Internet Protocol
64
마. 프로토콜을 취약점을 이용한 공격
1.
2.
Sync Flooding 공격
Sniffing 공격

1단계


A 클라이언트는 B 서버에 접속을 요청
하는 SYN 패킷을 보낸다.
2단계


B 서버는 요청을 받고 A 클라이언트에
게 요청을 수락한다는 SYN 패킷과
ACK 패킷을 발송한다.
3단계

A 클라이언트는 B 서버에게 ACK 를
보내고 이후로부터 연결이 이루어지고
본격적으로 데이터가 교환된다.
Transmission Control Protocol/Internet Protocol
65
Sync Flooding 공격
 공격 원리
앞의 그림에서 악의적인 공격자가 1단계만 요청(SYN)하
고, B서버로부터 응답을 받은 후(SYN+ACK), 클라이언트
에게 ACK를 보내지 않는다면 어떻게 될까?
 “Half Open” 상태에서 응답이 올 때까지 75초 동안 대기
하다가 초기화한다.
 초기화 전까지 연결은 메모리 공간인 백로그큐(Backlog
Queue)에 계속 쌓인다.
 위조된 새로운 요구가 계속 들어오거나 연결을 초기화하
는 속도보다 더 빨리 이루어진다면, SYN 패킷이 어느 정
도 백로그큐에 저장이 되다가 결국 꽉 차게 되어 더 이상
의 연결을 받아들일 수 없는 서비스 거부 상태

Transmission Control Protocol/Internet Protocol
66
Sync Flooding 공격
 백로그큐가 가득 찼을 경우에,


공격을 당한 해당 포트만 접속이 이루어지지 않는다.
서버에 별다른 부하도 발생하지 않으므로 관리자가 잘 모른다.
 다른 DoS 공격과는 달리 트래픽을 많이 유발하는 공격이 아
니므로 쉽게 파악이 되지 않는 공격 형태이다.
 실제 공격을 당할 때 공격지 IP 를 검출해 보면 모두 ping 이
되지 않는 실제 네트워크에 연결되지 않은 IP 주소이다. 어
째서 이런 현상이 일어날까?


무작위로 생성된 IP 를 소스로 한 SYN 패킷을 받은 서버는, 요청을
받은 모든 IP 로 SYN+ACK 패킷을 보낸다.
실제로 해당 IP 를 사용중인 호스트는 SYN 패킷을 보내지도 않았는
데, 공격을 받은 서버로부터 영문도 모르는 SYN+ACK 를 받았으므
로 이 패킷을 비정상적인 패킷으로 간주하고 해당 패킷을 리셋(RST)
하여 초기화 시킨다.
Transmission Control Protocol/Internet Protocol
67
Sync Flooding 공격
 실제 존재하지 않는 IP






공격을 당한 서버가 해당 IP로 부터 SYN 패킷을 받았다고 판단하여
SYN+ACK 패킷을 발송 후 ACK 패킷을 계속 기다리지만,
해당 IP는 인터넷에 연결되어 있지 않으므로 SYN+ACK 패킷을 받을
수도 없을 뿐더러,
이에 대한 응답으로 ACK 패킷을 발송하지 않을 것임은 불을 보듯 뻔
한 것이고,
결국 공격을 받는 서버는 존재하지도 않는 IP로 부터 ACK 패킷을 받
을 것만을 기다리며 백로그큐는 가득 차게 되는 것이다.
공격자의 입장에서는 인터넷상에서 라우팅이 되지 않는 IP를 소스
IP로 하여 공격하는 것이 가장 효과적일 것이다.
인터넷에 연결되어 있는 IP 를 소스 주소로 하여 SYN Flooding 공격
하는 것은 의미가 없다.
Transmission Control Protocol/Internet Protocol
68
공격 탐지 방법
netstat
 시스템의
각종 네트워크 정보를 알려주는 명령어
 네트워크 연결, 라우팅 현황, 인터페이스 통계 등
의 정보
 netstat -na 로 확인해 보면 Local Address, Foreign
Address, State 등의 정보가 출력
 실제 공격당하고 있는 호스트에서 netstat –na
Transmission Control Protocol/Internet Protocol
69
netstat –na
Transmission Control Protocol/Internet Protocol
70
CRON 을 이용한 공격을 감지방법
#!/usr/bin/perl
$TASK = `netstat -na|grep SYN_RECV`;
$HOSTNAME = `/bin/hostname`;
$TO_MAIL = '[email protected]'; #사용자메일주소
$SUBJECT = "$HOSTNAME SYN_FLOODING 공격 감지";
$MAIL_PROGRAM = "/usr/sbin/sendmail";
if ($TASK){
$TASK_CONFIRM = `netstat -na|grep SYN_RECV|wc -l`;
if($TASK_CONFIRM > 20){
#공격중이면 데몬 restart
`/etc/rc.d/init.d/httpd stop`;
`/etc/rc.d/init.d/httpd start`;
Transmission Control Protocol/Internet Protocol
71
CRON 을 이용한 공격을 감지방법
$HTTP_DONE ="httpd was Refreshed!!\n";
}
open(MAIL, "|$MAIL_PROGRAM -t");
print MAIL "To: $TO_MAIL \n";
print MAIL "Subject: $SUBJECT \n\n";
print MAIL "$HOSTNAME Server is Attacked by
SYN_Flooding!!!\n";
print MAIL "SYN_Flooding Process
Number :$TASK_CONFIRM \n";
print MAIL "$HTTP_DONE\n";
print MAIL "$TASK \n";
close(MAIL);
}
Transmission Control Protocol/Internet Protocol
72
CRON 을 이용한 공격을 감지방법
위 파일을 /etc/cron.5min/ 이라는 디렉토리에
두고 실행할 수 있도록 권한을 700으로 설정
/etc/crontab 파일을 열어 아래 내용을 추가하
면 5분마다 SYN_Flooding 여부를 체크하여
공격이 확인시 지정된 메일 주소로 통보해 준
다.
 59/5
* * * * root run-parts /etc/cron.5min/
Transmission Control Protocol/Internet Protocol
73
대응책
 라우터나 방화벽에서 차단

인터셉트(Intercept) 모드


라우터로 들어오는 SYN 패킷 요청을 그대로 서버에 넘겨주지 않
고 라우터에서 일단 가로채어 서버를 대신하여 SYN 패킷을 요청
한 클라이언트와 연결을 맺고, 연결이 정상적으로 이루어지면 이
번에는 클라이언트를 대신하여 서버와 연결을 맺은 다음 두 연결
을 투명하게 포워딩하여 연결시켜주는 방식
와치(watch) 모드

인터셉트 모드와는 달리 라우터를 통과하는 SYN패킷을 그대로
통과시키고 일정 시간 동안 연결이 이루어지지 않으면 라우터가
중간에서 SYN 패킷을 차단하는 방식
Transmission Control Protocol/Internet Protocol
74
Routing이 안 되는 IP Address
 0.0.0.0/8
- Historical Broadcast
 10.0.0.0/8
- RFC 1918 에 의한 내부 네트워크
 127.0.0.0/8
- Loopback
 169.254.0.0/16 - Link Local Networks
 172.16.0.0/12 - RFC 1918 에 의한 내부 네트워크
 192.0.2.0/24
- TEST-NET
 192.168.0.0/16 - RFC 1918에 의한 내부 네트워크
 224.0.0.0/4
- Multicast D Class
 240.0.0.0/5
- 예약된 E Class
 248.0.0.0/5
- 미할당
 255.255.255.255/32 - 브로드캐스트
Transmission Control Protocol/Internet Protocol
75
대응책
HOST단에서의 차단 방법
 백로그큐를
늘려준다.
 백로그규 설정 방법
 Linux
[root@net /root]# sysctl –w
net.ipv4.tcp_max_syn_backlog=1024
 또는 [root@net/root]# echo
1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog

 AIX

/usr/sbin/no -o clean_partial_conns=1
Transmission Control Protocol/Internet Protocol
76
대응책
 Solaris


/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 1024
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 2048
 HP-UX


/usr/sbin/ndd -set tcp_syn_rcvd_max 1024
/usr/sbin/ndd -set tcp_conn_request_max 200
 Windows NT & 2000
Transmission Control Protocol/Internet Protocol
77
sniffing 공격
 내부 네트워크 동작 원리
Transmission Control Protocol/Internet Protocol
78
arp broadcast를 tcpdump로 잡은 모습
Transmission Control Protocol/Internet Protocol
79
ARP Cache와 Gratuitous ARP
 한 번 접속할 때마다 매번 arp broadcasting을 하고
reply를 해야 한다면 그만큼 불필요한 프로세스가
발생하게 되고 많은 오버헤드가 유발
 라우터 및 서버 등 각 장비에서는 arp broadcast와
reply를 한 후에는 이 정보를 바로 폐기하지 않고 일
정 시간 동안 캐시
 기종과 계열에 따라 다소의 차이는 있지만 많은 데
이터의 교환이 있는 라우터는 통상 4시간, 서버는
60 초 동안 캐시
Transmission Control Protocol/Internet Protocol
80
 Soft Kernel 튜닝
sysctl -w kernel_parameter=value으로 적절히 조절
# sysctl -a|grep gc_stale_time
net.ipv4.neigh.eth0.gc_stale_time = 60
net.ipv4.neigh.lo.gc_stale_time = 60
net.ipv4.neigh.default.gc_stale_time = 60

arp 캐시 정보 확인
Transmission Control Protocol/Internet Protocol
81
라우터의 arp 캐시
 arp 캐시는 해당 서버에 접근하는 모든 클라이언트나 서버
에 대해서 캐시하는 것이 아니라, C Class 로 netmask 되어 있
을 경우 해당 영역만 캐시
Transmission Control Protocol/Internet Protocol
82
 가끔 서버나 PC의 이더넷 카드를 변경하였을 때 바
로 인식이 되지 않고 빠르면 몇 분, 길게는 4시간까
지 기다린 후에야 네트워크가 다시 작동하는 것을
경험해 보았을 것이다.
 gratuitous arp 는 로컬 랜상의 arp 캐시 정보를 업데
이트하는 arp 로서 이를 실행하면 모든 캐시 정보를
바로 업데이트 할 수 있다.
# /usr/sbin/send_arp 211.47.65.1 HHHH
211.47.65.255 ffffffffffff
Transmission Control Protocol/Internet Protocol
83
MAC 주소의 확인
Transmission Control Protocol/Internet Protocol
84
Switch 와 Dummy 허브
dummy 환경
 모든
포트가 하나의 세크먼트
 arp 요청과 응답, tcp 3 way handshake, 데이터 교
환이 모든 과정이 broadcasting 되어 B 에서도 A와
C 간의 통신을 엿볼 수 있으나,
 모든 포트가 같은 대역폭을 공유해서 사용하므로
Node가 많아 질수록 속도가 떨어진다.
Transmission Control Protocol/Internet Protocol
85
Switch 와 Dummy 허브
 switch 환경
각각의 포트가 하나의 세크먼트
 arp 요청만이 broadcasting 하며
 arp 응답, tcp 3 way handshake, 데이터 교환 모두 A 와 C 간
에 unicast 로 작동하기 때문에 B 에서는 A 와 C 간의 통신
을 엿볼 수 없게 된다.
 여기에서 B처럼 자신을 출발지 또는 목적지로 하지 않은
A 와 C 간의 통신을 엿보는(?) 일련의 행위을 스니핑
(Sniffing) 한다고 한다.
 각각의 포트가 각각의 대역폭을 가지고 있으므로 Node수
에 따른 속도 저하가 거의 없다.

Transmission Control Protocol/Internet Protocol
86
스니핑이 가능한 이유
 첫 번째는 dummy 환경에서는 모든 패킷을 broadcast
하여 직접적인 통신과는 관계없는 다른 PC나 서버
에서도 다른 시스템의 패킷을 캡처할 수 있다는 특
성을 이용한 것이고,
 두 번째는 인터넷의 표준 프로토콜로 사용중인
TCP/IP 의 전송 방식이 암호화하지 않은 Plaintext를
사용한다는 점을 이용한 것이다.
 기본적으로 목적지 IP가 자신의 IP가 아닌 패킷은
이더넷에서 패킷을 드롭(drop)하는 특성이 있기 때
문에, Plaintext 방식으로 broadcasting 한다고 모든
패킷을 스니핑 할 수 있는 것은 아니다.
Transmission Control Protocol/Internet Protocol
87
promiscuous (무차별)모드
 스니핑을 하려면 자신의 목적지가 아닌 패킷도 받
아들여야 하는데, 그렇게 하려면 인터페이스가
promiscuous (promisc)모드로 작동하도록 설정해야
한다.
 promisc 모드로 설정되면 이더넷에서 패킷을 드롭
하지 않고 모든 패킷을 다 받아들이게 되어 스니핑
이 가능하게 된다.
 promisc 모드를 설정하려면,

# ifconfig eth0 promisc
 설정을 해제하려면,

# ifconfig eth0 -promisc
Transmission Control Protocol/Internet Protocol
88
promisc 설정 여부 확인
Transmission Control Protocol/Internet Protocol
89
Windows 계열의 스니퍼
Transmission Control Protocol/Internet Protocol
90
Solrais의 스니퍼
<그림13> Solrais의 스니퍼
Transmission Control Protocol/Internet Protocol
91
sniffing 탐지방법
리눅스의 경우 ifconfig를 실행시 PROMISC가
설정 되었는지 여부로 확인
 관리하는
서버가 여러 대라면 매번 로그인하여
ifconfig 로 PROMISC 설정 여부를 확인하겠는가?
 만약 ifconfig 실행파일 자체가 변조되어 ifconfig
결과를 신뢰할 수 없다면?
Sentinel과 AntiSniff 이용
Transmission Control Protocol/Internet Protocol
92
Sentinel
미리 패킷 캡처 라이브러리인 Libnet 1.0과
libpcap 가 설치
http://www.packetfactory.net/Projects/libnet
ftp://ftp.ee.lbl.gov/libpcap-0.4.tar.Z
다운로드 받아 압축 해제 후,
압축이 풀린 디렉토리에서
 ./configure;
make ; make install 로 설치
Transmission Control Protocol/Internet Protocol
93
Sentinel
http://www.packetfactory.net/Projects/sentinel/
다운로드후 압축 해제를 하고,
압축이 풀린 디렉토리에서 make all 로 컴파
일하여 설치
원격지에서 스니핑 여부를 감지하는 방법
 DNS
test
 Etherping test
 ARP test
Transmission Control Protocol/Internet Protocol
94
DNS test
 목적지 서버에 위조된 연결 요청을 보내어, 일반적
인 스니핑 프로그램이 요청한 시스템의 IP 주소를
역리졸브(Inverse DNS lookup) 한다는 특징을 이용
하여 DNS 트래픽을 감시하여 스니핑 여부를 감지
하는 방법
#./sentinel -d -f 1.1.1.1 -t 211.47.65.4
Transmission Control Protocol/Internet Protocol
95
Etherping test
 목적지에 ping 패킷을 보낼 때 목적지의 IP 는 맞지
만 목적지의 MAC 주소는 존재하지 않는 정보로 위
조하여 Icmp Echo Packet 을 보내어 응답이 오는지
여부를 감시하는 방법
 대부분의 정상적인 시스템에서는 존재하지 않는
MAC 정보이기 때문에 패킷에 대해 응답하지 않지
만 promisc mode가 설정된 시스템에서는 이와 관계
없이 응답을 한다는 특징을 이용하여 감시하는 방
법
#./sentinel -e -t 211.47.65.4
Transmission Control Protocol/Internet Protocol
96
ARP test
 IP는 목적지 IP로 설정하지만 목적지의 MAC 주소
를 다르게 하여 icmp 대신 ARP 요구를 보내는 방법
 Promisc 모드가 아닌 경우에는 패킷이 목적지까지
갈 수 없으므로 목적지에서는 응답하지 않지만
Promisc 모드인 경우에는 모든 패킷을 받아들이므
로 결국 응답한다는 특징을 이용하여 감시하는 방
법
#./sentinel -a -t 211.47.65.4
3개의 테스트를 동시에 수행
#./sentinel -t 211.47.65.4 -f 1.1.1.1 -d -a –e
Transmission Control Protocol/Internet Protocol
97
실행 결과
 Results: 211.47.65.4 tested positive to etherping test.
 위와 같이 탐지 결과가 positive 가 나오면 Promisc
모드로 설정되었다는 의미
 세 가지 방법 중에 어느 하나라도 positive 라는 결과
가 나온다면 반드시 스니핑 작동 여부를 확인
Transmission Control Protocol/Internet Protocol
98
대응책
 Plain text로 전송되는 TCP/IP 대신 암호화 전송 프로
토콜을 사용
telnet 대신 SSH
 http 대신 https(SSL 웹서버)

 broadcasting을 하는 dummy 대신 스위치를 사용
 기업간 통신시 암호화된 통신을 지원하는 가상 사
설망인 VPN(Virtual Provate Network)을 사용
Transmission Control Protocol/Internet Protocol
99
스위치 환경에서 가능한 스니핑 기법
MAC Flooding
 위조된
MAC을 지속적으로 발생시켜 스위치의
ARP 테이블을 Flood 시키는 방법
 fail open
ARP Spoofing
 스니핑하고자
하는 서버인 것처럼 MAC을 위조
한 패킷을 Broadcast 하여 트래픽을 포워딩
 공격자는 net.ipv4.ip_forward=1 로 설정
Transmission Control Protocol/Internet Protocol
100
스위치 환경에서 가능한 스니핑 기법
 ARP Redirect
자신이 마치 Gateway 인 것처럼 위조된 MAC 을
Broadcast하여 모든 트래픽이 자신을 통과하게 하는 방법
 공격자는 net.ipv4.ip_forward=1 로 설정

 MAC Duplicating



스니핑하고 싶은 서버의 MAC주소와 같은 MAC 정보로
설정
Hunt
Dsniff

http://www.monkey.org/~dugsong/dsniff
Transmission Control Protocol/Internet Protocol
101
스니핑 차단하기
IP Flitering
 각각의
포트에서 오가는 트래픽을 필터링
Port security
Flood 나 MAC Spoofing을 예방
 각각의 포트에 물리적인 MAC 주소를 정적(Static)
으로 설정
 MAC
ARPWatch
트래픽을 실시간으로 모니터링하여 MAC
주소와 IP 간의 매칭을 감시하는 프로그램
 ARP
Transmission Control Protocol/Internet Protocol
102
바. TCP/IP 관리 명령어
1.
2.
3.
4.
5.
6.
7.
8.
9.
ARP(Address resolution protocol) 명령
Ping 도구
tracert (traceroute) 명령
IPConfig (ifconfig) 도구
PathPing 도구 (window 계열)
Route 도구
Netstat 명령
NBTStat 명령
Nslookup 명령
Transmission Control Protocol/Internet Protocol
103
ARP(Address Resolution Protocol)명령
 ARP 캐시 항목을 보거나 추가 또는 삭제
 수동으로 추가된 고정 항목은 캐시로부터 자동으로
제거되지 않는다.
 동적 항목은 캐시로부터 자동으로 제거된다.
 참조되고 있는 항목은 10분 후에 ARP로부터 제거
된다(OS설정에 따라 다름).
Transmission Control Protocol/Internet Protocol
104
ARP 사용법
 arp -a

현재 Cache된 Mac Address Table을 보여 준다
 arp -s



ARP 캐시에 고정 항목을 추가합니다.
ARP를 이용한 공격대응이나 기타 변동될 가능성이 없는 Mac등록에
사용된다.
공격이 우려되는 경우 네트워크상의 모든 호스트를 static로 등록하
여, 실제로 arp 브로드케스트 공격에 대비한 구성에 사용할 수 있다.
 arp -d


Cache된 Mac Address Table에 남아있는 Mac Table을 삭제하는 명령
네트워크에 참여하고 있는 장비들의 교체가(IP는 같으나 Mac가 변경
된다) 있을 경우, 기존의 장비와 통신하던 장비들의 ARP Cache가
Update(10분 정도 Cache됨)되지 않아서 통신이 되지 않는 경우가 종
종 발생하는데 이런 경우에 사용할 수 있다.
Transmission Control Protocol/Internet Protocol
105
arp 사용 예제
Transmission Control Protocol/Internet Protocol
106
Ping 도구
IP 수준에서 연결성을 확인할 수 있는 도구
ICMP 에코 요청 메시지를 전송
사용할 패킷 크기, 보낼 패킷 수, 사용된 경로
기록 여부, 사용할 TTL 값, don't fragment 플
래그 설정 여부를 지정할 수 있다.
IPSec를 사용하는 컴퓨터의 경우에는 ping에
응답하기 전에 보안 연결을 구축하기 때문에
수 초의 시간이 필요
Transmission Control Protocol/Internet Protocol
107
Ping 사용법
 ping -n 10

ping 10개까지 전송
 ping -l

ping 패킷의 Size를 정할 수 있다
 ping –t

사용자가 취소할 때 까지 실행
 ping –f

Don't Fragment 플래그 설정으로 목적지까지 패킷이 도달
하려면 네트워크 상황에 따라 패킷이 쪼개질 수 있는데
이 옵션을 사용하면 패킷이 쪼개지지 않는다.
Transmission Control Protocol/Internet Protocol
108
플라그멘테이션을 허용하지 않으며
Size 1472로 6개의 패킷 전송
Transmission Control Protocol/Internet Protocol
109
tracert (traceroute) 명령
 IP 패킷이 컴퓨터에서 목적지로 가는데 사용한 모
든 홉(패킷이 라우터에서 다른 라우터로의 이동하
는 여정)을 보고자 할 때 이용.
 목적지까지 찾아가는 경로를 파악할 수 있으나, 귀
환경로를 알려주는 것은 아님
 Windows 95/98/NT/2000/XP

Tracert
 Linux

Traceroute
 Vitual route

GUI를 제공하는 제품
Transmission Control Protocol/Internet Protocol
110
사용법
reverse DN 점검 결과를 출력
 tracert
164.124.116.4
 traceroute 164.124.116.4
// Windows 계열
// UNIX 계열
reverse DN 점검 결과를 출력하지 않음
 빠른
속도를 요하는 경우에 사용
 tracert -d 164.124.116.4
// Windows 계열
 traceroute -n 164.124.116.4 // UNIX 계열
Transmission Control Protocol/Internet Protocol
111
Reverse Domain Name
[ bora : /user12/whchang ] traceroute 211.169.248.190
traceroute to 211.169.248.190 (211.169.248.190), 30 hops max, 40 byte packets
1 ysnacb81-e4-0.rt.dacom.net (164.124.102.3) 3 ms 1 ms 1 ms
2 211.60.241.2 (211.60.241.2) 1 ms 1 ms 1 ms
3 ysng12bb2-pos7-0.rt.bora.net (210.120.255.117) 1 ms 1 ms 2 ms
4 kidcg5-pos9-0.rt.bora.net (210.120.192.198) 2 ms 3 ms 1 ms
5 kidcg6-ge8-0.rt.bora.net (210.92.194.238) 1 ms 1 ms 1 ms
6 211.169.248.254 (211.169.248.254) 1 ms 1 ms 1 ms
7 211.169.248.216 (211.169.248.216) 2 ms 2 ms 2 ms
8 211.169.248.190 (211.169.248.190) 2 ms 2 ms 1 ms
[ bora : /user12/whchang ] traceroute -n 211.169.248.190
traceroute to 211.169.248.190 (211.169.248.190), 30 hops max, 40 byte packets
1 164.124.102.3 3 ms 1 ms 1 ms
2 211.60.241.2 1 ms 1 ms 1 ms
3 210.120.255.117 1 ms 1 ms 1 ms
4 210.120.192.198 1 ms 1 ms 1 ms
5 210.92.194.238 1 ms 1 ms 1 ms
6 211.169.248.254 1 ms 1 ms 1 ms
7 211.169.248.216 2 ms 2 ms 2 ms
8 211.169.248.190 1 ms 1 ms 1 ms
Transmission Control Protocol/Internet Protocol
112
Traceroute의 동작원리
1.
2.
3.
4.
5.
1.1.1.1 에서 목적지 10.10.10.10 에 대해 TTL=1 인 ICMP
echo request 를 생성/ 전달
첫 번째 IP 네트워크 장비가 TTL 을 1 을 감소시키고
TTL=0 이 되므로 TTL 이 모자라 더 이상 packet 을 전달
할 수 없다는 ICMP time exceed 를 1.1.1.1 에게 전달
1.1.1.1 에서는 이 ICMP time exceed를 보고 목적지까지
가는 경로상의 첫 번째 장비 ip address와 delay를 알아냄.
1.1.1.1 에서 TTL=2 인 ICMP echo request 를 던짐. 목적지
까지 가는 경로상의 두 번째 장비가 ICMP time exceed
를 발생시키고 1.1.1.1 에서는 이것으로 두 번째 장비까
지의 delay 를 알아냄.
이것이 목적지까지 계속됨
Transmission Control Protocol/Internet Protocol
113
ICMP time exceed를 부하 때문에
전송 못하는 경우
•
•
•
Source 211.53.209.249
Gw
211.53.209.1
Traceroute 164.124.116.4
1. 211.53.209.1
0ms 0ms 1ms
2.
*
*
*
// KIDC 라우터가 바빠서 응답을 하지 않음
3. 210.92.194.241 1ms
1msc 1ms
…….
8. 164.124.116.4
9ms
4ms 4ms
나 바빠.
그러나
다른 서비스는
잘 해줄께
Echo reply
Time exceed
Time exceed
211.53.209.249
211.53.209.1
211.169.248.253
KIDC ROUTER
…………………
164.124.116.4
Transmission Control Protocol/Internet Protocol
114
ICMP time exceed를 무시하는 경우
• Source 211.53.209.249
• Gw
211.53.209.1
• Traceroute 211.119.136.2
1. 211.53.209.1
0ms
2. 192.168.13.2
2ms
3.
*
0ms
1ms
*
1ms
1ms
*
// OSFS 안의 AD3가 답을 하지 않는 것임
4. 211.119.136.2
5ms
5ms
5ms
난 ICMP echo
request는 무시
하는 놈이야.
Echo reply
Time exceed
211.53.209.249
211.53.209.1
192.168.13.2
FIREWALL
AD3
211.119.136.2
Transmission Control Protocol/Internet Protocol
115
tracert로 병목 구간 찾기
•
•
•
Source 211.53.209.249
Gw
211.53.209.1
Traceroute soback.kornet21.net
1
2
3
4
5
6
7
211.53.209.1
No Response
210.92.194.50
128.134.40.173
168.126.16.54
168.126.3.3
168.126.3.3
1ms
*
0ms
*
223ms
206ms
2ms
0ms
*
1ms
203ms
207ms
206ms
1ms
*
0ms
200ms
*
1ms
Transmission Control Protocol/Internet Protocol
116
IPConfig (ifconfig)도구
 호스트의 TCP/IP 관련 구성을 화면에 표시하는 명
령 유틸리티
 Ethernet 어댑터에 대한 특수한 정보를 나열



Physical Adderss(MAC 주소)
IP 주소
서브넷마스크
 Windows 계열(ifconfig)

Host Name, Primary DNS Suffix, 기본 게이트웨이
 Unix계열

Promiscuous 설정
Transmission Control Protocol/Internet Protocol
117
ipconfig 사용법
ipconfig/all
 시스템
내의 모든 TCP/IP관련 정보를 출력
ipconfig/renew
 시스템
내의 모든 인터페이스의 TCP/IP관련 정보
를 Update
 DHCP서버에서 IP를 못 받은 경우나 다시 받아와
야 하는 경우 많이 사용
ipconfig/release
 DHCP서버에게
IP 주소를 반납
Transmission Control Protocol/Internet Protocol
118
ifconfig/all 실행 예제
Transmission Control Protocol/Internet Protocol
119
PathPing 도구 (window 계열)
 ping 명령과 tracert 명령의 기능을 조합하여 이러한
도구들이 제공하지 못하는 추가 정보를 제공하는
경로 추적 도구
 최종 대상에 도달하기 전에 거쳐야 하는 각각의 라
우터로 지정된 시간 동안 패킷을 보낸 후 각각의 홉
으로부터 반환되는 패킷에 따라 그 결과를 계산
 pathping 명령을 통해 해당 라우터나 링크에서 패킷
이 얼마만큼 손실되는지 파악할 수 있으므로 네트
워크 문제를 유발하는 라우터나 링크를 쉽게 판별
 -R -T 옵션을 사용하면 경로에 있는 장치가 802.1P
호환 장치인지 여부와 RSVP 인식 장치인지 여부를
판별
Transmission Control Protocol/Internet Protocol
120
pathping 출력 결과
Transmission Control Protocol/Internet Protocol
121
Route 도구
라우팅 테이블을 보거나 수정
사용법
 route

경로 목록을 표시
 route

delete
라우팅 테이블에 있는 경로를 제거
 route

add
라우팅 테이블에 경로를 추가
 route

print (Unix계열 netstat -r)
-p
라우팅 테이블에 영구 경로 추가
Transmission Control Protocol/Internet Protocol
122
라우팅 테이블 예제
Network
Destination
default
route
0.0.0.0
Netmask
127.0.0.0
255.0.0.0
subnet
network
203.255.113.0
255.255.255.0
LAN card
203.255.113.34 255.255.255.255
Subnet
Broadcast
203.255.113.255 255.255.255.255
Limited
broadcast
Interface
0.0.0.0 203.255.113.254 203.255.113.34
loopback
Multicast
Gateway
127.0.0.1
Metric
1
127.0.0.1
1
203.255.113.34 203.255.113.34
1
127.0.0.1
1
203.255.113.34 203.255.113.34
1
224.0.0.0
203.255.113.34 203.255.113.34
1
255.255.255.255 255.255.255.255
203.255.113.34 203.255.113.34
1
224.0.0.0
127.0.0.1
Transmission Control Protocol/Internet Protocol
123
라우팅 테이블 설명(열)
 Network Destination

AND 연산을 한 후 패킷의 Destination 주소와 Network Destination을
비교
 Netmask


패킷의 Destination 주소에 Netmask를 AND 연산
어떤 Network Destination으로 갈지를 Netmask에서 결정
 Interface ( 패킷을 밖으로 보낼 랜카드의 주소 )

Network Destination 이 일치한 Interface 로 패킷을 보낸다
 Gateway


Interface 를 빠져 나간 패킷이 가야할 곳
자신의 랜카드 주소 또는 로컬 서브넷의 게이트웨이(일반적으로, 라
우터)
 Metric



destination 까지의 hop 수
local LAN 은 하나의 hop으로 구성
Metric 은 가장 좋은 라우터경로를 결정할 때 사용
Transmission Control Protocol/Internet Protocol
124
라우팅 테이블 설명(행)
 default route


여러 라우팅 테이블을 확인해서 일치하지 않을 경우,
default route의 Gateway 로 보낸다.
위에서는 203.255.113.254 로 가게 되며, 일반적으로 라우
터의 주소이다.
 loopback


127.0.0.1 은 software loopback 주소이다.
자기 자신을 가리킨다.
 subnet network


IP 주소의 subnet network 주소를 가리킨다.
IP 주소가 203.255.113.34 이고 Subnet Mask 가
255.255.255.0 이므로 AND 연산을 통해 203.255.113.0 이
network 주소가 된다.
Transmission Control Protocol/Internet Protocol
125
라우팅 테이블 설명(행)
 LAN card

자신의 IP 주소를 의미
 subnet broadcast

위의 3)번에 나온 203.255.113.0 의 마지막 주소인
203.255.113.255 는 broadcast 로 사용된다.
 multicast
D Class 의 multicast 를 나타내는 행이다.
 특정한 그룹에게 메시지를 전달할 때 사용되는 주소이다.

 limited broadcast


라우터를 통과하지 못하는 broadcast 주소이다.
같은 subnet 상의 모든 host 에 전달된다.
Transmission Control Protocol/Internet Protocol
126
라우팅 테이블 검색 순서
1.
2.
3.
4.
Host address
Subnet address
Network address
Default gateway
Transmission Control Protocol/Internet Protocol
127
라우팅 테이블 검색 예제
#ping 207.46.131.137
1. 207.46.131.137 과 LAN card 행의 Netmask 열
(255.255.255.255)과 AND 연산 : 207.46.131.137
2. 위의 결과값인 207.46.131.137 과 LAN card 행의
Network Destination 과 비교


같으면, LAN card 행의 Interface 로 패킷을 보낸다.
다르면, 검색순서에 따라 다른 라우팅 테이블 비교
3. 일치되는 Network Destination 을 찾지 못하면
default route(0.0.0.0)의 Gateway 로 패킷을 보낸다.
4. 다음 패킷을 보내기 위해 1번부터 반복한다.
Transmission Control Protocol/Internet Protocol
128
Netstat 명령
프로토콜 통계 및 현재 TCP/IP 연결을 표시
현재 바인딩하고 있는 모든 포트 정보 표시
호스트에서 어떠한 서비스를 하고 있는지 한
눈에 알 수 있다.
Transmission Control Protocol/Internet Protocol
129
Netstat 사용법
 netstat -a

모든 연결을 표시
 netstat -r

라우팅 경로 테이블 표시
 netstat -n

스위치를 함께 사용하면 주소와 포트 번호가 이름으로 변환되지 않
으므로 실행 속도가 빨라진다.
 netstat -e (Unix계열은 netstat -i)

이더넷 통계를 표시
 netstat -s (Unix계열은 netstat -i)

프로토콜 통계 표시
 netstat -n

현재 다른 장비와 연결(Established)되어 있는 포트번호 확인
Transmission Control Protocol/Internet Protocol
130
netstat -e 이더넷 통계(window계열)
Transmission Control Protocol/Internet Protocol
131
netstat –i 3 이더넷 통계(Unix 계열)
Transmission Control Protocol/Internet Protocol
132
NBTStat 명령
Windows 계열만 가능
NetBIOS 이름 확인 문제를 해결하는 데 유용
네트워크에 연결 된 NetBIOS 연결정보 또는
MAC 주소(네트워크 카드의 48비트 하드웨
어주소)를 알고자 할 때 유용
Transmission Control Protocol/Internet Protocol
133
NBTStat 사용법
 NBTStat -n

서버나 리디렉터 등의 응용 프로그램이 로컬로 시스템에
등록한 이름을 표시
 NBTStat -c

다른 컴퓨터의 이름 대 주소 매핑이 들어 있는 NetBIOS
이름 캐시를 표시
 NBTStat -R


이름 캐시를 지운 후 Lmhosts 파일로부터 다시 읽어 들인
다.
이 명령은 잘못된 캐쉬 정보 때문에 통신이 안 되는 경우
에 유용하게 사용할 수 있다.
Transmission Control Protocol/Internet Protocol
134
NBTStat 사용법
 NBTStat -RR

이름 서버를 사용하여 모든 이름을 등록
 NBTStat -a


name은 name에 지정된 컴퓨터에 대해 NetBIOS 어댑터 상
태 명령을 실행
어댑터 상태 명령은 그 컴퓨터의 로컬 NetBIOS 이름 테이
블과 어댑터 카드의 미디어 액세스 제어 주소를 표시
 NBTStat -s

현재 NetBIOS 세션과 그 상태 및 통계 목록을 표시
Transmission Control Protocol/Internet Protocol
135
Windows NT 결과
Transmission Control Protocol/Internet Protocol
136
Windows 2000 server 결과
<그림 8)> Windows 2000 server
Transmission Control Protocol/Internet Protocol
137
Windows 98 결과
Transmission Control Protocol/Internet Protocol
138
NetBios
고유 이름
서비스
computer_name[00h]
Windows NT Workstation 서비스
computer_name[03h]
메신저 서비스
computer_name[06h]
RAS 서버 서비스
computer_name[1Fh]
NetDDE 서비스
computer_name[20h]
Windows NT Server 서비스
computer_name[21h]
RAS 클라이언트 서비스
computer_name[BEh]
네트워크 모니터 에이전트
computer_name[BFh]
네트워크 모니터 응용 프로그램
user_name[03]
메신저 서비스
domain_name[1Dh]
마스터 브라우저
domain_name[1Bh]
도메인 마스터 브라우저
그룹 이름
서비스
domain_name[00h]
도메인 이름
domain_name[1Ch]
도메인 컨트롤러
domain_name[1Eh]
브라우저 서비스 선택
\\--__MSBROWSE__[01h]
마스터 브라우저
Transmission Control Protocol/Internet Protocol
139
Nslookup 명령
호스트 이름 확인 등의 DNS 문제 해결에 유
용한 도구
명령 프롬프트에서 DNS의 설정 사항을 볼 수
있는 명령어
 로컬
시스템용으로 구성된 DNS 서버의 호스트
이름과 IP 주소가 나타난 후 명령 프롬프트 표시
Transmission Control Protocol/Internet Protocol
140
Nslookup 사용법
 nslookup www.saferzone.com

www.saferzone.com의 IP를 resolve함
 nslookup
>server=210.94.0.7

질의 서버를 210.94.0.7로 바꿔서 query
>set q=mx

요청한 도메인의 메일서버를 알려줌
>set q=ns

요청한 도메인의 네임서버를 알려줌
>set q=any

요청한 도메인의 모든 정보를 출력
>ls “도메인”

도메인에 소속된 모든 host 정보를 보여줌
Transmission Control Protocol/Internet Protocol
141
www.psi.net 의 IP 주소를 알기
Transmission Control Protocol/Internet Protocol
142
메일을 보내면 어느 메일서버로 가게 될지를
nslookup으로 확인
Transmission Control Protocol/Internet Protocol
143
query 하려는 네임서버를 변경
Transmission Control Protocol/Internet Protocol
144
한국전산원에 등록된 네임서버를 확인
Transmission Control Protocol/Internet Protocol
145
cache 에 남아있는 시간 확인 방법
Transmission Control Protocol/Internet Protocol
146