티스토리 뷰



네트워킹이 일반화된 컴퓨팅 환경에서 내가 사용하는 컴퓨터의 네트워크 상황을 점검하는 것 만큼 중요한 작업은 없습니다. 정상적인 상태에서는 문제될 것이 없겠지만 문제가 생겼을 때 문제의 원인이 무엇인지 모르는 상태에서 섣불리 행동으로 옮기면 시간적 재정적 손실에 후회 막급인 경우가 허다합니다. 윈도우 콘솔창에서 네트웍 점검하기를 참조해 보시면 기본적인 네트웍 점검 요령은 확인할 수 있습니다. 그런데 네트웍에 문제도 없고 한쪽 컴퓨터에서 서버를 정상적으로 가동시켰다고 했는데 다른 쪽에서 해보면 접속되지 않는 경우에는 대부분 서버측의 방화벽을 확인해야 하는 상황입니다.

방화벽 설정 확인에 앞서 해당 포트가 진짜로 닫혀 있는지 확인할 필요가 있습니다. 포트는 열려있지만 IP를 막을 수도 있습니다. 아무튼 실제 접속 여부 확인이 설정 확인보다 간편하고 정확합니다. 리눅스라면 nc 명령이나 nmap명령으로 확인할 수 있지만 윈도우 기본 도구에는 해당 도구들이 없고 별도로 설치해야 합니다. 

리눅스에서 ncnmap명령이 없으면 yum이나 apt-get으로 간단히 설치해서 사용할 수 없습니다.

아래의 그림은 nmap명령으로 네이버 개발자 센터(dev.naver.com) 서버 포트 개방 상태를 알아본 것입니다.


어떤 포트가 개방되어 있는지 확인할 수 있으므로 자신이 운영하고 있는 서버의 기본적인 보안 설정 관계를 확인할 수 있는 좋은 방법입니다.

아래의 그림은 리눅스에서 네이버 서버의 특정 포트가 열려있는지 확인한 결과입니다. 


위의 그림과 같이 서버의 도메인 이름이나 IP주소와 함께 확인할 포트를 지정하면 해당 포트에 접근할 수 있는지 확인할 수 있습니다.

nc나 nmap 대신에 예전에 많이 사용했던 telnet으로 "telnet 호스트IP 포트"와 같이 입력하여 포트 개방 여부를 확인할 수도 있지만 위에서 보는 것과 같이 nc명령이 보다 효과적입니다. 또한 윈도우7등 최근의 윈도우 배포판에는 telnet을 기본 설치에 포함하지 않기 때문에 telnet을 사용하려면 윈도우키+R로 실행창을 띄우고 "optionalfeatures"를 입력해서 윈도우 기능 사용/사용 안함을 실행한 다음 telnet를 추가 설치해야 합니다.

윈도우에서 telnet 대신 nc 명령을 윈도우로 구현한 오픈소스 프로그램을 다운로드 받는 방법도 있습니다. 일명 "netcat for Win32/Win64"로 https://eternallybored.org/misc/netcat/에서 1.12 버전을 다운로드 받을 수 있습니다. 다운로드 받은 압축 파일을 해제하면 아래의 그림과 같이 실행 파일과 소스 코드를 함께 배포하고 있습니다. 라이선스는 GPL입니다.


nc.exe 파일을 윈도우 시스템 디렉토리(C:\Windows\System32)에 복사해 두면 언제든지 어떤 폴더에서도 간편하게 nc 명령을 수행할 수 있습니다. 아래의 그림은 윈도우 콘솔에서 특정 서버의 포트가 열려 있는지 확인한 결과입니다.




댓글
댓글쓰기 폼