소개
이 랩은 netstat 명령줄 도구를 사용하여 Linux 에서 네트워크 모니터링에 중점을 둡니다. 네트워크 모니터링은 시스템 관리자가 시스템의 연결, 서비스 및 트래픽 패턴을 이해하는 데 필수적입니다.
이 랩을 통해 netstat 유틸리티를 사용하여 활성 네트워크 연결, 수신 대기 중인 서비스 및 네트워크 인터페이스 통계를 표시하는 방법을 배우게 됩니다. 이러한 기술은 네트워크 문제 해결, 시스템 성능 모니터링 및 네트워크 보안 보장에 기본적입니다.
이 랩이 끝나면 netstat을 효과적으로 사용하여 Linux 시스템의 네트워크 활동에 대한 통찰력을 얻을 수 있습니다. 이는 모든 시스템 관리자 또는 IT 전문가에게 유용한 기술입니다.
netstat 으로 네트워크 연결 이해하기
netstat 명령은 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 표시하는 강력한 네트워크 유틸리티입니다. 이 단계에서는 netstat을 사용하여 활성 네트워크 연결을 보는 방법을 배우게 됩니다.
먼저, 작업할 프로젝트 디렉토리로 이동해 보겠습니다.
cd /home/labex/project
netstat 이란 무엇인가요?
netstat (네트워크 통계) 명령은 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등과 같은 다양한 네트워크 관련 정보를 표시합니다. 시스템의 네트워크 활동을 이해하는 데 유용한 도구입니다.
활성 연결 보기
활성 TCP 연결을 표시하기 위해 특정 옵션과 함께 netstat 명령을 실행해 보겠습니다.
netstat -nat > connections.txt
이 명령에서:
-n은 주소와 포트 번호를 호스트 이름이나 서비스 이름으로 확인하지 않고 숫자 형식으로 표시합니다.-a는 모든 소켓 (수신 대기 및 비수신 대기) 을 표시합니다.-t는 TCP 연결만 표시합니다.> connections.txt는 출력을connections.txt라는 파일로 리디렉션합니다.
이제 생성한 파일의 내용을 살펴보겠습니다.
cat connections.txt
출력은 다음과 유사해야 합니다.
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
출력 이해하기
Proto: 사용된 프로토콜 (이 경우 TCP)Recv-Q: 이 소켓에 연결된 사용자 프로그램에서 복사하지 않은 바이트 수Send-Q: 원격 호스트에서 승인하지 않은 바이트 수Local Address: 소켓의 로컬 끝의 주소 및 포트 번호Foreign Address: 소켓의 원격 끝의 주소 및 포트 번호State: 소켓의 상태 (LISTEN, ESTABLISHED 등)
LISTEN 상태는 서비스가 실행 중이며 해당 특정 포트에서 들어오는 연결을 기다리고 있음을 나타냅니다.
수신 대기 서비스 모니터링
이 단계에서는 시스템에서 연결을 수신 대기 중인 서비스를 식별하는 방법을 배우게 됩니다. 이 정보는 보안 감사 및 네트워크 관련 문제 해결에 매우 중요합니다.
수신 대기 중인 서비스 식별
netstat 명령을 사용하여 LISTEN 상태에 있는 서비스를 구체적으로 찾아보겠습니다.
netstat -natu | grep LISTEN > listening_services.txt
이 명령에서:
-n은 숫자 주소를 표시합니다.-a는 모든 소켓을 표시합니다.-t는 TCP 연결을 포함합니다.-u는 UDP 연결을 포함합니다.| grep LISTEN은 "LISTEN"을 포함하는 줄만 표시하도록 출력을 필터링합니다.> listening_services.txt는 출력을 파일에 저장합니다.
이제 파일의 내용을 살펴보겠습니다.
cat listening_services.txt
다음과 유사한 출력을 볼 수 있습니다.
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
수신 대기 중인 서비스 이해
출력의 각 줄은 현재 연결을 수락하고 있는 서비스를 나타냅니다.
0.0.0.0에서 수신 대기 중인 서비스는 모든 네트워크 인터페이스에서 연결을 수락합니다.127.0.0.1에서 수신 대기 중인 서비스는 로컬 머신에서만 연결을 수락합니다.:::에서 수신 대기 중인 서비스는 모든 네트워크 인터페이스에서 연결을 수락하는 IPv6 주소입니다.
포트 번호 (SSH 의 경우 22 또는 CUPS 인쇄 서비스의 경우 631과 같은) 는 어떤 서비스가 수신 대기 중인지 식별합니다. 예를 들어:
- 포트 22: SSH 서비스
- 포트 80: HTTP (웹) 서비스
- 포트 443: HTTPS 서비스
- 포트 631: CUPS 인쇄 서비스
이 정보는 시스템에서 어떤 서비스가 노출되어 있는지 이해하는 데 도움이 되며, 이는 보안 평가 및 문제 해결에 유용합니다.
네트워크 인터페이스 통계 분석
이 단계에서는 네트워크 인터페이스에 대한 통계를 보는 방법을 배우게 됩니다. 이러한 통계는 네트워크 인터페이스의 성능 및 사용량에 대한 귀중한 정보를 제공합니다.
인터페이스 통계 보기
netstat을 사용하여 모든 네트워크 인터페이스에 대한 통계를 표시해 보겠습니다.
netstat -i > interface_stats.txt
이 명령에서:
-i는 모든 네트워크 인터페이스의 테이블을 표시합니다.> interface_stats.txt는 출력을 파일에 저장합니다.
이제 파일의 내용을 살펴보겠습니다.
cat interface_stats.txt
다음과 유사한 출력을 볼 수 있습니다.
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 123456 0 0 0 98765 0 0 0 BMRU
lo 65536 789 0 0 0 789 0 0 0 LRU
네트워크 인터페이스 통계 이해
출력은 각 네트워크 인터페이스에 대한 중요한 통계를 제공합니다.
Iface: 네트워크 인터페이스의 이름eth0: 일반적으로 첫 번째 이더넷 인터페이스lo: 로컬 연결에 사용되는 루프백 인터페이스
MTU: 최대 전송 단위 (Maximum Transmission Unit) - 전송할 수 있는 가장 큰 패킷 크기- 표준 이더넷은 일반적으로 1500 바이트를 사용합니다.
- 루프백 인터페이스는 일반적으로 더 큰 MTU (65536) 를 갖습니다.
RX-OK: 오류 없이 수신된 패킷 수RX-ERR: 오류와 함께 수신된 패킷 수RX-DRP: 삭제된 수신 패킷 수RX-OVR: 오버런된 수신 패킷 수TX-OK: 오류 없이 전송된 패킷 수TX-ERR: 오류와 함께 전송된 패킷 수TX-DRP: 삭제된 전송 패킷 수TX-OVR: 오버런된 전송 패킷 수Flg: 인터페이스 상태를 나타내는 플래그B: 브로드캐스트 주소 설정M: 멀티캐스트 활성화R: 인터페이스가 실행 중U: 인터페이스가 활성화됨
이러한 통계는 네트워크 성능을 모니터링하고 패킷 손실 또는 전송 오류와 같은 잠재적인 문제를 식별하는 데 도움이 됩니다.
추가 네트워크 통계 명령
네트워크 통계에 대한 보다 포괄적인 보기를 위해 다음을 사용할 수도 있습니다.
netstat -s | head -20 > protocol_stats.txt
이 명령은 TCP, UDP, IP, ICMP 및 기타 프로토콜에 대한 프로토콜 통계를 표시합니다. 가독성을 위해 head -20을 사용하여 출력을 처음 20 줄로 제한하고 있습니다.
이 파일을 살펴보겠습니다.
cat protocol_stats.txt
이것은 각 프로토콜이 어떻게 수행되고 있는지에 대한 자세한 통계를 제공하여 프로토콜 수준에서 잠재적인 네트워크 문제를 식별하는 데 도움이 됩니다.
요약
이 랩에서는 netstat 명령을 사용하여 Linux 시스템에서 네트워크 활동의 다양한 측면을 모니터링하는 방법을 배웠습니다. 습득한 주요 기술은 다음과 같습니다.
활성 네트워크 연결을 보아 시스템에 어떤 연결이 설정되어 있는지 이해합니다.
수신 대기 중인 서비스를 식별하여 어떤 포트가 열려 있고 잠재적으로 네트워크에 노출되어 있는지 확인합니다.
네트워크 인터페이스 통계를 분석하여 네트워크 인터페이스의 성능과 상태를 모니터링합니다.
이러한 기술은 네트워크 관련 문제를 이해하고 해결해야 하는 시스템 관리자, 네트워크 엔지니어 및 보안 전문가에게 필수적입니다. netstat 명령은 시스템의 네트워크 활동에 대한 귀중한 통찰력을 제공하여 최적의 성능과 보안을 유지하는 데 도움이 됩니다.
netstat은 많은 최신 Linux 배포판에서 레거시로 간주되며 ss 및 ip와 같은 도구로 대체되고 있지만, netstat을 이해하면 이러한 모든 도구에 적용되는 네트워크 모니터링 개념에 대한 견고한 기반을 제공합니다.



