Upgrade to Pro — share decks privately, control downloads, hide ads and more …

202012_juiceshop

 202012_juiceshop

2019/10に「プロ生勉強会」で発表したスライドの焼き直しになります。
CentOS8のPodmanとか、k3sでjuiceshopを動かしたらどうなるかな?

https://speakerdeck.com/gplains/20191026-pronama-juiceshop

ONO,Tetsuo

December 24, 2020
Tweet

More Decks by ONO,Tetsuo

Other Decks in How-to & DIY

Transcript

  1. はじめに  当該スライドに登場するアプリケーションは、不 具合調査やその前提となる技能の習得のために作 られたものです。  構内での自習や、ウェブアプリケーションの受け 入れ検査など、利用が許可された環境でのみ実施 するようおねがいします。 

    AWSなどのクラウド上でCTF環境を構築する際に は「防災訓練」等の契約上の申請が必要なことが あります。 ※本稿は2019/10発表の資料の改訂版です CentOS7(+Docker)の手順はそちらを参照
  2. CentOS8+Podmanの場合-1  先ずPodmanをインストールします…  DockerHubからリポジトリを集めます。  juiceshop を起動するよ。 $ sudo

    dnf install podman $ sudo podman pull bkimminich/juice-shop $ sudo podman run --rm -p 3000:3000 bkimminich/juice-shop
  3. CentOS8+k3sの場合-2 juiceshop.yamlは以下の内容です(やっつけ…) apiVersion: v1 kind: Pod metadata: name: juiceshop namespace:

    default labels: env: study spec: containers: - name: juiceshop image: docker.io/bkimminich/juice-shop:latest
  4. CentOS8+k3sの場合-3  インスタンス起動  podの状態を確認  サービスを追加する  ローカルからcurlすればアクセスできそうだ #

    kubectl apply -f juiceshop.yaml # kubectl get pod ; kubectl get services NAME READY STATUS RESTARTS AGE juiceshop 1/1 Running 0 113s # kubectl expose -f juiceshop.yaml --port=3000 # kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE juiceshop ClusterIP 10.43.162.4 <none> 3000/TCP 10s # curl 10.43.162.4:3000
  5. CentOS8+k3sの場合-4  別のコンソールから操作したいので、サービスを修正  typeをNodePortに変更したのち、nodePort値を修正  k3sを動かしているサーバにcurlで接続 # kubectl edit

    service juiceshop spec: ports: - port: 3000 protocol: TCP targetPort: 3000 selector: env: study type: ClusterIP # curl 192.168.1.131:3000 spec: ports: - nodePort: 30001 port: 3000 protocol: TCP targetPort: 3000 selector: env: study type: NodePort
  6. [参考]CentOS8+k3sの場合の後始末  まず先にサービスを解除  Podを解除  Pod/サービスの両方が削除されたことを確認 # kubectl delete

    svc juiceshop service "juiceshop" deleted # kubectl get pod ; kubectl get services No resources found in default namespace. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 41h # kubectl delete -f juiceshop.yaml pod "juiceshop" deleted
  7. さらに脱線...  CentOS8って2021/12にアップデート止まるんでしょ?今 紹介して大丈夫なんですか? →開発用途であれば、RHEL8が使えます Red Hat Developer Program に登録することで、最大16

    ノードまでRHELの利用権が(年次更新とはいえ)利用可能に なります(本番ノードへは2021/2から利用可能に!)。 https://www.redhat.com/en/blog/new-year-new-red- hat-enterprise-linux-programs-easier-ways-access-rhel