어떻게 Shell 스 크 립 트 를 사용 하여 여러 서버 의 포트 가 열 렸 는 지 확인 합 니까?

5212 단어
서버 설정 을 할 때 서버 의 어떤 포트 가 열 렸 는 지 자주 확인 해 야 합 니 다.서버 가 한두 대 밖 에 없다 면 쉽 습 니 다. nc 명령 을 사용 하여 하나씩 확인 하면 됩 니 다.
하지만 서버 가 클 러 스 터 라면 여러 대가 있 습 니까?수 동 으로 검 사 를 받 으 면 효율 이 떨 어 질 것 이 고 연말 감원 명단 에 당신 이 있 을 것 입 니 다.
이러한 상황 에서 우 리 는 Shell 스 크 립 트 를 사용 하여 nc 명령 에 맞 춰 우리 의 목적 을 달성 할 수 있 습 니 다.그리고 서버 가 몇 대 있 든 검사 해 야 할 포트 가 몇 개 있 든 이런 목 표를 이 룰 수 있다.
본 논문 에서 우 리 는 Shell 스 크 립 트 로 두 가지 수 요 를 실현 합 니 다.
  • 여러 서버 의 포트 가 열 렸 는 지 스 캔 합 니 다
  • 여러 서버 의 여러 포트 가 열 렸 는 지 스 캔
  • 시작 하기 전에 nc 명령 을 알 아 보 겠 습 니 다.
    nc 명령 안내
    nc 는 영어 단어 netcat 의 줄 임 말로 TCP 나 UDP 의 네트워크 프로 토 콜 연결 을 통 해 데 이 터 를 읽 거나 쓸 수 있 으 며 제3자 프로그램 이나 스 크 립 트 에 직접 호출 될 수 있 습 니 다.
    또한, 그것 은 당신 이 필요 로 하 는 거의 모든 연결 방식 을 만 들 수 있 기 때문에 매우 강력 한 기능 을 가 진 네트워크 디 버 깅 도구 입 니 다.
    nc 도 구 는 주로 세 가지 기능 모델 이 있 는데 그것 이 바로 연결 모델, 감청 모델, 채널 모델 이다.일반적인 사용 형식 은 다음 과 같 습 니 다.
    $ nc [-options] [HostName or IP] [PortNumber]
    

    그 다음 에 우 리 는 Shell 스 크 립 트 와 nc 명령 을 결합 하여 우리 의 두 가지 요 구 를 실현 합 니 다.
    1. 여러 서버 의 포트 가 열 렸 는 지 스 캔 합 니 다.
    여기 서 우 리 는 먼저 조회 해 야 할 모든 서버 주 소 를 하나의 server-list.txt 파일 에 넣 고 각 주 소 는 한 줄 로 다음 과 같 습 니 다.
    # cat server-list.txt
    192.168.1.2
    192.168.1.3
    192.168.1.4
    192.168.1.5
    192.168.1.6
    192.168.1.7
    

    그 다음 에 우 리 는 for 순환 으로 서버 에 대응 하 는 포트 가 열 렸 는 지 순서대로 스 캔 합 니 다.여기 서 22 포트 가 열 렸 는 지 확인 합 니 다.
    # vi port_scan.sh
    
    #!/bin/sh
    for server in `more server-list.txt`
    do
    #echo $i
    nc -zvw3 $server 22
    done
    

    마지막 으로 이 스 크 립 트 에 실행 가능 한 권한 을 부여 하면 됩 니 다.
    $ chmod +x port_scan.sh
    

    그 후에 우 리 는 이 스 크 립 트 를 이용 하여 여러 서버 의 22 포트 가 열 렸 는 지 여 부 를 자동 으로 검사 할 수 있 습 니 다.
    # sh port_scan.sh
    
    Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
    

    2. 여러 서버 의 여러 포트 가 열 렸 는 지 스 캔
    여기 서, 우 리 는 또한 조회 해 야 할 모든 서버 주 소 를 하나의 server-list.txt 파일 에 넣 고, 각 주 소 는 한 줄 씩 따로 놓 습 니 다.여기 서 는 반복 해서 시연 하지 않 겠 습 니 다.
    이 동시에 저 희 는 조회 가 필요 한 서버 포트 를 다른 server-list.txt 파일 에 두 었 습 니 다. 각 포트 는 한 줄 씩 있 습 니 다. 다음 과 같 습 니 다.
    # cat port-list.txt
    22
    80
    

    그 다음 에 우 리 는 for 순환 으로 서버 port-list.txt 에 대응 하 는 포트 가 열 려 있 는 지 순서대로 스 캔 합 니 다.여기 서 두 개의 for 순환 을 사 용 했 습 니 다. 첫 번 째 층 은 서버 목록 이 고 두 번 째 층 은 포트 목록 입 니 다.
    # vi multiple_port_scan.sh
    
    #!/bin/sh
    for server in `more server-list.txt`
    do
    for port in `more port-list.txt`
    do
    #echo $server
    nc -zvw3 $server $port
    echo ""
    done
    done
    

    마지막 으로 이 스 크 립 트 에 실행 가능 한 권한 을 부여 하면 됩 니 다.
    $ chmod +x multiple_port_scan.sh
    

    그 후에 우 리 는 이 스 크 립 트 를 이용 하여 여러 서버 의 여러 포트 가 열 렸 는 지 자동 으로 검사 할 수 있 습 니 다.
    # sh multiple_port_scan.sh
    Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.2 80 port [tcp/http] succeeded!
    
    Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.3 80 port [tcp/http] succeeded!
    
    Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.4 80 port [tcp/http] succeeded!
    
    Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.5 80 port [tcp/http] succeeded!
    
    Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.6 80 port [tcp/http] succeeded!
    
    Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
    Connection to 192.168.1.7 80 port [tcp/http] succeeded!
    

    코드 가 쉽 지 않 습 니 다. 도움 이 된다 면 좋아요 눌 러 주시 고 가세 요 ~
    -----------------
    저 는 양 허 입 니 다. 세계 500 대 외국 기업 리 눅 스 개발 엔지니어 로 리 눅 스 건 화 를 전문 적 으로 생산 합 니 다.제 공식 번호 인 '양 허 리 눅 스' 에 관심 을 가 져 주 십시오. '1024' 에 답 하여 최신 최신 기술 자 료 를 얻 고 '입 군' 에 답 하여 고수 인 클 라 우 드 기술 교류 군 에 들 어 갑 니 다.
    img

    좋은 웹페이지 즐겨찾기