개요
본 내용은, 필자가 외부에서 내부로 접근이 되지 않는 인터넷 상황에서 접근 할 수 있는 방법에 대해서 경험을 공유하고자 한다. 일부 경우는 정말로 급하거나 위급한 상황에서만 적용하기를 바라며, 보안 위배가 될 수 도 있으므로 잘 확인해보고 사용해보길 바랍니다.
먼저, 요약하자면, 인트라넷에 접근이 불가능한 상황에 대해서 어떻게 접근 할 수 있을까? 라는 내용으로 이야기 하고자 한다.
(1) 인트라넷의 보안으로 인해 외부 트래픽이 잡히면 안되는 경우 (2) 인트라넷이 인터넷이 되지 않아 접근이 어려운 경우 (3) 기타 여러 상황에서 외부에서 내부로 접근을 하고 싶은 경우
필자는 외부에서 내부로 통신하기 위해서 크게 3가지 방법을 제안하며, 따라해도 되는 것과 안되는 것에 대해서는 미리 이야기할 예정이다. (가능하다는 것과 합법이란 내용은 다르기 때문이다.)
LTE Router 기반 통신
가장 쉬우면서 가장 이상적이지만 잘못했다간 큰 문제가 발생하는 방법 중 하나이다. LTE Router는 USB 형태로된 스틱이며 컴퓨터에 연결하게 되면 공유기/이더넷으로 인식하여 인터넷을 가능하게 만들어주는 장치이다. 스마트폰의 LTE 유심을 기반으로 통신하기 때문에 완전히 인터넷이 격리된 상황에서 인터넷이 되도록 만들어주는 매우 유용한 하드웨어이다.
다만, 보안으로 인해 외부 통신이 격리된 상황에서 LTE Router를 통해 외부 통신을 한다는 것 자체는 상당히 위험한 생각이므로, 인터넷 케이블을 끌고 올 수 없는 상황에서 사용하길 바란다.
물론, LTE Router만 이용해서 외부에서 내부로 들어오는 것은 여러 보안 솔루션으로 인해 관측이 될 가능성이 있기 때문에 여전히 어렵고, LTE 특성상 고정 아이피를 가질 수도 없거니와 외부에서 접근이 불가능하다.
다만, LTE Router를 통해 문제가 외부에서 어떻게 인트라넷에 접근할까? 에서 외부에서 어떻게 LTE 서버에 접근 할 수 있을까? 로 새롭게 정의된다. 즉, 기술적으로 고정 아이피를 가질 수 없고, 인바운드가 접근이 불가능한 경우에 어떻게 하면 접근이 가능할까? 라는 문제로 귀결되므로 이제는 쉽게 문제 해결할 수 있다.
어떻게 하면 좋을까? 만약에 바로 떠오른 방법이 있다면 이 글을 읽고 있는 사람은 매우 똑똑하거나 이미 현업자일거라 생각한다. 맞다. 바로 VPN
을 통한다면 충분히 가상 사설망을 통해 서로 통신이 가능해진다. VPN
은 서로 다른 인터넷을 하나의 인터넷으로 구성하는 가상 “라우터” 역할을 수행한다. 그렇기 때문에, 어딘가에 VPN 서버를 구축하고, LTE Router를 VPN 서버에 연결한다면 VPN을 경유해서 LTE 라우터와 통신이 가능해진다.
뭔가 잘 이해가 되지 않는다면 위의 이미지를 통해 조금 더 쉽게 이해 할 수 있다. 사용자가 VPN에 접속하고, VPN을 경유하여 LTE Router를 거쳐 Intranet에 접속한다는 의미이다. 이렇게 수행한다면? 인트라넷에서는 LTE Router라는 외부 장치를 인지하지 못하면서 외부에서 내부로 접근이 가능하다.
물론, 항상 이야기하자면, 실제 시스템이나 회사에서 사용한다면 심각한 보안 이슈이기 때문에 적극적으로 추천하지 않으나, 이동식 개인 서버를 구축한다면 상당히 매력적인 하나의 방법론이 될 수 있다. LTE Router와 VPN을 기반으로 하는 서버 구축은 차후에 언급하도록 한다.
Reverse Port Foward on SSH
그 다음 방법으로는 적극적인 VPN과 외부 하드웨어 도입을 통해 접근하는 방법도 있겠지만, 해당 방법은 공식적인 접근 루트가 존재할 때, 접근하는 방법에 대해서 이야기한다.
화살표를 유심하게 보는 것을 추천한다. 사용자와 인트라넷에서 모두 접근이 가능한 SSH 서버가 존재할 때 사용이 가능하다. 다시 말해, SSH 서버가 인트라넷 서버에 접근은 불가능하면서, 인트라넷은 접속이 가능한 SSH 서버가 존재할 때 인트라넷에 접근하는 방법을 알려주고자 한다.
먼저 거두절미하고, 명령어 부터 설명하자면 전방 포워드와 달리 -L
, -R
를 이용한다. 그리고 의미도 완전히 달라지는데, SSH 서버의 포트 1234에 접근한다면, 접속자의 컴퓨터를 기준으로 127.0.0.1:22
로 바인딩하는 것이다.
1
$ ssh -R 1234:127.0.0.1:22 user@ip-address
즉, 만약에 intranet
에서 위의 명령어를 사용한다면, 외부 사용자가 SSH Server
로 접속한뒤 다시 ssh [email protected] -p 1234
로 인트라넷 컴퓨터에 ssh
접속이 가능하다는 멋진 결과를 볼 수 있다.
물론, ssh
기반이므로, SSH 서버
와 Intranet
이 계속해서 통신하므로 인트라넷에서 보안으로 문제 삼을 수 있으므로 조심하는 것이 중요하다.
More Eassily, SSH based VPN
만약에 이러한 내용들이 모두 어렵다! 그냥 쉽게 쓰고 싶다! 한다면 SSH 서버를 VPN으로 사용할 수 있다! 자세한 내용은 필자가 2023년 9월 17일에 작성한 SSH 기반 VPN 클라이언트 sshutle(SSH Over VPN)
내용을 확인하길 바란다.
요약하자면, 모든 데이터를 SSH Server
로 보내서 통신한다. 즉, 모든 포트와 모든 IP 대역폭을 전방, 역방향 포워딩을 수행한다는 의미이다. 그렇기 때문에 아무런 생각 없이, VPN 없이 인트라넷에 접속할 수 있다.
결론
인트라넷에 접속하기 위해, LTE Router를 통한 접속, 리버스 포트포워딩을 통한 접속, SSH 기반의 VPN, 로 3가지 방법을 설명하였다.
가장 합리적이고 인트라넷 보안에 걸리지 않는 가장 좋은 방법은 완전히 외부 독립적인 도구를 사용하는, LTE Router 방식이 안정적이다. 하지만 걸리거나 문제가 발생할 경우 가장 크게 질타를 받을 내용이기도 하다.
다만, 인트라넷이 아닌 개인 노트북에 서버를 구축하기 위해 VPN을 사용하거나, LTE 기반의 장비를 외부에서 접근하기 위한 방도로 생각한다면 LTE Router와 VPN 조합은 매우 좋은 아이디어라고 생각한다.
하지만, 가장 조심스럽고 합리적으로 생각한다면 리버스 포트포워딩을 통해 가능한 합법적인 통신 경로로 통신하는 것을 추천한다.