Knowledge Map

netstat 본문

WEB

netstat

2016. 3. 25. 19:58

출처:

http://idchowto.com/?p=13190

http://studyforus.tistory.com/244

http://blog.naver.com/pkd0427/140051923696

아직 내용 추가안한거..

http://najuung.tistory.com/41

--------------------------------------------------------------------------------------------------------


netstat 명령어는 리눅스, 윈도우 둘다 가능하다. 전반적인 사용법은 동일하다.


netstat이라고 치면 죽~ 나온다.

--------------------------------------------------------------------------------------------------------

LISTENING : 현재 서비스를 대기중 


ESTABLISHED : 다른 컴퓨터와 연결된 상태


CLOSED : 연결이 완전히 종료된 상태


TIME WAIT : 연결은 종료되었지만 당분간 소켓은 열어놓은 상태


사용포트 확인하여 불필요한 포트를 사용하고 있다면 외부해킹이나 트로이목마로 의심가능


*. 윈도우 Netbios

TCP 139번 포트를 이용해 다양한 정보를 넘겨주는 API

보안에 취약해 인증되지 않은 사용자가 아이디/패스워드 인증 없이 원격지 서버의 정보를 가지고 갈수 있다

--------------------------------------------------------------------------------------------------------

TCP : 프로토콜의 종류 (TCP/UDP)


192.168.0.2:2250 : 로컬 (자신) IP와 포트번호, 0.0.0.0 은 특정 아이피와 연결되어 있지 않음을 의미


x9.xx.2×0.5:65364 : 상대측 IP와 포트번호, 0.0.0.0 은 아직 통신이 시작되지 않았으며 특정한 IP와 포트가 연결되지 않았음을 의미


UDP프로토콜은 소켓을 상대측의 주소와 포트를 연결하지 않으므로 상대측은 *:* 표시됨


TIME_WAIT : 대기상태


LISTENING : 상대로 부터 접속을 기다리고 있는 상태


ESTABLISHED : 접속동작이 끝나고 데이터 통신중임을 표시


964 : 이소켓을 사용하고 있는 PID 프로세스 식별자

--------------------------------------------------------------------------------------------------------





--------------------------------------------------------------------------------------------------------


netstat /? 을 쓰면 위와 같은 도움말이 나온다. 이걸로 적당히 검색을 할수 있다.

--------------------------------------------------------------------------------------------------------

예를 들어서 모든 연결과 수신대시 포트를 표시 + 프로세스 ID를 표시 + 주소와 포트를 숫자 형식으로 표시 하고 싶을때에는

netstat -aon 이라고 치면 된다.


-a : 모든 포트를 표시

-n : IP주소:포트 형태로 보여줌 (예 - 192.168.0.22:1234)

-o : PID (프로세스 ID)를 표시 (해당 프로그램 중지시에 사용)




--------------------------------------------------------------------------------------------------------


window

 

netstat -nap tcp | find "LISTEN"

<!--현재 local컴터에 열린 포트를 보여준다.-->

<!--tcp만 보여준다.-->

 

netstat -nap udp | find "LISTEN"

<!--현재 local컴터에 열린 포트를 보여준다.-->

<!--udp만 보여준다.-->

 

netstat -nao | find "LISTEN"

<!--현재 local컴터에 열린 포트를 보여준다.-->

<!--tcp와 udp둘다 보여준다.-->

 

netstat -nao | find "80"

<!--현재 local컴터에 80포트로 접속한 ip를 보여준다.-->

 

netstat -nao | find "122:80"

 

netstat -nao | find "특정아이피:80"

<!--현재 local컴터에 80포트로 특정아이피가 접속한 리스트를 보여준다.-->

 

netstat -nao | find "80" /c

 

netstat -nao | find "특정아이피:80" /c

<!--현재 local컴터에 80포트로 접속한 리스트의 수를 보여준다.-->

 

linux

 

netstat -na

<!--해당 컴터에 연결된 컴터의 ip와 열려진 port와 protocal 타입이 나옵니다.-->

 

netstat -nap

<!--해당 컴터에 연결된 컴터의 ip와 열려진 port와 실행되는 데몬명(SID)과 protocal 타입이 나옵니다.-->

 

netstat -nao | grep ESTABLISHED

<!--local컴터에 접속한 IP 리스트가 보입니다.-->

 

netstat -na | grep LISTEN

<!--local컴터의 tcp/udp 열린 포트가 보입니다.-->

 

netstat -nau | grep LISTEN

<!--local컴터의 열린  udp 방식 포트가 보입니다.-->

 

netstat -nat | grep LISTEN

<!--local컴터의 열린 tcp 방식 포트가 보입니다.-->

 

netstat -nao | grep 80

<!--현재 local컴터에 80포트로 접속한 ip를 보여준다.-->

 

netstat -nao | grep 특정아이피:80

<!--현재 local컴터에 80포트로 특정아이피가 접속한 리스트를 보여준다.-->

 

netstat -n|grep -F :80|egrep '(ESTAB|SYN)'|awk '{print $5}'|sed 's/:[0-9]*//'|sort -u|wc -l

# 해당 포트의 접속상황을 가지고 동시접속자를 체크하는 방법

 

※netstat 의 status는 현재 상태이며 ESTABLISHED는 연결되어있는 상태를 말하며 CLOSED는 이미 연결이 끊어졌음을 말한다. LISTENING은 현재 시스템에서 열려있는 포트며 연결을 기다리는 포트입니다.

 

3.해당 port사용하는 프로그램 종료하기

 

Windows

 

netstat -nao | grep LISTEN 로 열린 포트를 확인한후 해당 포트가 어떤 프로그램에서 실행되는지 알려면 PID값을 기억한후

tasklist | grep pid 나 tasklist | find "pid" 이나 으로 해당 프로그램명을

알아내어 보안에 위반되는 프로그램이면 window작업관리자에서 해당 프로세서를 죽입니다.

 

※tasklist는 현재 컴터에서 돌아가는 프로그램명과 메모리사용량,PID가 나옵니다.

※본 자료실에 Fport-5620.exe은 포트PID와 해당 프로그램과 해당 포트가 연결되어 목록으로 나와서 보기 편합니다.

 

Unix or Linux

 

ps -ef | grep 프로세스명 또는 pid

설명

현재 실행되고 있는 프로세서중에서 프로세스명 만을 검색하여 정보를 출력한다.

출력 항목

출력 항목은 실행시킨소유자, pid, ppid, 점유율, 실행했을때의 시간, 실행되고 있는 시간, 실행파일명(위치) 순이다.

ex : nobody   26673  3615  0  05:00  00:00:12 /usr/sbin/apache

안나오는 항목

CPU점유율과 MEM점유율은 안나온다.

사용 예제

ps -ef | grep mysql

ps -ef | grep apache

결과 예제

vmsdev  98978  84210   3  17:30:50 pts/23  0:00 grep mvtm

 

※ pid 는 현재 시스템에서 유일한 프로세스 아이디이며 ppid 는 부모 프로세스 아이디이다.

 

ps -e | grep 프로세서명 또는 pid

설명

ps -ef 보다 좀더 간략하게 나온다.

출력항목

출력항목은 pid, 실행되고 있는 시간, 실행파일명(위치) 순이다.

안나오는 항목

CPU점유율과 MEM점유율은 안나온다.

사용 예제

ps -e | grep mysql

ps -e | grep apache

결과 예제

100310      -  0:07 mvtmtodb.exec

 

ps -ef 와 ps -e 의 차이점

ps -ef 는 검색 프로세서가 없어도 최소 한개의 검색결과는 나오지만 ps -e 는 검색프로세서가 없으면 검색결과가 아무것도 나오지 않는다.

 

ps auxw|more

# ps -ef 보다 자세하게 나오며 CPU, MEM 점유율이 추가되어 나온다.

 

"ps auxw|more" 결과에서 나오는 STAT 항목의 종류와 의미

---------------------------------------------------- 
부호         의   미 
---------------------------------------------------- 
R    수행 가능/수행중 
T    일시 정지 
P    페이지인을 기다림 
D    디스크 입출력 대기 같은 인터럽트 할 수 없는 대기중 
S    20초 미만의 짧게 잠듦 
I    20초 이상의 길게 잠듦 
Z    좀비 프로세스 
----------------------------------------------------

 

pid 값을 이용해 실행중인 프로세서 죽이기

"kill pid값" 명령을 하게 되면 해당 pid값에 해당하는 프로세서가 종료된다.

※ 위의 명령으로 제대로 종료가 안되면 "kill -9 sid값" 과같이 -9 옵션을 붙여 다시 실행한다.

ex : kill -9 pid값

 

4.해당 port 접근차단하기

 

window

해당 포트 막는것은 프로그램을 까시거나 네트웍쪽 등록정보를 보시면 해당 연결속성에서 TCP/IP속성에서 고급/옵션에 속성을 누르시면 해당 포트만 열수 있던가.포트에 해당 하는 보안 항목이 있습니다

 

linux

lokkit명령으로 보안수준을 활성화로 놓고 사용자설정에서 열고싶은 포트만 지정할수있습니다.하지만 보안수준이 비활성화면 모든 port가 열립니다.




'WEB' 카테고리의 다른 글

RESTful  (0) 2016.06.20
브라우저 감지  (0) 2016.04.19
커서  (0) 2016.03.22
AngularJS ng-repeat & ng-if  (0) 2016.03.16
UDP  (0) 2016.03.08
Comments