Ubuntu SSH 원격접속 : DHCP, 포트포워딩

강민우·2023년 4월 3일
0
post-thumbnail

0. 개요

프로젝트 및 과제를 수행하면서 Linux를 다룰 일이 많아졌다. 작년에는 NVIDIA Jetson nano를 다뤘고, 올해는 TurtleBot3을 활용한 ROS를 다뤘다.

항상 연구실에서 작업하면 좋겠지만 학교 수업의 이유로, 또는 개인적인 이유로 연구실에서 자리를 비울때도 종종 있고 이럴 때 누군가가 자료를 요청하면 난감한 상황이 꽤 많다.

굳이 자료 요청 상황이 아니라도 무선 네트워크 상에서 SSH로 원격 접속하여 작업하는 것이 더욱 편하기에, 새로운 Ubuntu 관련 기기들을 셋업할 때면 반드시 SSH부터 설정하여 무선 네트워크 환경에서 작업할 수 있도록 한다.

이를 하려면 공유기의 DHCP포트포워딩 기능을 필요로 하며, 이와 관련된 기능 설정을 포스팅한다.

해당 게시글의 네트워크 환경은 아래 사진에 기반한다.

1. Ubuntu 무선 네트워크 연결 및 IP 확인

먼저 Ubuntu 기기를 공유기의 와이파이에 연결하는 작업이 필요하다. 포트포워딩 및 DHCP 작업을 먼저 할 수도 있지만, 해당 기기의 mac주소를 직접 확인하는 등 번거롭기 때문에 무선 네트워크에 먼저 연결하는 작업을 거친다.

먼저 아래 명령어로 해당 파일을 일부 수정해야 한다.
$ sudo vi /etc/netplan/50-cloud-init.yaml

사진처럼 yaml 파일이 구성되어있는데, 초록색 글씨 부분을 WiFi의 SSID, Password로 바꾸고 저장해야 한다.

WiFi 정보를 입력했다면 기기를 재부팅한다. 부팅하는 과정에서 자동으로 해당 WiFi를 감지하고 연결한다.

이후 cmd 창에서 ifconfig 명령어를 통해 Ubuntu에 연결된 무선네트워크의 IP를 확인한다.
여기서 이 기기를 Ubuntu PC 1라고 가정하고 IP192.168.0.12라고 가정한다.

2. 공유기 원격접속 설정

해당 설정은 공유기의 관리자 페이지에서 작업한다. ipTIME 공유기를 기반으로 설명하며, 타 회사의 공유기는 설정이 다를 수 있다.

먼저 공유기의 관리자 페이지로 들어간다. 초기 관리자 페이지의 IP192.168.0.1이다.
또한 공유기의 IP는 아래 사진의 빨간색 네모박스에서 확인할 수 있다.
우리는 공유기의 IP를 123.456.0.1로 가정한다.

2-1) DHCP 설정

먼저 공유기에서 DHCP 설정이 필요하다. ipTIME 관리자 페이지 화면에서 관리도구 -> 고급 설정 -> 내부 네트워크 설정 에서 확인할 수 있다.

DHCP를 간단히 설명하면, 공유기는 내부 네트워크 ip 대역을 동적으로 유무선 네트워크 기기에 할당한다. 자동으로 ip가 할당되기 때문에 사용자는 유연하게 무선 네트워크를 사용 가능하지만, 만약 기기의 연결이 끊어졌다가 다시 연결하게 되면 DHCP 특성상 공유기가 다른 IP를 기기에 할당할 수 있다.
이렇게 되면 추후에 설정할 포트포워딩에 문제가 생기거나, 해당 기기에 원격 접속시 ip가 달라지기 때문에 매번 확인해야 하는 문제가 발생한다.

따라서 공유기에서 할당되는 IP를 기기에 고정하여 할당하기 위해서 DHCP 설정이 필요하다.

내부 네트워크 설정 탭에 가면 아래와 같은 창이 나타난다. 우리의 Ubuntu 기기의 ip는 192.168.0.12인 것을 확인했다.
해당 탭을 클릭하면 저렇게 주소가 빨간색 박스처럼 자동으로 입력하게 되고, 옆의 수동등록 버튼을 통해 주소를 등록할 수 있다.

이렇게 설정을 진행하면 해당 Ubuntu 기기는 앞으로 192.168.0.12에만 연결되게 된다.

2-2) 포트포워딩 설정

해당 설정은 공유기 관리페이지의 NAT/라우터 관리 -> 포트포워드 설정 에서 확인할 수 있다.

대부분의 공유기에서는 보안상의 이유로 외부 기기에서 해당 기기에 접근할 수 있는 포트를 제한하고 있다.
따라서 원격 접속 등을 위하여 해당 기기의 포트 일부분을 허용해야 하는데, 방법은 다음과 같다.

우리가 확인한 Ubuntu기기의 IP 주소는 192.168.0.12였다. 해당 주소를 아래 사진과 같이 입력해준다.
예시에서는 123 포트로 설정하였지만 Ubuntu 기기에서 123포트는 이미 다른 연결을 위해서 사용되고 있을 수 있어 미리 확인해야 한다.

외부에서 접근하고싶은 포트, 기기 내에서 접근될 포트를 설정한 후 적용을 눌러준다.

3) 원격 접속 예시

위 네트워크 환경을 바탕으로 원격 접속 예시를 몇가지 들어본다.

3-1) PC -> Ubuntu PC 1

PC는 윈도우 환경이라고 가정하고, SSH 원격 접속 프로그램은 Putty라고 가정한다.
물론 윈도우 환경과 Putty가 아니더라도, 다른 모든 환경에서 SSH 원격 접속은 비슷하게 이루어진다.

Ubuntu PC 1은 공유기(123.456.0.1)의 내부 네트워크(IP : 192.168.0.12, Port : 123)에 연결되어 있다.
PC->Ubuntu PC 1로 연결하려면 Putty환경에서 IP 123.456.0.1로 Port 123에 연결하면 된다.

3-2) Ubuntu PC 1 -> Ubuntu PC 2

우리의 네트워크 환경에서 연결된 IP와 Port는 아래와 같다.

공유기 - IP : 123.456.0.1
Ubuntu PC 1 - (IP : 192.168.0.12, Port : 123)
Ubuntu PC 2 - (IP : 192.168.0.13, Port : 456)

공유기의 같은 내부 네트워크로 연결되어 있기 때문에 두 가지 방법으로 연결할 수 있다.

  • 공유기 IP를 통한 원격 연결 -> IP : 123.456.0.1, Port : 456
  • 내부 네트워크 IP를 통한 원격 연결 -> IP : 192.168.0.123, Port : 456

리눅스 환경에서의 SSH 연결은 cmd 창에서 아래와 같은 명령어로 연결할 수 있다.
ssh -p <port> <username>@<ip_address>

profile
어제보다 성장한 오늘

0개의 댓글