Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
배스천 호스트(Bastion Host)
Bastion은 중세시대 성벽에서 방어를 위해 밖으로 도출된 부분을 의미한다.
배스천 호스트는 외부에서 내부 네트워크에 접근할 수 있는 유일한 접근점이다. 보안성이 높은 인프라와 외부 인터넷을 연결하는 중계 서버로 작동하며, 모든 인바운드 트래픽은 배스천 호스트를 통과해야 내부 네트워크로 들어갈 수 있다. 따라서 인증, 인가의 기능을 수행한다고 볼 수 있다.
일반적으로 배스천 호스트는 공인 IP 주소로 프로비저닝되고 SSH를 통해 액세스 될 수 있는 인스턴스이다.
따라서 AWS에서의 자원들은 private subnet에 위치하고, 유일한 접근점인 bastion host만이 public subnet에서 트래픽을 받는다.
우리는 내부망에 존재하는 Ubunutu server의 Maria DB를 배스천 호스트(ubuntu desktop)를 통해서만 접근가능 하도록 만들어보자.
환경 구성
Ubuntu server = DB server = 192.168.10.3
ubuntu desktop = Bastion Host = 192.168.10.4
ubuntu desktop에서 HeidlSQL 설치/사용해보기
NAT로 인터넷에 접속하면, APP store에서 heidiSQL를 설치할 수 있다.
배스천 구성 세팅
ubuntu desktop -> Ubuntu server 터널링
ubuntu desktop에서 Ubuntu server로 SSH 터널링을 해보자.
터널링 명령어
ssh -L 12345:<A_server_ip>:3306 <user>@<B_server_ip >
-L이 로컬 네트워크에서 터널링을 진행하는 옵션이다.
해석하면, localhost:12345로 들어오는 요청들을 user@B_server_ip으로 접속한 뒤 A_server_ip:8080으로 보내라는 의미이다.
이제 터널링 테스트를 해보자.
Ubuntu-desk에서 Ubuntu-server로 터널링 세팅
이제 Ubuntu-desk에서 Ubuntu-server(DB 서버)로 터널링을 설정해 주자.
ssh -L 30360:192.168.10.3:3306 jin@192.168.10.3
Ubuntu-desk의 30360 포트의 요청을 jin@192.168.10.3(DB 서버)로 접속한 후, 192.168.10.3:3306 로 보내라는 의미이다. 192.168.10.3는 DB 서버 자신을 의미하므로 Ubuntu-desk의 30360 포트의 트래픽들이 DB 서버의 3306 포트(MariaDB port)로 중계된다.
Ssh 연결을 끊으면 터널링도 끊기니 주의하자.
Real PC에서 Bastion host로 접근
Real PC에서는 Heidi의 SSH tunnel 기능을 사용해서,
배스천 호스트에 ssh로 접속하고, 요청이 mariaDB로 중계되도록 만들자.
Ssh 터널 옵션은 배스천 호스트로 향하는 ssh 접속 세팅이다.
따라서 호스트 ip는 배스천 호스트(ubuntu-desktop)로 지정하고, SSH의 port인 22번으로 설정한다.
SSH 실행파일은 지원 여부에 따라 다르기 때문에, plink를 사용한다.
로그인할 사용자와 암호도 입력해 주자.
로컬 포트는 SSH 연결에 사용할 Real Pc의 port이다.
설정 옵션은 SSH로 연결된 Bastion host에서 진행할 DB 접속 세팅이다.
Bastion host의 30360 포트는 DB server의 3306과 터널링이 되어있기 때문에,
Local host(127.0.0.1)의 30360으로 접속하면 DB server의 MariaDB와 연결된다.
패킷도 정상적으로 암호화되어 있다.
'개발 > 네트워크 & Ubuntu' 카테고리의 다른 글
[On-premise] 내부망에서 Ubuntu server로 DNS와 DHCP 동작 시키기 (1) | 2024.02.02 |
---|---|
[On-premise] Ubuntu server로 구성하는 Web 3Tier 아키텍처 (0) | 2024.02.02 |
Ubuntu server MariaDB 설치 및 내외부접속 (1) | 2024.01.31 |
[GNS3] DHCP 서버를 ip helper-address로 다른 네트워크에서 사용하기 (1) | 2024.01.25 |
Router ACL 적용해보기 (2) | 2024.01.25 |