NESTAT
network statistics 의 약자로, 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스, 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 도구.
결과값 설명
Proto: 사용한 프로토콜
State: 연결 상태
- ESTABLISHED : connection 이 맺어진 상태
- SYN-RECV : 네트워크로 부터 connection 요청을 수신한 상태
- FIN-WAIT2, : connection이 closed 상태이고, 소켓이 remote end가 shutdown 되기를 기다리는 상태
- CLOSED : 소켓을 사용하지 않음
- LAST_ACK : acknowledgement를 기다리는 상태 remote end가 shutdown 되었고, 소켓이 closed 상태
- CLOSING : 양쪽의 소켓이 shutdown 되었지만 아직 전송할 데이터가 남아있는 상태
- UNKNOWN : 정의되지 않은 소켓 상태
- LISTEN : 소켓이 새로운 connection을 기다리는 상태
- CLOSE-WAIT : remote end가 shutdown 되었고, 소켓이 closed 상태가 되기를 기다리는 상태
- TIME-WAIT : 연결종료 후에 한동안 유지하고 있는 상태
- FIN-WAIT1 : 소켓이 closed 상태이고, connection이 shutdown 될 것이다.
- SYN-SENT : connection 을 요청한 상태
Recv-Q : 소켓이 수신한 데이터 중에서 아직 프로그램이 처리 못하고 있는 바이트수를 의미
Send-Q : 전송하였으나 remote host로 부터 아직 acknowledge를 받지 못하여 대기중인 바이트수를 의미
* 이 값들이 계속해서 증가한다면 프로그램에 문제가 있거나 병목이 발생 하였다는 의미
옵션값 설명
옵션 | 설명 |
-a | 모든 네트워크 상태 출력 [-all] |
-c | 현재 실행 명령을 매 초마다 실행 [-continuous] |
-e | 확장된 정보 출력 [-extend] |
-g | 멀티캐스트에 대한 그룹별 정보 출력 [-groups] |
-i | 인터페이스 통계값 출력 [-interface] |
-l | 대기중인 네트워크 [-listening] |
-n | 도메인 주소를 숫자로 출력 [-numeric] |
-o | 연결 대기 시간 출력 [-timers] |
-p | PID(프로세스 ID)와 사용중인 프로그램명 출력 [-program] |
-r | 라우팅 테이블 출력 [-route] |
-s | 프로토콜 요약 정보 출력 [-statistics] |
-t | TCP 프로토콜만 출력 [-tcp] |
-u | UDP 프로토콜만 출력 [-udp] |
-v | 버전 출력 |
-w | RAW 프로토콜만 출력 [-raw] |
-A 프로토콜 | 프로토콜별로 출력 [-protocol] |
-M | 마스커레이딩 정보 출력 [-masquerade] |
직접 사용해보자
1) 모든 네트워크 연결 확인하기
netstat -a
2) 프로토콜 별로 출력하기 (-A)
+ TCP만 확인하기
* 리눅스 운영체제는 /proc 파일시스템을 이용해서 유저에게 tcp정보를 제공한다. tcp 연결정보는 /proc/net/tcp 파일에 ASCII 형태로 저장되어 있다)
+UDP만 확인하기
3. 열려 있는 모든 포트 중에서 LISTEN 상태인 포트만 출력하기
netstat -nap | grep LISTEN
4. 라우팅 테이블을 빠르게 출력하기 위한 옵션값
netstat -rn
5. tcp 프로토콜 중에서 대기상태인 pid를 빠르게 확인하기 위한 옵션값
netstat -lntp
6. 현재 열려 있는 포트를 사용 중인 프로세스 확인
netstat -p
7. 열려 있는 포트 번호, 그리고 그 포트를 사용하는 프로그램에 대한 정보를 상세히 점검
netstat -atp
이 옵션을 통해서 불필요하게 열려 있는 포트나 알려지지 않은 포트가 있다면 이를 확인하여 포트를 닫고 프로그램을 중지
참고
https://websecurity.tistory.com/103
https://thebook.io/006718/part01/ch03/06/04/
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ryangjm&logNo=220006606991
'CS' 카테고리의 다른 글
패킷, 프레임, 세그먼트의 차이점은? (0) | 2021.07.28 |
---|---|
리눅스 proc (0) | 2021.07.28 |
ARP 스푸핑, 공격 기법, 과정 (0) | 2021.07.27 |
NAT 개념 공부 (0) | 2021.07.27 |
보안기술 4주차 (0) | 2021.07.20 |