1. Ubuntu SSH 포트 개방
SSH 포트 개방을 위해서는 2가지 작업을 진행해야 합니다. 첫 번째는 ubuntu iptables에 22번 포트를 개방해야 하고 두 번째는 virtualbox의 포트를 포워드 해야 합니다. 만약 외부 ip를 사용해서 ubuntu를 설치 했다면 첫 번째 작업만 해도 무방합니다.
만약 호스트 PC가 공유기에 물려 있다면 DMZ 설정 및 포트 포워드로 22번 포트를 호스트 PC에 연결해야 외부에서 접속이 가능합니다.
1) 기본 환경 구성
지금부터 시작되는 내용은 다음과 같은 환경을 가정하고 진행합니다.
- Virtual로 ubuntu가 설치됨
- 호스트 PC는 내부 공유기로부터 IP를 할당
- Virtual IP: 10.0.2.15
2) Iptables SSH 포트 허용
SSH 포트는 22을 사용합니다. Iptables에서 tcp 22번 포트를 사용하도록 열어줍니다.
- -A : 체인에 추가
- -p tcp : 프로토콜 tcp
- -m tcp : tcp 일치, 확장일치
- –dport : 포트번호
- — j : 대상 점프
- ACCEPT : 허용
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables에 체인이 등록되었는지 규칙을 출력합니다. 추가된 규칙을 저장하고 Reload 합니다.
sudo iptables -S
sudo netfilter-persistent save
sudo netfilter-persistent reload
![](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-106-1024x675.png)
ubuntu의 IP를 확인하겠습니다. ip addr명령으로 IP를 확인하면 다음과 같이 출력되며 ubuntu의 IP가 10.0.2.15인 것으로 확인됩니다.
ip addr
![](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-100-1024x675.png)
2. VirtualBox의 SSH 포트 포워딩
ubuntu의 SSH 포트 개방으로 Ubuntu의 연결은 허용되었지만 아직 호스트 컴퓨터에서는 접속을 할 수 없습니다. 호스트 컴퓨터에서 MobaXterm으로 ubuntu에 접속하기 위해서는 VirtualBox에서 포트를 포워딩 해야 합니다.
VirtualBox에서는 가상머신을 종료하지 않고 설정에서 포트 포위딩을 할 수 있습니다. 가상PC 설정의 네트워크를 클릭합니다.
![virtualbox ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-99.png)
![virtualbox ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-107.png)
네트워크 Advanced를 확장하여 포트 포워팅 버튼을 클릭합니다.
![virtualbox ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-98.png)
포트 포워팅 규칙을 추가하기 위해 오른쪽 상단의 플러스 아이콘을 클릭합니다. 이름[SSH], 프로토콜[TCP], 호스트 IP(로컬호스트로 접속하기 때문에 비워두어도 됩니다.)[ ], 호스트 포트[22], 게스트 IP(ubuntu IP는 ip addr 명령으로 확인할 수 있습니다.)[10.0.2.15], 게스트 포트[22]를 입력합니다.
![virtualbox ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-101.png)
3. MobaXterm으로 Ubuntu 터미널 접속
MobaXterm을 실행합니다. 아직은 등록된 Session이 없기 때문에 새로운 Session을 등록하기 위해 왼쪽 상단의 Session을 클릭합니다.
![mobaxterm ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-102-1024x619.png)
SSH를 사용해서 ubuntu에 접속하기 위해서 왼쪽 상단의 SSH를 클릭합니다.
![mobaxterm ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-104.png)
Remnote Host는 ubuntu IP가 아닌 호스트 PC의 IP를 의미합니다. Host IP는 cmd명령으로 호스트 PC의 터미널을 실행하고 ipconfig /all 명령으로 확인할 수 있습니다. 여기서는 localhost IP로 접속하기 때문에 127.0.0.1을 입력하겠습니다. OK 버튼을 클릭해서 창을 닫습니다.
![mobaxterm ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-103.png)
MobaXterm의 왼쪽 user session 부분에 127.0.0.1 세션이 추가된 것을 확인할 수 있습니다. 해당 세션을 더블 클릭해서 로그인 터미널이 나타나면 포트가 정상적으로 개방된 것입니다.
![mobaxterm ssh](https://www.thinknote.co.kr/wp-content/uploads/2023/01/image-105-1024x619.png)