1.netstat?
netstat 명령어는 자신의 컴퓨터와 연결된 모든 네트워크 연결을 보여주는 명령어입니다.
원도우와 리눅스 둘다 존재하는 명령어입니다. 해킹체크의 용도로 사용합니다.
2.사용방법?
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가 열립니다.