[python] Fabric으로 원격 서버 네트워크 스캔하기

지난 글에서는 Fabric을 사용하여 원격 서버에 명령을 전달하는 방법을 알아보았습니다. 이번에는 Fabric을 사용하여 원격 서버의 네트워크 스캔을 수행하는 방법에 대해 알아보겠습니다.

네트워크 스캔을 위해 nmap이라는 유명한 도구를 사용할 수 있습니다. 이 도구는 다양한 스캔 옵션을 제공하며, 원격 서버의 네트워크 상태를 확인하는 데 유용합니다.

먼저, Fabric을 설치해야 합니다. 다음 명령을 사용하여 Fabric을 설치할 수 있습니다:

pip install fabric

Fabric을 설치한 후, fabfile.py라는 파일을 생성하고 아래의 코드를 작성합니다:

from fabric import Connection
from fabric import task

@task
def scan_network(c):
    result = c.run('nmap -sn 192.168.0.0/24') # 원하는 네트워크 범위로 변경해주세요
    print(result.stdout)

위의 코드에서는 Connection 모듈로 원격 서버에 연결하고, nmap 명령을 실행하여 네트워크 스캔을 수행합니다. 결과는 stdout으로 출력되며, 이를 터미널에 출력하는 것으로 간단하게 확인할 수 있습니다.

이제 fab 명령을 사용하여 원격 서버에서 네트워크 스캔을 실행해봅시다. 다음과 같이 명령을 입력하면 됩니다:

fab -H <서버주소> scan_network

위의 명령에서 <서버주소>에는 스캔을 실행할 원격 서버의 주소를 입력하면 됩니다. 예를 들어, 192.168.0.100이라는 서버의 네트워크를 스캔하려면 다음과 같이 입력합니다:

fab -H 192.168.0.100 scan_network

이렇게 하면 원격 서버의 네트워크 스캔 결과를 터미널에서 확인할 수 있습니다.

Fabric을 사용하면 간편하게 원격 서버에 명령을 전송하고 결과를 확인할 수 있습니다. 네트워크 스캔을 비롯한 다양한 작업에 활용할 수 있으며, 편리한 서버 관리를 위해 꼭 알아두면 좋은 도구입니다.

참고 문서:

주의: 네트워크 스캔은 관리자 권한이 필요한 작업이므로, 스캔을 수행하는 계정에 관리자 권한이 있는지 확인해야 합니다.