- 포트 번호가 필요한 이유?
IP 주소 : 호스트 또는 물리적인 포트를 구분하기 위한 번호
Port 주소 : 서비스 구분하기 위한 번호
Port번호가 없다면 하나의 서버는 하나의 서비스만 제공가능하다.
- 포트번호란?
MAC 주소(MAC Addr) : 6 bytes (48 bits)
IP 주소(IP Addr) : 4 bytes (32 bits)
Port 주소(Port Num): 2 bytes (16 bits)
포트번호는 인터넷이나 기타 다른 네트웍 메시지가 서버에 도착하였을 때, 전달되어야할 특정 프로세스를 인식하기 위한 방법이다.
TCP와 UDP에서, 포트번호는 단위 메시지에 추가되는 헤더 내에 넣어지는 16 비트 정수의 형태를 갖는다. 이 포트번호는 논리적으로는 클라이언트와 서버의 전달계층 사이를, 그리고 물리적으로는 전달계층과 인터넷계층 사이를 통과하여, 계속 전달 된다.
일부 서비스들에 대해서는 인습적으로 영구적인 포트번호들이 할당되어 있다. 이러한 것들을 well-known ports라고 부른다. 그 외의 경우에는, 포트번호는 할당된 포트번호들의 범위 내에서 요청의 시작과 종료 동안에만 일시적으로 부여된다.
The Well-Known Ports 0 - 1023
The Registered Ports 1024 - 49151
The Dynamic and/or Priv ate Ports. 49152 - 65535
포트번호 확인
( linux )
# cat /etc/services | more
( 전체 목록 )
http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
- 일반적인 서비스 포트 종류 [암기]
프로토콜 | 포트 | 프로토콜 | 포트 | |
FTP data port(active mode) | TCP 20 | NetBIOS (TCP rarely used) | TCP/UDP 137 | |
FTP control port | TCP 21 | NetBIOS | UDP 138 | |
SSH | TCP 22 | NetBIOS | TCP 139 | |
SCP(uses SSH) | TCP 22 | IMAP4 | TCP 143 | |
SFTP(uses SSH) | TCP 22 | LDAP | TCP 389 | |
telnet | TCP 23 | HTTPS | TCP 443 | |
SMTP | TCP 25 | SMTP SSL/TLS(SMTPs) | TCP 465 | |
TACACS+ | TCP 49 | IPsec (for VPN with IKE) | UDP 500 | |
DNS name queries | UDP 53 | LDAP/SSL(LDAPs) | TCP 636 | |
DNS zone Transfers | TCP 53 | LDAP/TLS(LDAPs) | TCP 636 | |
TFTP | UDP 69 | IMAP SSL/TLS(IMAPs) | TCP 993 | |
HTTP | TCP 80 | POP SSL/TLS(POPs) | TCP 995 | |
Kerberos | UDP 88 | L2TP | UDP 1701 | |
POP3 | TCP 110 | PPTP | TCP 1723 | |
SNMP | UDP 161 | Remote Desktop Protocol(RDP) | TCP/UDP 3389 | |
SNMP trap | UDP 162 | Microsoft SQL Server | TCP 1433 |
DB 종류 | 프로토콜/포트 |
MySQL | TCP 3306 |
MS-SQL | TCP 1443 |
Oracle | TCP 1521 |
PostgreSQL | TCP 5432 |
MariaDB | TCP 3306 |
DB2 | TCP 50090 |
- 실습
-telnet 23
( linux200 )
nmap 툴 /* 사용중인 포트번호 확인 */
[TERM1]
# yum -y install nmap
# nmap 192.168.27.201
|
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2017-10-20 06:13 KST Interesting ports on win2008 (192.168.27.201): Not shown: 1676 closed ports PORT STATE SERVICE 23/tcp open telnet 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds MAC Address: 00:0C:29:7D:D8:1E (VMware) Nmap finished: 1 IP address (1 host up) scanned in 1.767 seconds |
|
# telnet 192.168.27.201 23
administrator / security1.
[TERM2]
# netstat -antp
|
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 3947/hpiod tcp 0 0 0.0.0.0:938 0.0.0.0:* LISTEN 3724/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3683/portmap tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 4077/vsftpd tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 3988/xinetd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3974/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4095/sendmail: acce tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 3952/python tcp 0 0 192.168.27.200:41360 192.168.27.201:23 ESTABLISHED 5950/telnet tcp 0 0 :::22 :::* LISTEN 3965/sshd |
-> 192.168.27.200 에서 41360 포트로 192.168.27.201의 23번 포트로 telnet 접속
[TERM1]
C:\Users\Administrator > exit
- ftp 21
( 전제 조건 )
win2008 서버에 FTP 서버가 구축되어 있다고 가정한다. ( 알 ftp )
http://www.altools.co.kr/EstLab/AlftpServer.aspx
- 자신의 아이피 설정
- user01 / user01
- 읽기만 허용 uncheck
- 포트 21 확인 허용인원 최대 5명
확인 후 서버 시작
( linux200 )
[TERM1]
# nmap 192.168.27.201
|
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2017-10-20 06:22 KST Interesting ports on win2008 (192.168.27.201): Not shown: 1675 closed ports PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds MAC Address: 00:0C:29:7D:D8:1E (VMware) Nmap finished: 1 IP address (1 host up) scanned in 2.232 seconds |
|
-> ftp open 확인
# frp 192.168.27.201 21
user01 user01
[TERM2]
# netstat -antp
|
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 3947/hpiod tcp 0 0 0.0.0.0:938 0.0.0.0:* LISTEN 3724/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3683/portmap tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 4077/vsftpd tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 3988/xinetd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3974/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4095/sendmail: acce tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 3952/python tcp 0 0 192.168.27.200:41822 192.168.27.201:21 ESTABLISHED 5983/ftp tcp 0 0 :::22 :::* LISTEN 3965/sshd |
-> 192.168.27.200 의 41822 포트로 192.168.27.201의 21번 포트에 ftp 접속
[TERM1]
ftp > quit
[실무 예]
요청 : FTP 서비스 포트를 열어주세요
-> Server 에서는 FTP 서비스 데몬을 띄워주면 된다.
-> Router/ Firewall 에서는 FTP 서비스가 통신하도록 포트를 막지 않으면 된다.
( linux Server )
# nmap -p 21 localhost
# netstat -antp | grep :21
# service vsftpd stop
# service vsftpd start
- 자신의 서버에 열린 포트 점검하기
( linux200 )
# cat /etc/services /* 모든 포트 목록 확인 */
# yum -y install nmap
# nmap localhost /* 자신의 서버에 열린 포트 점검 */
# netstat -an | more /* 열린 포트 점검 */
# netstat -an | grep '^tcp' ( # netstat -ant )
# netstat -an | grep '^udp' ( # netstat -anu )
( win2008 )
<windows + E > = C:\Windows\system32\drivers\etc\services /* 모든 포트 목록 확인 */
nmap 툴 설치
https://nmap.org/download.html
c:\> natstat -a
'Security > Network Security' 카테고리의 다른 글
hping3 명령어 사용하기 (0) | 2017.10.21 |
---|---|
TCP/UDP 대표적인 서비스 패킷 분석 (0) | 2017.10.19 |
UDP 패킷 분석 (0) | 2017.10.19 |
TCP 패킷 분석 (0) | 2017.10.19 |
MTU ( Maximum Transfer Unit, 최대 전송 단위 ) (0) | 2017.10.18 |