# NETSTAT
: 네트워크 접속, 라우팅테이블, 네트워크 인터페이스의 통계정보를 보여주는 도구
netstat [옵션] [| grep 포트 번호 or 서비스 명]
option :
-a: 모든 소켓 표시
-n: hostname으로 표시 안함
-p: 프로세스ID와 프로그램명 표시
-u: UDP만 표시
-t: TCP만 표시
-r: 라우팅테이블 표시
-l: 연결대기 상태인 소켓만 표시
열려 있는 모든 포트를 확인하는 방법
$netstat -antup
LISTEN 중인 포트 표시.
$netstat -nap | grep LISTEN
TCP listening 상태의 포트와 프로그램을 표시.
$netstat -nlpt
네트워크 인터페이스를 통해 주고 받은 패킷에 대한 정보 확인
$netstat -i
프로토콜에 따른 패킷 통계를 확인. 동작 유무 상태를 점검할 수 있다.
$netstat -s
ex) TCP 통계 확인: $netstat -sp tcp
ex) UDP 통계 확인: $netstat -sp udp
# Netstat의 상태 값에 대해 간단하게 서술.
CLOSED : 완전하게 연결이 종료된 상태
CLOSING : 메시지 전송 도중 유실된 상태 (딱히 흔하지 않음)
CLOSE_WAIT : TCP연결이 상위 레벨로부터 연결종료를 기다리는 상태
ESTABLISHED : 서버-클라이언트 간 세션 연결이 성립되어 통신이 이루어지고 있는 상태
LISTEN : 서버의 데몬이 떠 있어서 클라이언트의 접속요청을 대기하는 상태
TIME_WAIT : 연결종료는 되었지만 소켓을 당분간 열어둔 상태이며 약 1분정도 후에는 사라짐.
SYN_SENT : 클라이언트가 서버에게 연결을 요청한 상태
SYN_RECEIVED : SYN(접속요구)를 받아 클라이언트에게 ACK(응답)하였지만, 아직 클라이언트에게 확인메시지(ACK)를 받지 못한 상태
*TIP
웹서버에 요청을 보내고 연결을 강제로 끊어버리는 공격을 당하면 웹서버는 이에 대한 대기상태가 유효하게 남아있게 된다.
웹서버의 자원이 무한정으로 제공되지 않기에 이런 상태가 늘어나게 되면서 자원부족으로 서비스 지연 및 리소스 부족 문제로 HANG 상태로 빠지게 되는 상황까지 연결될 수 있다.
동일IP에 대한 유입이 과다한 상태인경우 해당 IP를 차단하는 조치를 해야한다.