서버 운영 관리 [ Tip ]

서비스 포트 번호

 


서버를 이용하시는 사용자라면 포트 번호와 서버의 관계에 대하여 알고 계실겁니다.


포트 번호란 네트워크에서 특정 서비스 및 애플리케이션이 통신할 때 사용하는 숫자로,

네트워크에서 데이터의 목적지를 결정하는 데 있어 중요한 역할을 수행합니다.


서비스 데몬은 프로그램이 실행되고 통신할 때 미리 약속된 프로토콜과 포트번호를 이용하여 통신합니다.

주로 많이 사용되는 프로토콜은 TCP/UDP이지만, 특별한 서비스의 경우 다른 프로토콜을 사용하기도 합니다.


본 매뉴얼은 서비스 포트번호 확인하는 방법을 소개합니다.




서비스 포트범위



서비스 포트 범위는 0 ~ 65,535번까지 존재하며, 이 중 특별한 서비스는 미리 포트번호를 지정하여 사용합니다.   



 

IANA(Internet Assigned Numbers Authority)에서 권고하는 서비스별 프로토콜 및 포트번호

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

 ※ 서비스 이름 및 프로토콜과 포트번호는 방화벽을 설정하기 위하여 꼭 필요합니다.  


사용자는 서버 내에서 서비스가 활성화된 프로그램이나 데몬이 어떤 포트를 사용중인지 확인할 필요가 있습니다.

필요에 따라 방화벽을 설정할 때 필요한 포트만 허용 후 불필요한 포트는 차단하는 방식을 권장드립니다. 




Windows



CMD(명령 크롬프트)창을 활용하여 현재 서버 내 구동되고 있는 포트번호를 확인하실 수 있습니다. 


- TCP/UDP 모두 확인하기

# netstat -ano | find "LISTEN"

  





- TCP 확인

# netstat -anp tcp | find "LISTEN"





- UDP 확인

# netstat -anp udp | find "LISTEN"





Linux


 

사용중인 포트의 경우 root 권한으로 로그인 후 'netstat -ntlp' 명령어를 입력하면 확인할 수 있습니다.

※ root 계정이 아닐경우 'Program name' 부분이 보이지 않습니다. 

 


※ Proto : 프로토콜


Local Address : 서버에 열려있는 서비스 포트

Program name
: 가장 오른쪽 데몬이름 



위 서버의 방화벽은 아래와 같은 포트에 대해 오픈시켜야 합니다.

서비스명   프로토콜   포트번호

mysql           tcp         3306

ftp                 tcp           21

ssh               tcp           22

sendmail      tcp           25

pptp             tcp         1723

http              tcp           80

※ Local Address 는 현재 서버에 오픈되어 있는 포트로 방화벽 설정은 인바운드로 설정합니다.  

※ 방화벽 설정 이전 해당 서비스를 사용자가 이용하는 지 체크가 우선이며, 사용하지 않을경우 프로그램(데몬)을 종료하시기 바랍니다. 

 

또 다른 포트 확인 방법은 nmap 이라는 네트워크 툴을 사용하여 내 서버에 열려있는 서비스 포트들을 체크 있으나,
이 방법은 방화벽에 차단되었을때 정확히 확인이 되지 않으므로 접속 권한이 없는 서버에 대해 확인할때 좀더 유용히 사용됩니다.

 

iptables 설정 매뉴얼 : https://help.iwinv.kr/manual/read.html?idx=96

ELCAP 방화벽 매뉴얼 : https://help.iwinv.kr/manual/read.html?idx=443