본문 바로가기

Cloud/Oracle Cloud Infrastructure

11. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - Bastion 서버 (웹서버 연결)

2019/01/15 - [Cloud/Oracle Cloud Infrastructure] - 10. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - Bastion 서버 (인스턴스)

2단계. Bastion 서버 구성

Bastion 서버와 웹서버의 연결

웹서버와 Bation서버의 시큐리티 리스트 설정과 인스턴스 생성까지 했다. 이제 인스턴스로 SSH연결을 해보자.

먼저 Bastion 서버로 SSH 연결이다. Bastion 서버는 퍼블릭 서브넷에 만들었기 때문에 퍼블릭 IP 할당되어 있다. 퍼블릭 IP SSH 연결을 한다. Bation 서버는 인터넷 게이트웨이를 향하는 라우트 테이블도 앞서 설정했고, 22 포트도 시큐리티 리스트에서 오픈했기 때문에 SSH 연결에 문제는 없다.

Bation 서버의 퍼블릭 IP 인스턴스 상세 화면의 Primary VNIC 정보에서 확인할 있다.


아래는 Bastion 서버로 로컬 PC에서 GibBash SSH 연결이다.

youjung@YOUJUNG-KR MINGW64 ~

$ ssh -i C:\\Users\\youjung\\.ssh\\id_rsa opc@129.213.62.228

The authenticity of host '129.213.62.228 (129.213.62.228)' can't be established.

ECDSA key fingerprint is SHA256:cB6AvnRtVIpFkkWlfyw7Gi/NL/o3Ii8uCHqfsHlvPwg.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '129.213.62.228' (ECDSA) to the list of known hosts.

[opc@bastion ~]$ hostname

bastion

 

Bation 서버와는 다르게, 웹서버#1,2 인스턴스는 프라이빗 서브넷에 만들어졌기 때문에 퍼블릭 IP 없으므로 직접 웹서버#1,2 SSH 연결할 없다. 하지만 Bastion 서버와 웹서버 간의 SSH 연결 22 포트를 열었기 때문에 Bastion 서버를 통해서 웹서버#1,2 SSH 연결을 있다.

웹서버#1,2 SSH 연결을 할때 SSH 프라이빗 키를 Bastion 서버 로컬에 저장하고, Bastion 서버에서 웹서버로 접속하는 방법이 있으나, 이는 보안상 권장되는 방법이 아니다. 권장되는 방법은 “ProxyCommand” 옵션을 사용해서 SSH 프라이빗 키는 로컬 PC 그대로 두고 이를 통해 웹서버에 접속하는 방식이다. 웹서버로 향하는 일종을 터널을 만드는 옵션이다. 아래와 같은 문법을 사용한다. 웹서버#1,2 연결을 테스트해 본다.

ssh -t -o ProxyCommand='ssh -i [프라이빗 SSH ] opc@[Bastion 서버 퍼블릭 IP] -W %h:%p %r' -i [프라이빗 SSH ] opc@[웹서버 프라이빗 IP]

youjung@YOUJUNG-KR MINGW64 ~

$ ssh -t -o ProxyCommand='ssh -i C:\\Users\\youjung\\.ssh\\id_rsa opc@129.213.62.228 -W %h:%p %r' -i C:\\Users\\youjung\\.ssh\\id_rsa opc@10.0.3.2

The authenticity of host '10.0.3.2 (<no hostip for proxy command>)' can't be established.

ECDSA key fingerprint is SHA256:x5lmjTOXSqGvdvj22U3Pl8vdQSPZWAznqpkSlLCc65o.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.0.3.2' (ECDSA) to the list of known hosts.

[opc@web1 ~]$ hostname

web1

[opc@web1 ~]$ exit

logout

Connection to 10.0.3.2 closed.

 

youjung@YOUJUNG-KR MINGW64 ~

$ ssh -t -o ProxyCommand='ssh -i C:\\Users\\youjung\\.ssh\\id_rsa opc@129.213.62.228 -W %h:%p %r' -i C:\\Users\\youjung\\.ssh\\id_rsa opc@10.0.4.2

The authenticity of host '10.0.4.2 (<no hostip for proxy command>)' can't be established.

ECDSA key fingerprint is SHA256:Gk46m9MtJwG5c8+fDIQVYGZRmynAnvL8CbJtLpzicxI.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.0.4.2' (ECDSA) to the list of known hosts.

[opc@web2 ~]$ hostname

web2

 

PuTTY 사용하는 경우에는 PuTTY SSH 인증 에이전트인 “Pageant” 앞서 OpenSSH 포맷에서 PuTTY 프라이빗 키로 변환한 키를 등록한 다음, PuTTY에서 SSH 연결을 한다.

설치된 PuTTY 패키지에서 Pageant 열어 SSH 프라이빗 “id_rsa.ppk” “Add Key” 클릭하여 등록한다.


Bastion 서버로 SSH 연결을 한다. 이때 PuTTY 설정에서 [Connection] > [SSH] > [Auth]에서 “Allow agent forwarding” 체크하고, SSH 프라이빗 키를 여기에서도 등록한 다음 세션을 연다.

 

Bastion 서버로 접속한 다음, 웹서버#1,2 SSH 연결을 확인한다.

login as: opc

Authenticating with public key "imported-openssh-key" from agent

Last login: Wed Jan  2 01:11:08 2019 from 156.151.8.1

[opc@bastion ~]$ ssh opc@10.0.3.2

The authenticity of host '10.0.3.2 (10.0.3.2)' can't be established.

ECDSA key fingerprint is SHA256:x5lmjTOXSqGvdvj22U3Pl8vdQSPZWAznqpkSlLCc65o.

ECDSA key fingerprint is MD5:6e:e4:4a:e3:a6:c7:d7:38:bd:22:2a:70:26:ce:5e:fc.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.0.3.2' (ECDSA) to the list of known hosts.

Last login: Wed Jan  2 07:48:16 2019 from bastion.subnetbs.dbappvcn.oraclevcn.com

[opc@web1 ~]$ hostname

web1

[opc@web1 ~]$ exit

logout

Connection to 10.0.3.2 closed.

 

[opc@bastion ~]$ ssh opc@10.0.4.2

The authenticity of host '10.0.4.2 (10.0.4.2)' can't be established.

ECDSA key fingerprint is SHA256:Gk46m9MtJwG5c8+fDIQVYGZRmynAnvL8CbJtLpzicxI.

ECDSA key fingerprint is MD5:e6:b2:06:67:85:40:d1:b0:d4:4f:8c:23:2b:1b:89:a4.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.0.4.2' (ECDSA) to the list of known hosts.

Last login: Wed Jan  2 07:47:37 2019 from bastion.subnetbs.dbappvcn.oraclevcn.com

[opc@web2 ~]$ hostname

web2


작성자: 정영균


OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 시리즈

1. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Intro

2. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN

3. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN

4. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (인터넷게이트웨이)

5. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (라우트테이블)

6. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (시큐리티리스트)

7. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (서브넷)

8. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버

9. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (시큐리티 리스트)

10. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (인스턴스)

11. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (웹서버 연결)

12. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (NAT 설정)

13. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버

14. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (rsync)

15. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정)

16. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정파일시스템)

17. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정파일시스템마운트)

18. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서

19. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (아파치웹서버)

20. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (로드밸런서생성)

21. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (백엔드서버)

22. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (리스너)

23. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스

24. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템)

25. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (데이터베이스구성)

26. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)

27. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)

28. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (백업)

29. OCI 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 – 데이터베이스 (DR 구성)