インターネット越しにラズパイにアクセスできるようにする(まずは自分のPCから)

スポンサーリンク
tech系(python)

はじめに

今回は、ラズパイに対してインターネットを介してアクセスできるようにします。

また、IP制限をして、自分のPCからだけアクセスできるようにして、公開できるところまで仕上げてから、IP制限を外してインターネット公開してみる事にします。

PC⇒ラズパイのアクセスの間にCloudflareを置きます。

実装

今回の実装は以下のサイトを参考にしています。

ラズパイでWebサーバーを構築し独自ドメインで外部公開する方法

ドメイン名を作成し、Cloudflareの登録まではこのサイトで対応可能でした。(Cloudflareの登録までの流れは割愛します)

ただし、おうちk8sの環境ではk8s上にサービスが動いている形になります。

ですので、k8s環境に合わせた設定をしていく必要があります。

k8s環境側の設定

まずはsecretを作成しておきます。

以下の<token>のところはトンネルIDでこのjsonファイルは/home/ubuntu/.cloudflaredに作成されたjsonファイルを指しています。jsonファイル名を確認したら、このトンネルIDが分かります。

$ kubectl create secret generic config-json-file-secret -n kong --from-file=<token>.json

$ kubectl create secret generic cert-pem-file-secret -n kong --from-file=cert.pem

$ kubectl create secret generic credentials-json-file-secret -n kong --from-file=credentials.json

k8s環境に合わせた設定をしていく際に、Cloudflareのhelmチャートが必要になります。

今回はKongと一緒に使用するという前提のもと、helmfile.yamlは以下のようになります。

repositories:
  - name: kong
    url: https://charts.konghq.com

  - name: community-charts
    url: https://community-charts.github.io/helm-charts

releases:
  - name: kong
    namespace: kong
    version: 0.21.0
    chart: kong/ingress

  - name: community-charts
    namespace: kong
    chart: community-charts/cloudflared
    version: 2.2.4
    values:
      - cloudflared-values.yaml

cloudflared-values.yamlは以下のようになります。

tunnelConfig:
  name: raspi

tunnelSecrets:
  existingConfigJsonFileSecret:
    name: credentials-json-file-secret
  existingPemFileSecret:
    name: cert-pem-file-secret

ingress:
  - hostname: ref-voice.cospa-tank.com
    service: http://kong-gateway-proxy.kong.svc.cluster.local:80
  - service: http_status:404

ingressの一つ目のservieにはkongのserviceを指定します。

アクセスip制限

アクセスのIP制限はCloudflareで設定します。

「Security」→「Security rules」で「Create rule」を押してルールを作成します。

「custom rule」画面で、

  • Fieldを「IP Source Address」
  • Operatorを「is not in list」
  • Valueを「my_list」

と選択します。

これで、指定したリストにあるIPアドレス以外のアクセスははじくことになります。

リストはManage listsから設定できます。

こちらに自分のPCのGIPを設定します。

自分のGIPを調べるには、https://ifconfig.me/ にアクセスするとわかります。

アクセス確認

対象となっていないIPのPCからドメインにGIPをアクセスすると以下のようにはじかれるようになります。

登録しているIPだとアクセスができます。

最後に

実際に接続できることが確認できると感動しますね。

タイトルとURLをコピーしました