Computer >> 컴퓨터 >  >> 스마트폰 >> Linux

리눅스 netstat 명령어로 네트워크 연결 모니터링하는 방법

이 가이드에서는 리눅스에서 netstat 명령어를 활용해 인터넷 및 네트워크 연결 상태를 모니터링하는 방법을 소개합니다.

netstat란 무엇인가?

netstat은 리눅스에서 매우 유용하게 활용되는 커맨드라인 도구로, 현재 어떤 서비스가 내 머신의 특정 포트에 연결되어 있는지 확인할 수 있습니다. 서버가 공격을 받고 있거나 공격을 사전에 차단하려는 상황에서 시스템에서 무슨 일이 일어나고 있는지 분석할 때 특히 유용합니다. 특정 포트에 몇 개의 연결이 이루어지고 있는지, 해당 연결이 어떤 IP 주소에서 시작되었는지 등 다양한 정보를 파악할 수 있습니다.

netstat은 대부분의 리눅스 배포판에 기본적으로 포함되어 있으므로 별도의 설치 없이 바로 사용할 수 있습니다.

기본 사용법

터미널을 열고 다음 명령어를 실행해 보세요.

# netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 ::ffff:192.168.1.19:80 ::ffff:192.168.1.240:63049 TIME_WAIT
tcp 0 0 ::ffff:192.168.0.19:80 ::ffff:192.168.1.240:62793 TIME_WAIT
tcp 0 0 ::ffff:192.168.1.19:80 ::ffff:192.168.1.240:62795 TIME_WAIT

실제 출력 결과는 훨씬 길며, 위 내용은 그중 일부 스냅샷입니다. 출력 결과를 보면 192.168.1.240이라는 IP가 TCP 프로토콜을 통해 서버의 80번 포트에 접속했으며, 해당 연결은 TIME_WAIT 상태에 있다는 것을 알 수 있습니다. 여러분의 서버에서도 마찬가지로 80번 포트뿐 아니라 머신의 모든 포트에 대한 정보가 출력됩니다.

grep으로 특정 포트 필터링하기

출력 결과가 방대하면 분석이 어렵습니다. 따라서 먼저 어떤 서비스를 분석할지 정하는 것이 좋습니다. 일반적으로 웹 서버가 사용하는 기본 포트인 80번 포트와 MySQL의 기본 포트인 3306번 포트를 주로 살펴봅니다. 80번 포트의 상황을 확인하려면 다음과 같이 grep을 조합합니다.

# netstat -ant | grep 80

그래도 여전히 많은 목록이 출력될 수 있습니다. 이때 wc -l 명령어를 함께 사용해 라인 수를 세면 80번 포트에 대략 몇 개의 연결이 있는지 빠르게 파악할 수 있습니다.

# netstat -ant | grep 80 | wc -l

625

MySQL 포트도 동일한 방식으로 확인합니다.

# netstat -ant | grep 3306 | wc -l

61

awk와 uniq로 연결 상태 요약하기

서버 전체의 연결 성격을 한눈에 파악하고 싶다면 아래 명령어를 사용합니다. 각 연결 상태별 개수를 집계해 줍니다.

# netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

      1 established)
1 Foreign
4 FIN_WAIT2
8 LISTEN
16 CLOSE_WAIT
134 ESTABLISHED
409 TIME_WAIT

이 결과를 통해 머신에 존재하는 다양한 상태의 연결이 각각 몇 개인지 알 수 있습니다. 웹 서버(80번 포트)로 들어오는 모든 연결의 상태를 종합적으로 보려면 다음과 같이 실행합니다.

netstat -ant | grep 80 | awk '{print $6}' | sort | uniq -c | sort -n

      1 FIN_WAIT1
4 LISTEN
6 FIN_WAIT2
17 CLOSE_WAIT
94 ESTABLISHED
534 TIME_WAIT

마무리

netstat은 다른 리눅스 커맨드라인 도구들과 조합하면 훨씬 더 복잡하고 정교한 분석도 가능합니다. 특히 서버가 공격당하는 상황에서는 이런 방식으로 수집한 정보를 방화벽 설정에 활용할 수 있으므로, 평소에 관련 트릭들을 익혀두는 것이 큰 도움이 됩니다.