티스토리 뷰
예전에 작성했던 문서인데, 어디 뒀는지 못찾다가 최근에 지인을 통해 입수하게 되어 올린 내용입니다. 몇몇 프로그램을 이용한 Jump Host 설정은 추후 업데이트 하겠습니다.
Bastion Host 란?
Bastion 의 사전적 의미는 “요새”, “보루” 라는 의미입니다. 요새에 대해서는 만화 “진격의 거인” 을 보면 그 원리가 쉽게 설명되어 있습니다. (일본은 싫은데 가장 효과적인 설명으로 떠오르는게 이거라…)
원형의 성벽이 있는데, 각 원마다 4개의 반원 형태의 돌출된 지역이 있습니다. 만화에서는 “구” 라고 부르는데, 이것이 요새의 일종입니다. 높은 성벽을 쌓고 방어력을 집중시킨 뒤, 통행은 요새를 통해서만 가능하도록 하는 것입니다. 방어하는 입장에선 성벽 전체를 방어할 필요없이 요새에 방어 병력을 집중시킬 수 있고, 통행자에 대한 감독도 쉽게 할 수 있는 장점이 있습니다. 실제 만화에서 “구” 는 아래와 같은 풍경입니다.
저 “구” 가 함락되더라도 “구” 내부만 뺏길 뿐, 성벽 안은 여전히 다시 방어를 할 수 있는 형태입니다.
이러한 원리를 이용해 Cloud 내 서버를 방화벽(Firewall) 내에 안전하게 위치시키고, Bastion Host 라고 불리우는 서버 한 대만 외부에서 접근이 가능하도록 설정을 할 수 있습니다. 이 때 Bastion Host 에는 SSH 로만 접속할 수 있도록 제약을 걸고 접속 IP 도 제약을 둘 수 있습니다. 또한 모든 연결에 대한 기록(Log)이 Bastion Host 에 남기 때문에 관리 편이성도 높아집니다. 중간 통로로만 이용되기 때문에 Bastion Host 의 사양도 그리 높지 않아도 됩니다. VPN 와 비슷한 기능을 제공하지만, VPN 보다 구축이 쉽다는 장점도 존재합니다. 예전에는 게이트웨어 서버, 관문 서버 등의 이름으로 telnet/ssh 로 접속 후 다시 다른 서버로 telnet/ssh 등으로 접속하는 방법으로 많이 사용하였고, 현재 다시 Bastion Host 라는 이름으로 많이 사용되고 있습니다.
SSH Tunneling, Jump Host
Bastion Host 을 이용해 각 Server 에 접근하는 방식은 보통 두 가지로 나뉘어집니다. SSH Tunneling 와 Jump Host(혹은 SSH Proxy, Proxy Host, Jump Server 등 다양합니다) 입니다.
SSH Tunneling
SSH Tunneling 은 Bastion Host 을 이용해 접속하려는 내부 Server 의 특정 Port 을 내 장비의 특정 Port 로 Forwarding 하려고 할 때 사용할 수 있습니다. 즉, SSH Client 을 이용해 통로를 만들고 다시 원하는 프로그램(SSH, TCP/IP, Web Browser 등)을 localhost 으로 접속해 사용할 수 있는 방법입니다.
이 방법을 이용하게 되면 특정 장비에 여러 port 을 forwarding 해놓고 사내에서 그 특정 장비에 요청을 하면 방화벽 내 서버와 통신을 할 수 있기 때문에 Cloud 내 서버에 Public IP 을 부여하거나 L4/L7 등으로 외부에 보여질 수 있도록 작업하지 않아도 접근할 수 있습니다.
Jump Host
Jump Host 은 한 번의 연결로 Cloud 내 서버에 바로 연결할 수 있게 하는 방법입니다. ssh 으로 Bastion Host 에 접속한 뒤, 다시 Server 연결을 위한 동작을 하는 번거로움을 없애고 사용하기 편리한 GUI Client 등을 사용할 수 있는 방법입니다. 다만, Jump Host 을 이용해 MySQL 등을 사용하기 위해서는 해당 프로그램이 Jump Host 기능을 제공해야 합니다(MySQL Workbench 의 경우 Standard TCP/IP with SSH 라는 이름으로 제공합니다). 이 외에도 SSH Client 에서 기능을 제공하는지 확인하면 편리하게 Cloud 내 Server 에 접속 가능합니다.
'Computer > System' 카테고리의 다른 글
메인보드 내장 블루투스가 인식되지 않는 문제가 발생 (1) | 2022.10.13 |
---|---|
우리집에 NAS 을 들여놓자! (4) RAID 란? (0) | 2020.02.12 |
우리집에 NAS 을 들여놓자! (3) 공유기 선택하기 (0) | 2020.02.09 |
우리집에 NAS 을 들여놓자! (2) 네트워크 배선 결정하기 (9) | 2020.02.07 |
우리집에 NAS 을 들여놓자! (1) 인터넷 업체 고르기 (0) | 2020.01.30 |
- Total
- Today
- Yesterday
- 클라우드플레어
- boot
- Nas
- git
- Phabricator
- java config
- 프로젝트 규모
- NoSQL
- KDE
- RestTemplate
- Spring MVC
- 페이징
- Redmine
- Spring
- docker
- 외장 WAS
- couchbase
- 도입기
- paging
- 워드프레스
- jooq
- proxmox
- manjaro
- 시니어 프로그래머
- OracleJDK
- Spring Boot
- SI
- 내장 WAS
- messages.properties
- 엘지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |