TCP/IP Network Ground 입니다..


OSI 7 Layer

 

TCP/IP

Device

F/W

Vulnerabilities

Application

Application

Gateway

(TCP/IP <->

IBM SNA)

Application level proxy

Virus, Worms,

E-mail spamming

Presentation

 

Unicode

Vulnerabilities

Session

Circuit level proxy

RPC exploit

Transport

Host to Host

 

Port scan,

SYN attack

Network




서비스명 프로토콜 포트
eDonkey TCP 4661
4662
4642
UDP 4672
4665
iMash TCP 5000
BitTorrent TCP 6881
6889
소리바다 V.2 UDP 22321
7674
7675
WINMX TCP 6699
UDP 6257
Direct-Connect TCP 411-412
UDP 411-412
KaZaA TCP 1214
Guntella-Morpheus TCP 6346-6347
UDP 6346-6347
GuRuGuRu TCP 9292
8282
31200
파일 구리 TCP 9493
Madster-Aimster TCP 23172
9922
HotLine TCP 5497
5498
5500-5503
UDP 5499
V-Share TCP 8404
Maniac TCP 2000
UDP 2010
TCP 2222
MiRC TCP 6667
6665-6670
7000
Shareshare TCP 6399
UDP 6777
Bluster UDP 41170
GoToMyPc TCP 8200
Napster TCP 6600-6699
4444
5555
6666
7777
8888
8875

                                             메신저 프로그램 사용 포트

서비스명 서버 포트 설명
MSN 64.4.130.0/24
207.46.104.0/24
207.46.106.0/24
207.46.107.0/24
207.46.108.0/24
207.46.110.0/24
TCP 1863 ,80 1863접속 시도 후 차단 되면 80 접속 시도
TCP 6891-6900 파일 전송
UDP 6901 음성채팅
UDP1863,5190 Microsoft Network Messenger
   
Yahoo 216.136.233.152/32
216.136.233.153/32
216.136.175.144/32
216.136.224.143/32
66.163.173.203/32
216.136.233.133/32
216.136.233.148/32
66.163.173.201/32
216.136.224.213/32
TCP 5050,5101 5050 접속 시도 후 차단 되어 있으면 Port 계속 변경
   
TCP 5000-5001 음성채팅
   
   
TCP 5100 화상채팅
   
   
Nate On 203.226.253.75/32
203.226.253.135/32
203.226.253.82/32
TCP 5004-5010 기본 포트 5004-5010 접속 시도후 차단되어 있으면 Port를 계속 변경
TCP80,83,7003 웹 컨텐츠 및 문자 보내기
Daum 211.233.29.78/32 TCP 8062  
SayClub 211.233.47.20/32    
AOL   TCP 5190 AOL Instant Messenger Also used by: ICQ
UDP 4000 ICQ_locator
Dreamwize 211.39.128.236/32
211.39.128.184/32
TCP 10000  
버디버디   TCP 810  
TCP 940  
TCP 950  
케이친구   TCP 7979  
천리안   TCP 1420  
TCP4949, 8989 파일 송수신
ICQ   TCP 5190  
UIN   TCP 8080  
Genile   TCP 10000  

'공부방 > NetWork' 카테고리의 다른 글

[네트워크] OSI 7 Layer와 취약점  (0) 2009.07.23
[네트워크] netstat 명령어에 대해서  (0) 2009.07.23
 

netstat의 TCP 연결 상태 의미  

netstat의 State 필드에 표시되는 TCP 상태표시가 갖는 의미를 알아봅시다.
RFC 793 문서에 있는 TCP 기본 연결, 종료 과정을 보면 이해가 더 빠를 거라 생각한다.

 

LISTEN
연결 요청이 수신되기를 기다리고 있는 상태
sYN-SENT
클라이언트 및 서버가 서로 연결을 기다리는 상태
SYN-RECEIVED   
서버의 TCP가 원격 클라이언트로부터 Synchronize 플래그를 설정한 시작 세그먼트를 수신하였고 자신의 시작 세그먼트로 응답 하였으며, 그 세그먼트에 대한 확인 메시지를 기다리는 상태
ESTABLISHED
서로 연결이 되었다는 상태
FIN-WAIT-1
 회선이 완전히 종결될 때까지 원격 시스템으로부터 데이터는 수신하지만, 추가적인 데이터를 전송하지는 않을 그러한 상태
CLOSE-WAIT
FIN- WAIT-1의 설명과 같이 Finish 플래그가 설정된 종결 세그먼트가 수신되었고, 로컬 TCP는 그 세그먼트에 대한 확인 메시지를 송신 시스템에 전송하였음. 그러나 로컬 TCP는 로컬 application에서 작업을 종료하지 않아 자신의 종결 세그먼트를 생성하지 못한 상태
FIN-WAIT-2
FIN- WAIT-1의 설명과 같이 로컬 TCP는 Finish 플래그가 설정된 종결 세그먼트를 전송하였으며 CLOSE-WAIT 설명대로 원격 시스템으로부터 그 세그먼트에 대한 확인 메시지를 수신한 상태. 그러나 원격 application이 아직 작업을 종료하지 않아 원격 TCP가 자신의 종결 세그먼트를 생성하지 못한 그러한 상태
LAST-ACK
FIN- WAIT-1의 설명과 같이 Finish 플래그가 설정된 종결 세그먼트가 수신되었고, 로컬 application은 회선의 종결에 합의하여 자신도 종결을 요청하였음. 그 결과 로컬 TCP는 Finish 플래그가 설정된 자신의 종결 세그먼트를 전송하였으며, 회선은 이 세그먼트에 대한 확인 메시지가 수신되면 종결됩니다
TIME-WAIT
회선의 종결 절차가 완료되었으나 TCP는 분실되었을지 모르는 느린 세그먼트를 위해 당분간 소켓을 열어 놓은 상태로 유지하는 상태
CLOSED
완전 회선연결상태가 종료되어 있는 상태

# netstat -atn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address          Foreign Address       State
... 생략 ...
tcp        0      0 0.0.0.0:25             0.0.0.0:*             LISTEN      <-- 포트가 열렸음
tcp        0      0 192.168.123.10:32799   207.46.106.141:1863   ESTABLISHED <-- 서로 연결중
tcp        0      0 192.168.123.10:32794   218.xxx.xx.xx:22      ESTABLISHED
tcp        0      0 192.168.123.10:32802   207.46.108.46:1863    CLOSE_WAIT  <-- 종료 대기중
tcp        0      0 192.168.123.10:33244   211.xxx.xx.x:80       ESTABLISHED
... 생략 ...
-----------------------------------------------------------


1) TCP 연결관련 상태

* RFC 793문서에 나온 기본적인 TCP 연결 과정

      TCP A                                                      TCP B

  1.  CLOSED                                                     LISTEN
  2.  SYN-SENT    --> < SEQ=100>< CTL=SYN>                   --> SYN-RECEIVED
  3.  ESTABLISHED <-- < SEQ=300>< ACK=101>< CTL=SYN,ACK>     <-- SYN-RECEIVED
  4.  ESTABLISHED --> < SEQ=101>< ACK=301>< CTL=ACK>         --> ESTABLISHED
  5.  ESTABLISHED --> < SEQ=101>< ACK=301>< CTL=ACK>< DATA>  --> ESTABLISHED


LISTEN      : 데몬이 요청을 발을 수 있도록 연결 요구를 기다리는 상태
  즉, 포트가 열려있음을 의미. http(80), mail(25), ftp(21), telnet(23) 등
  위에서 포트 25(mail)이 메일을 받을 수 있도록 열려 있는 상태
  윈도우즈에서는 LISTENING으로 표시
SYN_SENT    : 로컬에서 원격으로 연결 요청(SYN 신호를 보냄)을 시도한 상태
SYN_RECV    : 원격으로 부터 연결 요청을 받은 상태
  요청을 받아 SYN+ACK 신호로 응답은 한 상태이지만 ACK는 받지 못했다.
  netstat로 확인할 때 SYN_RECV가 상당히 많다면 TCP SYN 플러딩(Flooding) 공격일
  가능성이 있다.
  윈도우즈와 솔라리스에서는 SYN_RECEIVED으로, FreeBSD는 SYN_RCVD으로 표시

ESTABLISHED : 서로연결이 되어 있는 상태
  위에서 192.168.123.10의 포트 32794과 218.xxx.xx.xx의 포트 22(ssh)이 서로
  연결되어 있는 상태

2) TCP 종료관련 상태

* 정상적인 연결 종료 과정
      TCP A                                                   TCP B

  1.  ESTABLISHED                                             ESTABLISHED
  2.  (Close)
      FIN-WAIT-1  --> < SEQ=100>< ACK=300>< CTL=FIN,ACK>  --> CLOSE-WAIT
  3.  FIN-WAIT-2  <-- < SEQ=300>< ACK=101>< CTL=ACK>      <-- CLOSE-WAIT
  4.                                                         (Close)
      TIME-WAIT   <-- < SEQ=300>< ACK=101>< CTL=FIN,ACK>  <-- LAST-ACK
  5.  TIME-WAIT   --> < SEQ=101>< ACK=301>< CTL=ACK>      --> CLOSED
  6.  (2 MSL)
      CLOSED         
                                           

FIN_WAIT1   : 소켓이 닫히고 연결이 종료되고 있는 상태. 원격의 응답은 받을 수 있다.
  솔라리스에서는 FIN_WAIT_1로 표시
FIN_WAIT2   : 로컬이 원격으로 부터 연결 종료 요구를 기다리는 상태
  솔라리스에서는 FIN_WAIT_2로 표시
CLOSE_WAIT  : 원격의 연결 요청을 받고 연결이 종료되기를 기다리는 상태
  원격으로 부터 FIN+ACK 신호를 받고 ACK 신호를 원격에 보냈다.
TIME_WAIT   : 연결은 종료되었으나 원격의 수신 보장을 위해 기다리고 있는 상태
  이 상태를 특히 자주 보게되는 Apache에서 KeepAlive를 OFF로 해둔 경우,
  Tomcat 서버를 쓰는 경우 등
LAST_ACK    : 연결은 종료되었고 승인을 기다리는 상태
CLOSED      : 완전히 연결이 종료된 상태

※ 위의 FIN_WAIT1, FIN_WAIT2, CLOSE_WAIT 3개 상태는 연결 종료를 위해 서로간에
   신호를 주고받는 과정에 나타나는 상태로 이해하면 된다.
   종료 요청을 한 곳에서는 FIN_WAIT1, FIN_WAIT2, TIME_WAIT 상태가
   종료 요청을 받는 곳에서는 CLOSE_WAIT, LAST_ACK 상태가 표시된다.

3) 기타
CLOSING     : 연결은 종료되었으나 전송도중 데이타가 분실된 상태
UNKNOWN     : 소켓의 상태를 알 수 없음

솔라리스의 netstat 명령에서는 다음 2개의 상태를 더 표시한다.

IDLE        : 소켓이 열렸지만 binding 되지 않은 상태
BOUND       : listen이나 연결을 위한 준비 상태

ERR blog_07 61.106.160.18 Too long idle time, you(100.1.1.41) are disconnected

원본 링크 : http://cyhome.cyworld.com/?home_id=a1429626&postSeq=2704204


'공부방 > NetWork' 카테고리의 다른 글

[네트워크] OSI 7 Layer와 취약점  (0) 2009.07.23
[네트워크] P2P, 메신저들이 쓰는 포트  (0) 2009.07.23

+ Recent posts