문서번호 : 52-285394
Document Information
•
최초 작성일 : 2022.05.09
•
최종 수정일 : 2022.05.09
Goal
두 IP의 지정 Port 간 TCP connection 가능 여부를 검증하고, 필요시 firewall 의 port를 개방한다.
Solution
통신을 원하는 <IP/Port> 사이에는 firewall / NAT / Switch / VPC 등 다양한 레이어가 존재한다. 이로인해 OS 설정만으로 두 Port 사이 통신을 장담할 수 없다. configuration 점검이 아닌 실제 접속을 통해 port 접속 가능 여부를 파악할 수 있다.
Linux
nc 명령어를 이용해 특정 port를 listen 하고 다른 곳에서 접속을 시도한다.
Destination (free2)
[opc@free2 ~]$ nc -v -l 7755
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::7755
Ncat: Listening on 0.0.0.0:7755
Ncat: Connection from 10.0.0.110. <-- 실제 접속이 발생하면 출력됨.
Ncat: Connection from 10.0.0.110:54450.
Plain Text
복사
Source (free1)
[opc@free1 WebDAV]$ nc -z -v free2 7755
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.0.0.228:7755. <--- 접속 성공시
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
Plain Text
복사
source에서 target으로 접속 불가할 경우 다음과 같이 출력된다.
[opc@free1 WebDAV]$ nc -z -v free2 7755
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: No route to host. <--- IP 오류 또는 target Firewall 미개방 등...
[opc@free1 WebDAV]$ nc -z -v free2 7755
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection refused. <-- target에서 listen하지 않고 있을 경우
[opc@free1 WebDAV]$ nc -z -v free2 7756
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection timed out. <-- VPC/switch security 설정 또는 target의 port 미개방 경우
Plain Text
복사
Windows
windows는 source에서 target을 시험할 때 nc를 대신해 powershell의 test-netconnection (tnc)를 사용한다.
PS C:\Users\tlswo> tnc google.com -port 443 ComputerName : google.com
RemoteAddress : 172.217.24.110
RemotePort : 443
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.123.123
TcpTestSucceeded : True
Plain Text
복사
Linux - firewalld 지정 포트 허용하기
firewall 관련 설정은 root 계정에서 실행한다.
기본영역이며, 일반적으로 active되어 있는 zone은 public이다. 그렇지만, 검증을 위해 다음 명령으로 public zone이 활성화 되어 있고, 테스트 하고자 하는 port가 포함되어 있는지 확인한다.
[root@free1 ~]# firewall-cmd --get-active-zones
public
interfaces: ens3
[root@free1 ~]# firewall-cmd --zone=public --list-ports
5959/tcp
Plain Text
복사
public zone이 ens3 device에 설정되어 있으며, 해당 zone에는 5959 TCP port가 개방되어 있다.
포트 추가 개방하기
다음과 같은 절차로 7755/TCP port를 영구 개방한다.
[root@free1 ~]# firewall-cmd --zone=public --add-port=7755/tcp --permanent
success
[root@free1 ~]# firewall-cmd --reload
success
[root@free1 ~]# firewall-cmd --zone=public --list-ports
7755/tcp
Plain Text
복사
References
History
일자 | 작성자 | 비고 |
2022/05/09 | jnshin | 최초작성 |