ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] bastion host을 통해 private 서버 접근하기 - linux
    클라우드/AWS 2023. 4. 22. 23:24

    ssh (secure shell)

    - 원격 터미널 접속을 위한 보안 프로토콜

    - ssh client(내 서버)가 ssh server(원격 서버)과 데이터 통신을 하기 위해선  암호화된 방식인 ssh 프로토콜을 사용하게 됨!

    - mac, linux는 ssh client가 기본적으로 설치되어 있지만, window같은 경우는 ssh client가 없기 때문에 직접 설치를 해줘야함 -> 그래서 putty를 설치함

     

    ssh 터널링(port forwarding)

    - 22번 포트를 이용하여 서버와 클라이언트에 일종의 터널을 만들고 통신을 함

    - 22번 포트를 이용하여 임의의 포트번호로 통신이 가능하게 하는 것

     

    이제 bastion host를 통해서 private한 서버에 접근해보자

    private server는 linux로 구성을 했고, window로도 다뤄볼 예정이다

     

    1. vpc 구성

    - public subnet -> bastion host server를 구성하고, private subnet->  target server를 구성

    - bastion host는 public subnet1, target server는 private subnet1에 위치

    2. bastion host 생성(linux)

    - public subnet에 위치한 서버

    - bastion host는 ssh server 역할을 하기 때문에 로컬 pc대신 안전하게 타겟 서버에 연결되도록 도와줌

    - bastion host의 키페어 생성 : bastionhostkey

    - ssh 접속시 사용되는 port인 22번만 내 ip주소에 한정해서 열어주기

     

    3. target server 생성(linux)

    - private subnet에 위치한 private한 서버

    - target server의 키페어 생성 : targetKey

    - target server는 외부로 노출되면 안되기 때문에 오직 bastionhost의 보안그룹에 대해서만 인바운드 규칙을 설정해주어야함 

    => 타겟서버는 bastion host 서버를 통해서만 데이터 통신이 가능함

     

    4. bastion host 서버 실행

    - ppk 키 업로드

    - hostname, port 설정 -> 22번으로 열어줘야함

    - 터널링 설정 : localhost에서 타켓서버로 접속할 수 있게 터널링을 설정하는것

    - source port : clientPC에서 터널연결에 사용할 임의의 포트번호, 즉 로컬에서 접속할 포트를 설정해두는것

    - destination port : localhost port로 접근하면 타켓서버로 이동시켜줌, 즉 타켓 서버의 ip와 port번호를 입력

    5. localhost 서버 실행(client pc)

    - 타겟 서버의 ppk 키 등록(내 pc가 가지고 있어야함)

    - 내 pc의 localhost와 로컬에서 접속할 포트번호 지정(위에 bastion host에서 터널링 설정에서 사용했던 포트번호랑 일치해야 통신이 완료됨)

    6. bastion host를 미리 실행한 상태에서 localhost에서 타켓 서버에 접속하자

    - 오른쪽창의 ip를 보면 타켓서버의 private ip주소로 잘 접근한것을 확인할 수 있음

    - 만약 bastion host가 끊기면 타겟서버도 끊김

     

     

     

    bastionhost 관리자 모드 실행

    - bastionhost에서 타겟서버로 접속을 하려고 시도하면 타겟서버에 대한 키(public key)가 없기 때문에 접속불가

    -> pageant를 이용해서 bastion host에서 타겟서버에 접근할 수 있음

    - bastion host 키 설정시, allow forwading 체크하기

    - pageant를 이용해서 관리자는 ssh 서버에 접속할 수 있음

     

    - pageant에 타겟서버의 키를 등록하고 다시 bastion host를 실행 -> 접근됨

     

     

     

     

     

    + mac 버전

    - mac은 이미 ssh client가 설치되어 있기 때문에 기본 터미널에서 실행해도 됨

    chmod 400 pem파일명

    - window와 똑같음

    - bastion host를 실행하면서 터널링을 구성해 줌

    - 소스port(localhost port):타겟서버ip:목적지port 사용자id@bastion서버ip

    ssh -i pem파일경로/pem파일명 -L 소스Port:DNS경로:목적지Port 사용자id@Bastion서버ip

    http://devstory.ibksplatform.com/2017/08/aws-bastion-host-ssh.html

     

    [AWS] Bastion Host 를 활용한 SSH 접근통제 #1

    IBK시스템 플랫폼 사업팀 블로그입니다. 플랫폼 사업을 진행하면서 경험한 생생한 IT기술을 공유하고자 합니다.

    devstory.ibksplatform.com

     

Designed by Tistory.