시대적 고정 IP가 없는 자사 서버 공개 방법 고려

5774 단어 SSHtech
내용은 자기가 sish를 초대해 본다는 내용...
로컬 개발 환경과 자기 집 서버를 외부에 공개하고 싶을 때 어떻게 할까요?
나는 이전에 고정 IP가 부여된 VPS를 빌려 VPN을 붙이고 싶다.
하지만 최근엔 ngrok 등으로 대표되는 일을 고려하지 않더라도 도구를 넣으면 쉽게 대외적으로 공개할 수 있는 도구가 나왔다
하지만 개발 도중 통신을 통해 제3자에게 약간의 저촉이 있을 수 있다.
또 대용량의 물건을 사용하려면 속도 제한이 있어 번거롭다.
ngrok 같은 걸 스스로 활용할 수 있다면...
공구를 넣지 않고도 쉽게 공개할 수 있다면...
이런 소원을 이룰 수 있는 게 이번에 소개한 sish입니다.
https://github.com/antoniomika/sish
ssh 터널을 사용하는 터널 도구입니다.
(사상적으로 접근serveo하류로 삼다
PC → (SSH Tuunel) → VPS(sish) → global
이런 느낌이에요.
sish 이외에도 최근에는caddy를 사용할 수 있지만 그곳에서는 사용하는 사용자 수에 따라 매번 설정을 변경해야 하며 이후에도 웹 서버를 만들 필요가 없다.
sish는 특별히 신경 쓰지 않아요. 고객은 ssh만 있으면 돼요. 아주 편해요.
sish는 직접 사용할 수 있지만 시도해 본 적이 없어서 썼어요.

사전 준비: DNS 서버 선택


sish를 사용하기 전에 DNS 서버를 선택하는 것이 가장 중요합니다.
sish 인증서 제작은 다른 사람이 만든 DNS 인증 기반letsencrypt 인증서 생성 소프트웨어를 사용합니다
DNS 기록을 다시 쓰기 전에 DNS 인증이 자동으로 진행될 때까지 자동으로 진행되는 대단한 대체품이지만 기록을 자동으로 다시 쓰기 위해서는 API를 제공하는 DNS 서비스를 이용해야 한다.
해당하는 DNS 서비스는 다음과 같습니다.
https://dnsrobocert.readthedocs.io/en/latest/providers_options.html
주요 구름도 대응하지만 일본의 벚꽃과 코하도 기쁨에 대응하고 있다.
개인용도라면 API를 무료로 두드리고 국내 서비스로 범위를 좁혀 ConoHa를 이용하는 게 좋을 것 같다.
ConoHa의 API는 token 기본과 id/password 기본 방식이 있지만 token 기본은 하루밖에 없어요. id/password를 사용하지 않으면 중장기적으로 활용할 때 귀찮아요.

사전 준비:sish 설정


일단 창고를 clone 해주세요.
그런 다음 설정 파일 덮어쓰기

DNS 설정


사용하는 DNS 서버에 따라 설정하십시오.
deploy/le-config.yml
acme:
  email_account: EMAIL
certificates:
- autorestart:
  - containers:
    - sish
  domains:
  - 'test.example.com'
  - '*.test.example.com'
  name: test.example.com
  profile: conoha
profiles:
- name: conoha
  provider: conoha
  sleep_time: 60
  sleep_time: 120
  delegated_subdomain: 'test.example.com'
  provider_options:
    auth_username: 'CONOHA_API_USER'
    auth_password: 'CONOHA_API_PASS'
    auth_tenant_id: 'CONOHA_API_TENANT_ID'

사용자 설정


sish를 사용하는 사용자는 deploy/pubkeys/에 의해 관리됩니다.
파일 이름 사용자 이름
조금 거칠지만 GiitHub 공개 키로sish 사용자를 생성한 ansible playbook이 공개되었으니 참고하세요
https://github.com/306-san/sish-user-playbook-sample/

인증서 설정


독립역에서sish를 활용해야 돼요.
인증서의 균형 때문에
디렉토리에 기호 링크를 붙여넣어야 합니다.
ln -s /etc/letsencrypt/live/<your domain>/fullchain.pem deploy/ssl/<your domain>.crt
ln -s /etc/letsencrypt/live/<your domain>/privkey.pem deploy/ssl/<your domain>.key
한순간에 뭘 하고 있는지 헷갈리겠지만 sish 컨테이너 안에 path에 상징적인 링크가 붙어있는 걸 생각해 보세요.

시용하다


docker-compose -f deploy/docker-compose.yml up
에서 일어나서 증서가 완성되기를 기다리다
인증서가 완성되면 준비가 완료됩니다
그리고 클라이언트 쪽에서
ssh -p 2222 -R domain:80:localhost:3000 [email protected]
전화하면
방문domain.test.example.com하면localhost:3000방문
수고하셨습니다.

좋은 웹페이지 즐겨찾기