misc tip

Ubuntu server 외부 접속

shadefly 2025. 5. 8. 17:10

Motivation

외부에서 파일서버에 접근하여 필요한 파일을 다운로드 받거나 내 개인적인 일정등을 정리하는 노트를 관리할 필요가 있을 때가 종종 있다. 예를들어 논문파일이나 reference 소스 파일이 집 PC에 있는데 가져오고 싶을 때, 일정파일, 일기류 등의 개인 파일을 구글 드라이브등에 저장하고 싶지 않을 때 홈페이지나 블로그등을 외부 서버에 두고 싶지 않은 경우..

좀 더 솔직하게 말하면 회사에서는 gmail 을 감시하고 있고 모든 파일 서버 접속을 차단하고 있어 여간 불편한 것이 아니다.

자. 집에 서버?를 두고 필요한 파일을 죽죽 긁어 오자..

Evaluation

필요한 것이 무었을까 정리하면

  1. web server 설치.
  2. git, ssh 설치.
  3. port forwarding                           정도 될 것 같다.

1.2 번의 경우 sudo apt-get install 하면 바로 되는 것이고.. 3번을 설정하는데 약간의 애로 사항이 있었다.

본인의 집은 43년된 아파트로 1974년에 완공된 아파트로서 랜포트 이런거 방마다 없다. 또한 광랜?? 이런 호사스러운 IT 서비스를 받지 못한다.

구리 전화선 -> VDSL -> IPTIME -> WIFI 이런 순서대로 연결되어 있다.

위 그림이 대략 정확한 구성 되겠다..

Cable DSL 단에 SK등 서비스 제공자에게서 public ip address를 할당 받고 DSL에서 C-class private IP address를 할당하고 wireless router에서 또 사설 IP를 할당받아서 핸드폰도 붙이고 데스크 탑도 붙이고 노트북도 붙이고 해서 사용 중이다. 사설 주소는 class C 192.168.0.1 ~ 192.168.255.255 이다.

즉 내 노트북에서 ifconfig(ipconfig) 하면  할당된 IP address는  inet addr:192.168.0.18  Bcast:192.168.0.255 가 된다. 이 주소는 우리집에서만 유효한 사설 IP주소일 뿐이다. 따라서 인터넷 망에 접속하기 위해서는 반드시 유효한 public ip address가 필요하며 이는 DSL modem 에 할당된 public ip address를 사용하여 인터넷 망에 접속하게 된다. 이런 기술을 NAT 라고 하며 자세한 기술적 내용은 인터넷을 찾아보길 권한다.  요기

 

자 위의 구성에서 NAT port forwarding 을 하려면 두 개의 router를 모두 port forwarding 해주어야 한다.

일단 본인의 집은 SKT VDSL 모뎀과 IPTIME wifi 공유기 두 개를 사용하고 있다.

SKtv(MW-2010R) http://192.168.20.1     admin / skbiptv

IP time http://192.168.0.1

요 두개의 주소를 치면 장치를 제어할 수 있는 화면으로 들어간다.

VDSL을 먼저 보면

Public IP라는 것이 사업자에게서 할당 받은 내 public ip address이다. 이 주소는 네이버에 들어가서    “내 ip 주소 확인” 이라고 검색하면 동일하게 확인이 가능하다. (네이버에 악성 댓글달고 이러지마 다 추적대..) 위에 빨강색으로 줄친 192.168.20.1 주소가 장치의 주소이다.

모뎀 router에서 IPTIME에 할당한 사설 IP주소는 IPtime 제어판에 접속하면 알 수 있다.

빨간색으로 친 192.168.20.3 인 사설 IP address를 할당 받았다. IPtime은 192.168.0.2 ~ 192.168.0.254 까지의 사설 IP address를 장치(노트북, 핸드폰)에 할당하여 인터넷에 연결이 될 것이다.

실재 집에서 사용하고 있는 IP address는 아래 그림과 같다.

핸드폰, 크롬캐스트, 노트북, 데스크탑등이 연결되어 인터넷을 사용하고 있다.

즉 정리하면 IPtime 의 NAT와 VDSL modem NAT 두 개의 firewall?을 거쳐 하나의 public ip address를 통해 인터넷을 하고 있다.

자 이제 외부에서 집에 있는 PC에 접근을 하기위해 이 두개의 NAT에 모두 port forwarding 설정을 해야 한다. 집에 사용하는 PC는 ubuntu 14.04가 설치 되어 있고 사설 IP로 192.168.0.18 로 설정한 상태이다. 아래 그림 처럼 두 개 router에서 모두 설정을 한다.

public ip로 80 port 로 들어온 모든 패킷은 IPtime에 할당된 192.168.20.3 port 80 으로 포워딩. public ip로 22 port 로 들어온 모든 패킷은 IPtime에 할당된 192.168.20.3 port 22 으로 포워딩.

80 port는 web 22 port 는 ssh

192.168.20.3로 80 port 로 들어온 모든 패킷은 IPtime에 할당된 192.168.0.18 port 80 으로 포워딩.192.168.20.3로 22 port 로 들어온 모든 패킷은 IPtime에 할당된 192.168.0.18 port 22 으로 포워딩.

80 port는 web 22 port 는 ssh

이 두 NAT forwarding 설정으로 public ip address인221.142.47.*** port 22 80로 들어오는 패킷은 192.168.0.18로 전달되게 된다.

자 이제 외부에서 접속을 해보자!

웹서버.

ssh 접속..

 

Conclusion

ubuntu pc에서 wifi static ip address설정 후 진행해야 함.

노트북을 항상 켜놓는 것은 좀 그러하니.. 시간이 나면 놀고 있는 raspberrypi를 NAS로 만들어 사용하는 것도 괜찮을 것 같다.

웹 서버는 추후 업데이트 하면서 활용도를 높여 봐야 할 것으로 보인다. (HTTP는 1997년 이후에 관심이 없어서 아는게 없다.. )

git 사용시 보안을 강화하는 방법을 좀 알아 봐야 겠다.. 이건 내일 해보자.

잘 된다. ^^ 간만에 뿌듯하다.