본문 바로가기
my_lesson/_Linux

Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[7] : 외부 접속(ssh, port forward)

by boolean 2015. 12. 23.
728x90

Linux - Ubuntu 서버를 설치하고 세팅해야 할것들[5] : 외부 접속b (ssh, port forward)


client 에서 ssh server로 접속하기


설치된 패키지 목록을 확인하려면 

$ dpkg -l 

 너무 많은 목록이 나오기 때문에 ssh 관련 목록만 확인해 보자. 

$ dpkg -l |grep ssh 

 ii openssh-client 1:5.8p1-7ubuntu1 secure shell (SSH) client, for secure access to remote machines 

 ii ssh-import-id 2.5-0ubuntu2 securely retrieve an SSH public key and install it locally 

 설치되어 있지 않기 때문에.. 설치하러 고고~ 

$ sudo apt-get install openssh-server 

 패키지가 다운로드 되어 자동으로 설치되고 데몬이 동작한다. 

>>> 설치 과정에 오류가 있다면 여길 참고 <<< 

 데몬이 잘 동작하는지 확인하자...ssh 기본 포트는 22이다. 

$ netstat -ntl 

 Active Internet connections (only servers) 

Proto Recv-Q Send-Q Local Address  Foreign Address  State 

 tcp      0        0       0.0.0.0:22        0.0.0.                LISTEN 

 tcp6    0         0       :::22              :::*                    LISTEN 


리눅스 상에서 ssh 키를 생성하고 설정하는 방법입니다.


RSA 키 생성

# ssh-keygen -t rsa

위의 명령어를 이용해서 rsa 방식의 개인키와 공개키를 생성합니다. 명령어를 실행하면 아래와 같이 키를 저장할 디렉토리와 파일명을 입력하라고 합니다. 보통 디폴트로 되어 있는 위치로 생성하면 됩니다. 현재 계정 아래의 .ssh 디렉토리 아래에 생성이 됩니다.


Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

다음은 암호를 입력하고 나옵니다. 만약 퍼블릭 키를 이용해서 리모트로 암호 없이 바로 접속할려면 암호를 입력하지 않고 엔터를 치면 됩니다.


Enter passphrase (empty for no passphrase):

Enter same passphrase again:


$ cat /home/user/.ssh/my_ssh_key.pub

$ cat >> ~/.ssh/authorized_keys

(이 상태에서 복사한 공개키를 붙여 넣고 엔터를 눌러 줄을 바꾼 후 Ctrl+D를 누르면 저장된다.)

비밀키는 다운받아서 자신이 보관하여 이용한다.

 출처: http://neoguru.tistory.com/57 [memory note]

외부IP에서 내 컴퓨터(내부 IP)로 접속하기


공유기 설정페이지 [ ipTIME의 경우는 192.168.0.1]로 접속

초기 ID : admin
초기PW: admin
만일 아이디와 비밀번호를 잊어 먹었다면 리셋을 한다.
다시 세팅하고 이제는 잊어 먹으면 안되겠다.!!!
로그인을 하였으면 직접적으로 외부에서 접속 할 수 있게 설정 해보겠다.
고급설정 > NAT/라우터 관리 > 포트포워드 또는 고급설정 > NAT/라우터 관리 > DMZ / Twin IP 설정 으로 이동

참고로 유동 ip를 고정ip처럼 쓰시고 싶으신 분들이 계시는데요.
iptime에서 제공해주는 ddns서비스라는 것이 있읍니다만 개인적으로 비추천이구요 .
학습하시려는 거라면 공유기를 끄지 않으면 고정 ip처럼 쓸 수 있다는 팁을 알려 드립니다.
상용서비스 하시는 거라면 웹 호스팅 업체를 알아보시거나 Dynamic DNS 서비스 업체를 알아보시는 것을 추천해 드립니다.

지금 여기서 외부에서 접속할 수 있는 방법만 보면 총 세가지 입니다.

1. 포트포워드
2. DMZ
3. Twin IP

포트포워드



외부에서 접속시 공인IP는 하나이기 때문에 각각의 기기로 연결하기 위해서는 꼼수가 필요합니다. 바로 공인 IP의 포트를 각각 개방하는 방법입니다.
예를 들어 현재 공유기에 연결되어 있는 기기가 4대라고 합니다.
첫번째는 데스크탑, 두번째는 노트북, 세번째는 서버, 네번째는 게이밍 기기
현재 할당된 공인 IP주소는 123.123.456.456이라고 예를 들어보자면, 외부에서 각각의 기기에 모두 연결을 하고 싶습니다. 원래대로라면 공인 IP주소인 123.123.456.456을 입력해도 접속되어지는 것은 아무것도 없습니다.

그래서 공인 IP주소로 단순히 접속하는 것이 아니라 길을 제시해주어 각각의 컴퓨터로 찾아가게끔 하는 방법입니다.
공인 IP주소 123.123.456.456 뒤에 :10을 붙이면 데스크탑으로 접속하도록 :20를 붙이면 노트북으로 접속하도록 :30을 붙이면 서버로 가도록 하는 방법입니다.
즉,
123.123.456.456:10 이면 데스크탑으로
123.123.456.456:20 이면 노트북으로
123.123.456.456:30 이면 서버로 접속하도록 설정하는 방법입니다.

포트 번호의 경우 대표적인 프리셋을 제공하는데, 실질적으로 웹서버와 FTP서버 메일서버를 모두 따로 두시고 따로따로 관리 할것이 아니라면 프리셋은 그닥 쓸모없는 기능입니다.
기억하기 쉽고 알기 쉬운 포트 번호를 설정을 해두는 것이 목적이 아니라, 단순히 접속 기기를 분산하기 위한 것이기 때문에 대부분 사용자 정의로 사용을 하시게 될겁니다.

DMZ



위에 포트포워딩의 확장판이라고 보시면 됩니다. 하나의 기기를 지정하여 기본적으로 모든 포트를 지정한 기기로 연결하게 합니다.(지정된 기기의 설정기준은 MAC Address입니다.)
위의 예에서 이어가보면서버를 지정된 기기로 설정을 합니다. 즉 서버의 포트 주소였던 123.123.456.456:30은 의미가 없어지게 됩니다. 왜냐하면 위에 포트포워드에서 설정한 123.123.456.456:10(데스크탑)과 123.123.456.456:20(노트북) 을 제외하고는 아무 포트를 입력해도 서버로 접속하게 됩니다.
123.123.456.456:45을 입력하든, 123.123.456.456:13을 입력하든, 123.123.456.456:1463을 입력하든 간에 모두 서버로 접속을 하게 됩니다.
이것은 다시말하면 가장 많이 사용하게 되는 웹포트인 :80포트도 개방하여 일반적인 웹브라우저에서 접속이 가능하다는 이야기 입니다.
한마디로, 포트포워딩으로 조건 걸어놓은 포트를 제외하고 나머지 모든 포트는 서버로 연결되게끔 합니다.

Twin IP



이 기능은 외부아이피를 돌리는 기능을 합니다. 사실 위의 DMZ와 거의 같은 기능이기는 하지만 DMZ와는 약간 다른 부분이 있습니다.
공인 IP주소는 공유기에 직접 연결이 되어있지만 공유기 자체에서 공인 IP로 무언가를 하는 일은 상당히 적습니다. 그래서 공유기 외의 다른 기기를 마치 랜선을 직접 연결하듯이 공인 IP를 할당받게 됩니다.
예를 들어 설명하면, 서버 컴퓨터의 맥 어드레스를 Twin IP의 지정 기기로 등록을 해놓으면 앞으로 123.123.456.456의 주소는 서버의 주소가 됩니다. (물론 실제로는 공유기가 먼저 받아서 전달을 해주는 것이지요.)
전화번호로 따지면 대표번호로 생각하시면 됩니다.
여러개의 전화번호가 있지만 업체를 대표하는 회사 전화번호는 하나로 통일 하듯이 외부에서 접속시 접속할 기기들은 많지만 그 중 대표 기기를 정해 공인 IP의 권한을 모두 주는 방식입니다.


댓글