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

netstat로 Linux 시스템을 모니터링하는 방법

이 가이드에서는 netstat 명령을 사용하여 Linux에서 인터넷 및 네트워크 연결을 모니터링하는 방법을 설명합니다.

Netstat는 컴퓨터의 포트에 연결 중인 서비스를 확인할 수 있는 매우 유용한 Linux 명령줄 도구입니다. 공격에 직면했거나 공격을 방지하려고 할 때 시스템에서 무슨 일이 일어나고 있는지 분석하는 것은 매우 유용합니다. 포트에서 얼마나 많은 연결이 이루어지고 있는지, 이러한 연결이 시작된 IP 주소 등의 정보를 찾을 수 있습니다. Netstat는 대부분의 Linux 배포판과 함께 제공되므로 이미 설치되어 있어야 합니다.

컴퓨터에서 셸 터미널을 시작하고 다음 명령을 실행합니다.

# netstat -ant
활성 인터넷 연결(서버 및 설정됨)
Proto Recv-Q Send-Q 로컬 주소 외부 주소 상태
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.ff168 192.168.1.240:62795 TIME_WAIT

출력은 대부분 매우 길 것입니다. 방금 위의 출력에 대한 스냅샷을 제공했습니다. 위의 데이터에서 볼 수 있듯이 TCP 프로토콜을 사용하여 192.168.1.240에서 내 서버의 포트 80으로 연결되고 TIME_WAIT 상태로 연결됩니다. 서버에 대해 얻은 출력에는 포트 80뿐만 아니라 컴퓨터의 모든 포트에 대한 정보가 있습니다.

가장 먼저 깨달은 것은 이렇게 큰 출력은 별로 쓸모가 없다는 것입니다. 그럼 조금 정리해보자. 다음은 내 서버에서 만들어지는 연결의 특성을 분석하는 데 사용하는 몇 가지 트릭입니다. 내가 가장 먼저 할 일은 내가 분석하고 싶은 서비스를 파악하는 것입니다. 일반적으로 웹 서버가 실행되는 기본 포트인 80번 포트와 MySQL이 실행되는 기본 포트인 3306번 포트입니다. 따라서 다음 쿼리를 사용하여 포트 80에서 무슨 일이 일어나고 있는지 확인합니다.

# netstat -ant | grep 80

다시 나는 첫 번째 것보다 작지만 여전히 파악하기에는 너무 큰 연결의 큰 목록을 얻습니다. 그래서 "wc -l" 명령을 사용하여 출력의 줄 수를 계산하여 내 포트 80에 대략 몇 개의 연결이 있는지 확인합니다.

# netstat -ant | 그렙 80 | 화장실 -l
625

그런 다음 MySQL에 대해서도 동일한 작업을 수행합니다.

# netstat -ant | 그렙 3306 | 화장실 -l
61

이제 연결의 특성과 관련하여 내 서버에서 무슨 일이 일어나고 있는지에 대한 완전한 그림을 보려면 다음과 같이 하십시오.

# netstat -ant | awk '{인쇄 $6}' | 정렬 | 유니크 -c | 정렬 -n

1개 설정)
1개 외국
4 FIN_WAIT2
8 LISTEN
16 CLOSE_WAIT
134 ESTABLISHED
409 TIME_WAIT

이것은 내 컴퓨터에 있는 여러 유형의 상태 연결 수를 알려줍니다. 비슷한 명령을 실행하여 내 웹 서버에 대한 모든 연결 상태의 전체 그림을 볼 수 있습니다.

netstat -ant | 그렙 80 | awk '{인쇄 $6}' | 정렬 | 유니크 -c | 정렬 -n

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

다른 Linux 명령줄 도구와 함께 Netstat를 사용하여 훨씬 더 복잡한 작업을 수행할 수 있습니다. 방화벽의 정보를 사용할 수 있으므로 특히 서버에 대한 공격에 직면할 때 Netstat를 사용하여 이러한 종류의 정보를 얻는 몇 가지 트릭에 익숙해지면 도움이 될 수 있습니다.