てんこ

ブログ名は愛猫(てん)の愛称です。中身は個人のIT系学習記録です。

#JTF2020 資料リンク集

本日は、JTF2020に参加しました。

とりあえず、とりいそぎ資料リンク集を作成しました。

別エントリで感想なども記載しております。

■表形式のリンク集

コマ数 種類 A B C D E F G
1 資料
- 動画 ライブ限定 ライブ限定
2 資料
- 動画
3 資料
- 動画
4 資料 確認できず 確認できず
- 動画 ライブ限定
5 資料 確認できず
- 動画 ライブ限定
6 資料 中止
- 動画 中止

Base

公式サイト(peatix)

https://jtf2020.peatix.com/

詳細情報(Connpass)

https://techfesta.connpass.com/event/175611/

講演リスト

GoogleDrive

Youtube(ライブ用URL)

各セッションごとの公開になったため、こちらは折り畳みに。

■ Track A

https://www.youtube.com/watch?v=m5v1vG-re88

■ Track B

https://www.youtube.com/watch?v=Jrbi8lLbpuY

■ Track C

https://www.youtube.com/watch?v=Q3pbg8QPqNo

■ Track D

https://www.youtube.com/watch?v=95OSV9DuzKI

■ Track E

https://www.youtube.com/watch?v=jvK4qm8bmlU

■ Track F

https://www.youtube.com/watch?v=EEYj72jabGE

■ Track G

https://www.youtube.com/watch?v=oAN146lEQh0

アンケート

■■ 1コマ ■■

A1 : リモートによるPBL活動とその工夫と成果【ライブ限定】/ 佐藤 達志さん

■資料 https://www.slideshare.net/TatushiSato/july-tech-festa-2020pbl

■動画 非公開(ライブ限定)

B1 組織/企業/グループを超えたエンジニアのつながりを広げるイベントをしている話 / 小倉 真人 (@Mahito)さん

■資料 https://speakerdeck.com/mahito/jtf2020

■動画 https://www.youtube.com/watch?v=F3qIEwZSF6M

C1 : テクニカルサポートエンジニアという働き方 - 技術と英語で立ち向かうOSSエンタープライズの世界 / 八木澤 健人 (ひよこ大佐)さん

■資料 https://speakerdeck.com/hiyokotaisa/jtf2020-c1-tekunikarusapotoenziniatoiudong-kifang

■動画 https://www.youtube.com/watch?v=vCmDg0euTOM

D1 : Kubernetes、第一歩のその後に ~基盤を支えるOSSとの関わり方~ / 太田 航平 (inductor)さん

■資料 https://speakerdeck.com/inductor/kubernetes-201-lets-get-involved-with-the-community

■動画 https://www.youtube.com/watch?v=fnUI5gZg1xY

E1 : ツールの多い時代のネットワークエンジニアになって思うこと / 伊藤 太斉さん

■資料 https://speakerdeck.com/kaedemalu/turufalseduo-ishi-dai-falsenetutowaku-inhura-enzinianinatutesi-ukoto

■動画 https://www.youtube.com/watch?v=xHBTQ3oepgk

F1 : はじめてのAnsibleトラブルシューティング【ライブ限定】 / 齊藤 秀喜さん

■資料 https://www.slideshare.net/h-saito/ansible-troubleshooting-101202007

■動画 非公開(ライブ限定)

G1 : 伝統的なエンプラ企業で取り組むインフラの設計書のモダナイゼーション / 吉村 翔太さん

■資料 https://speakerdeck.com/yosshi_/chuan-tong-de-naenpuraqi-ye-dequ-rizu-muinhurafalseshe-ji-shu-falsemodanaizesiyon

■動画 https://www.youtube.com/watch?v=6wGU03671Oc

■■ 2コマ ■■

A2 : オンラインイベント支援システムOLiVESの開発と運用 / 飯尾 淳さん

■資料 https://www.slideshare.net/JunIio1/olives-237238230

■動画 https://www.youtube.com/watch?v=akmsqJm1LpA

B2 : 組織に良い開発文化を植え付ける「Software Engineering Coach」という役割 / 常松 祐一さん

■資料 https://speakerdeck.com/tunepolo/role-as-software-engineering-coach-for-better-development-culture

■動画 https://www.youtube.com/watch?v=HiZEbW0b4-c

C2 : エンジニアなら誰でも配信を / 田中 司恩さん

■資料 https://speakerdeck.com/tnk4on/serial-experiments-live

■動画 https://www.youtube.com/watch?v=gkXCnInZrs4

■その他

D2 : AKSを活用した内製教育支援プラットフォームをリリースした話 / 河原 慎吾さん

■資料 https://www.slideshare.net/ShingoKawahara1/july-tech-festa-2020-aks

■動画 https://www.youtube.com/watch?v=XBb5rqds8Mc

E2 : CNIふぉーびぎなーず / 林 智史さん

■資料 https://bit.ly/2E88Yca

(GoogeDocs)

■動画 https://www.youtube.com/watch?v=-7OyYapZHUU

F2 : カンファレンススタッフとしてコードを書いて広げるエンジニアリング・ライフ / nikkieさん

■資料 https://docs.google.com/presentation/d/1ATNL1J5OtCW3ay3rs8kynULl0cJ6bKJje654XvI8BuM/edit?usp=sharing

■動画 https://www.youtube.com/watch?v=vUdfvqXuIwY

G2 : プロジェクトチームで取り組む実践的なクラウドコスト最適化 / 大澤 秀一さん

■資料 https://speakerdeck.com/sansanbuildersbox/practical-cloud-cost-optimization-for-project-teams-to-work-on

■動画 https://www.youtube.com/watch?v=CwZ67y0JS30

■■ 3コマ ■■

A3 : OpenWorkが考えるリモートワーク時代のオンボーディング / 加我 貴志さん

■資料 https://speakerdeck.com/kaga/onboarding-on-openwork

■動画 https://www.youtube.com/watch?v=J-tMXi6QhfI

■その他

B3 : VM 基盤インフラチームの DevOps / 樋口 茂幸(YOMOGItanpop)さん

■資料 https://www.slideshare.net/Fujitsu_CloudTechnologies/vm-devops

■動画 https://www.youtube.com/watch?v=5XgJCXcNXXE

C3 : 間隙を縫って現場と自分を Extend していく流浪人スタイル / 曽我 央 (sogaoh)さん

■資料 https://gitpitch.com/sogaoh/slides?p=20200725-JTF2020-SS&s=qS9rRnYP

■動画 https://www.youtube.com/watch?v=CVuClNHFins

■その他

D3 : 2人のチームでどうやって開発者をkubernetes開発に巻き込もうとしているか / 大平 譲さん

■資料 https://speakerdeck.com/yuzujoe/2ren-falsetimudedouyatutekai-fa-zhe-wokuberneteskai-fa-nijuan-kiip-ndeikuka

■動画 https://www.youtube.com/watch?v=qIUyT0kwGoc

E3 : クロスコンパイルだけが能ではない組み込み Linux システムの CI/CD インフラ構築 / 八重樫 剛史さん

■資料 https://speakerdeck.com/yaegashi/cdinhuragou-zhu

■動画 https://www.youtube.com/watch?v=snG_X04SCGQ

F3 : バックエンドエンジニアの私がお勧めするSPAフロントエンド開発環境 / 渡辺 一宏さん

■資料 https://speakerdeck.com/kaz29/batukuendoenziniafalsesi-gaoquan-mesuru-spahurontoendokai-fa-huan-jing

■動画 https://www.youtube.com/watch?v=PGRKVZ-DpOk

G3 : 「誰かの Engineering Life を Extend する」を仕事にした話 / 横地 晃さん

■資料 https://www.slideshare.net/akira6592/jtf2020

■動画 https://www.youtube.com/watch?v=Mdoz-v5rHas

■その他

■■ 4コマ ■■

A4 : IP制限な社内レガシーアプリをAWS Cognitoでどこからでも利用可能にして社員の生産性を上げました / 林 如弥さん

■資料 https://www.slideshare.net/ssuser1f3c12/aws-cognito-makes-old-web-apps-available-from-anywhere

■動画 https://www.youtube.com/watch?v=1GjQCrfLvaA

B4 : 少人数でのアジャイル開発への取り組み実例(一歩目の踏みだし方) / 東口 和暉さん

■資料 https://speakerdeck.com/hgsgtk/a-first-step-to-agile-movement

■動画 https://www.youtube.com/watch?v=grZqRW44bRA

■その他

C4 : 凡人エンジニアの生存戦略 / 髙市 智章さん

■資料 https://speakerdeck.com/takaichi00/jtf2020-fan-ren-ensiniafalsesheng-cun-zhan-lue

■動画 https://www.youtube.com/watch?v=AD0qOBceuEQ

D4 : Prowに学ぶKubernetesのCI環境 / bells17さん

■資料 https://speakerdeck.com/bells17/prow-and-kubernetes

■動画 https://www.youtube.com/watch?v=wLTWpct9rEo

■その他

E4 : アプリケーション作ってテストしたらインフラのスペックとか勝手に決まるよね?そう、CI/CDならね。 / 羽深 修さん

■資料 確認できず(2020/07/25 18:00時点)

■動画 https://www.youtube.com/watch?v=9anFK3q9Ofo

■その他

F4 : Web制作において、プレビューにあえてCloudRun(とFirebase)を使う / 武居 和也さん

■資料 https://attakei.net/slides/jtf-2020/

https://speakerdeck.com/attakei/using-cloud-run-and-firebase-as-preview-environment-of-html-in-web-development

■動画 https://www.youtube.com/watch?v=LqYT1lwhnh4

■その他

G4 : マネジメントコンソールとの奮闘記【ライブ限定】 / 真中 俊輝さん

■資料 確認できず(2020/07/25 18:00時点)

■動画 非公開(ライブ限定)

■■ 5コマ ■■

A5 : 緊急事態宣言中に大手SIer インフラエンジニア向けに実施したピープルマネジメント【ライブ限定】 / 倉持 健史さん

■資料 https://speakerdeck.com/tklab/jtf2020-jin-ji-shi-tai-xuan-yan-zhong-nida-shou-sierenziniaxiang-kenishi-shi-sitapipurumanezimento

■動画 非公開(ライブ限定)

■その他

B5 : 技術同人誌の執筆で得たStand Alone Complexなチーム / おやかたさん

■資料 https://speakerdeck.com/oyakata2438/july-tech-festa-2020-b5

■動画 https://www.youtube.com/watch?v=j81Ztgba810

■その他

C5 : JTF2020に来てください。本物の経営者目線ってやつを見せてやりますよ / 園山 淳也 (@Clorets8lack)さん

■資料 https://www.slideshare.net/cloretsblack/jtf2020-237231925

■動画 https://www.youtube.com/watch?v=NdGN1z0q67U

D5 : Kubernetesを用いた車両用クラスタ管理とvehicle service mesh / Yong Jun Kai / 天地 知也(@tomoyamachi)さん

■資料 https://speakerdeck.com/tomoyamachi/integrating-service-mesh-with-kubernetes-based-connected-vehicle-platform

■動画 https://www.youtube.com/watch?v=JoxPOADUdCk

E5 : コンテナベースのネットワーク環境をGUIでサクサク作る技術 / 山崎 泰宏さん

■資料 確認できず(2020/07/25 18:00時点)

■動画 https://www.youtube.com/watch?v=4iT-s3Sh0lQ

F5 : Production の役目を終えたマイクロサービスの技術的知見は、次への挑戦を支援する / 坂部 広大 (koudaiii)さん

■資料 https://speakerdeck.com/koudaiii/xiang-ding-wai-woopunnisuru

■動画 https://www.youtube.com/watch?v=IUDnttfYwK8

G5 : クラウド時代の今こそ!理解して拡げる分散システムの基礎知識 / 小林 隆浩さん

■資料 https://speakerdeck.com/tzkoba/li-jie-sitekuo-gerufen-san-sisutemufalseji-chu-zhi-shi

■動画 https://www.youtube.com/watch?v=cwTw5Xgno1w

■その他

■■ 6コマ ■■

A6 : 実践モブプログラミング / 佐々木 俊介 (erukiti)さん

■資料 https://speakerdeck.com/erukiti/mob-programming-practice

■動画 https://www.youtube.com/watch?v=Y8adki8iCNQ

B6 : テストを自動化するのをやめ、自動テストを作ろう / 末村 拓也さん

■資料 https://speakerdeck.com/tsuemura/tesutowozi-dong-hua-surufalsewoyame-zi-dong-tesutowozuo-rou

■動画 https://www.youtube.com/watch?v=WJshz4klFe8

C6 : 続・人生100年時代の学び方 / 吉岡 弘隆(よしおかひろたか hyoshiok)さん

■資料 https://www.slideshare.net/hyoshiok/100-237232610

■動画 https://www.youtube.com/watch?v=BTGcwtBldNw

D6 : Kubernetesでやりたいことがまだたくさんある / 河 宜成さん

■資料 https://speakerdeck.com/takanariko/kubernetesdeyaritaikotogamadatakusanaru

■動画 https://www.youtube.com/watch?v=RRaS4OIB6ZE

E6 : ネットワークへのCI的アプローチ / 田中 進さん

■資料 https://www.slideshare.net/susumu0108/ci-237234894

■動画 https://www.youtube.com/watch?v=TxrGClTO2jQ

F6 : Ceph 101: ”ワタシハ セフ チョットデキル" への道 / 塚本 正隆 (tsukaman)さん

■資料 https://speakerdeck.com/tsukaman/ceph101-watasiha-sehu-tiyotutodekiru-hefalsedao

■動画 https://www.youtube.com/watch?v=ZiAorJ-c2k4

運営をされていた方々

July Tech Festa 2020にプログラム委員として参加したので振り返ってみる | by gkz | Jul, 2020 | Medium

July Tech Festa 2020 配信担当のうわ言|Yasuhiro Yamazaki|note

AnsibleでHinemosをインストールしてみた。

本日は、久しぶりに監視ツールを触りたいな、と思って、先日OSC北海道で紹介されていたHinemosをAnsibleでインストールしてみました。

Ansible関連の実践記事一覧はこちら


目的

  • Hinemosをインストールするため
  • 家庭内LANの監視をしつつ、Hinemosの使用感をつかむため

Hinemos自体の説明は、公式サイトをご覧ください。

環境

  • OS: CentOS Linux release 7.8.2003 (Core) (7.7のイメージから上げてます)
  • Hinemos: 6.2.2

構築手順

参考にしたWebページ

Hinemos公式ページのガイドから、以下URLの手順を参考にさせていただきました。

Hinemos ver.6.1 入門編① Hinemos ver.6.1を使ってみよう | Hinemos

作成したPlaybook

作成したPlaybookがこちら。 become用のパスワードはhost_varsに入れています。

本当はもうちょっとバージョンとかURLとかを変数に放り込んだほうがいいような

---
- hosts: hinemos
  gather_facts: true
  become: yes

  vars:
    user_name: ansible
    git_url: https://github.com/hinemos/hinemos/releases/download/
    MAJOR_VERSION: "6"
    MINOR_VERSION: "2"
    REVISION: "2"
    BUILD: "1"
    OS_TYPE: "el7"

  tasks:
    - name: Yum update
      yum:
        name: "*"
        state: latest
      register: result

    - name: Install packages
      yum:
        state: latest
        name:
          - unzip
          - vim-common
          - java
          - net-snmp
          - net-snmp-utils

    - name: Disable SELinux
      selinux:
        state: disabled

    - name: Change Firewalld Setting(TCP8080/UDP162)
      firewalld:
        port: "{{ item }}"
        permanent: yes
        state: enabled
      with_items:
        - "8080/tcp"
        - "162/udp"
        - "80/tcp"

    - name: Reboot
      reboot:
      when: result.changed

# ----------------------

    - name: Get Hinemos RPM File
      get_url:
        url: "{{ item }}"
        dest: /home/{{ user_name }}/
      with_items: 
        - "{{ git_url }}/v{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}.{{ REVISION }}/hinemos-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}-manager-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}.{{ REVISION }}-{{ BUILD }}.{{ OS_TYPE }}.x86_64.rpm"
        - "{{ git_url }}/v{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}.{{ REVISION }}/hinemos-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}-web-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}.{{ REVISION }}-{{ BUILD }}.{{ OS_TYPE }}.x86_64.rpm"


    - name: Install Hinemos Manager
      yum:
        name: /home/{{ user_name }}/hinemos-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}-manager-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}.{{ REVISION }}-{{ BUILD }}.{{ OS_TYPE }}.x86_64.rpm
        state: present

    - name: Start Hinemos Manager Service
      service:
        name: hinemos_manager
        state: started
        enabled: yes

    - name: Hinemos Manager Listen Check(tcp8080)
      wait_for:
        port: 8080
        delay: 10

# ----------------------

    - name: Install Hinemos Web ClientManager
      yum:
        name: /home/{{ user_name }}/hinemos-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}-web-{{ MAJOR_VERSION }}.{{ MINOR_VERSION }}.{{ REVISION }}-{{ BUILD }}.{{ OS_TYPE }}.x86_64.rpm
        state: present

    - name: Start Hinemos Web Client Service
      service:
        name: hinemos_web
        state: started
        enabled: yes

    - name: Hinemos Manager Listen Check(tcp80)
      wait_for:
        port: 80
        delay: 10

# ----------------------

# SNMP Client Setting

    - name: SNMP Service Enable
      service:
        name: snmpd
        state: started
        enabled: yes

インストール結果、接続確認

以下のように、インストールは無事完了。

f:id:tatematsu_san:20200718151532p:plain

ブラウザを使って接続確認してみたところ、問題なく管理画面にアクセスできました。

f:id:tatematsu_san:20200718151611p:plain

まとめ

まずはインストールまでですが、Ansibleを使って問題なくHinemosのインストールを実施することができました。

Hinemos初めて使うので、これからいろいろといじってみます。楽しみ!

実際に使う中でもうちょっと修正が必要になるかもしれませんので、その際にはまた修正します。

1か月半ほど鬱病で休職した話

今回はタイトル通り、ポエムです。

もしかすると察していた方がいるかもしれませんが、私は4月の半ば頃から、6月の第1週くらいまで、鬱病で休職していました。

その時の話を書いておこうと思います。

現在は既に完全に回復しており、お仕事にも復帰しております。ご安心ください。

この手の話題が嫌な方もいると思うので、折り畳みにしておきます。

続きを読む

Squidで復号プロキシを立ててみた

めずらしくAnsible系以外の記事になります。

Repsonaというプロジェクト管理ツールが個人的に気に入っていて、会社でも使いたいなーと思っているのですが、会社のHTTPS復号環境だと、ログイン画面の直前でWebSocket用のJavaScriptの読み込みで失敗するようでした。

↑再現させた自宅での環境もこんな感じ。

Repsonaの開発者の ガッシー( @GussieTech ) さんと会話をする中で、検証環境用にHTTPS復号プロキシを簡単に立てられないかなと思い、実際に立ててみました。その作業メモを残しておきます。

環境

手順

Squidのインストール

yumコマンドでインストールを行います。

$ sudo yum -y install squid

インストール後、バージョン確認と有効になっているOptionを確認。

$ squid -v 
[ansible@proxy2 ~]$ squid -v
Squid Cache: Version 3.5.20
Service Name: squid

以下のように、有効になっているオプションが表示されますが、このなかで赤字にしてある2点(--enable-ssl-crtd , --with-openssl)が入っていれば、HTTPS復号プロキシは利用可能です。

configure options: '--build=x86_64-redhat-linux-gnu'(略) '--enable-snmp' '--enable-ssl-crtd' '--enable-storeio=aufs,diskd,rock,ufs' '--enable-wccpv2' '--enable-esi' '--enable-ecap' '--with-aio' '--with-default-user=squid' '--with-dl' '--with-openssl' '--with-pthreads' '--disable-arch-native' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches (略)

オレオレ認証局の証明書と鍵の作成

Squidディレクトリに移動し、オレオレ認証局の証明書と鍵を作成します。

$ cd /etc/squid

$ sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout secret.key -out squidCA.pem

Generating a 2048 bit RSA private key
...........................................................................................................+++
..................+++
writing new private key to 'secret.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:hogehoge
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:hogehoge.com
Email Address []:

#↑の部分は対話式で入力していきます。

結果、以下のように認証局証明書(squidCA.pem)と秘密鍵(secret.key)の作成が完了しました。

f:id:tatematsu_san:20200713202933p:plain

認証局証明書の取得、信頼するルートCAへのインポート

SCPなどを用いて、squidCA.pemをプロキシクライアント端末へ取得し、ブラウザの証明書ストアへインポートします。

※DER形式へのコンバートコマンドなども書いてありますが、FireFoxであれば、pemでそのままインポート可能でした。

設定→オプション→「プライバシーとセキュリティ」→「証明書」

f:id:tatematsu_san:20200713203302p:plain

証明書マネージャ→「インポート」

f:id:tatematsu_san:20200713203402p:plain

対象のpemファイルを選択し、「開く」

f:id:tatematsu_san:20200713203422p:plain

インポートダイアログで「この認証局によるウェブサイトの識別を信頼する」にチェックし「OK」

f:id:tatematsu_san:20200713203445p:plain

インポートした認証局の情報が表示されることを確認。(ここでは、Default Company Ltd)

f:id:tatematsu_san:20200713203615p:plain

証明書ファイルの所有者・権限の変更

以下コマンドを入力し、証明書ファイルをsquid:squidの所有権に変更します。

$ sudo chown squid:squid squidCA.pem
$ sudo chmod 400 squidCA.pem

f:id:tatematsu_san:20200713203918p:plain

証明書キャッシュの作成と初期化、所有権の変更

以下コマンドで、証明書キャッシュの作成と初期化を行います。

なお、参考サイトで記載しているカスペルスキーさんのところでは「/usr/lib/squid/ssl_crtd 」となっていますが、最近の環境では、下記のように「/usr/lib64/squid/ssl_crtd」に修正する必要があると思います。

$ sudo mkdir -p /var/lib/squid
$ sudo /usr/lib64/squid/ssl_crtd -c -s /var/lib/squid/ssl_db

Initialization SSL db...
Done

$ sudo chown -R squid:squid /var/lib/squid

/etc/squid/squid.confの修正

以下の箇所の変更を行います。

# Squid normally listens to port 3128
#http_port 3128 #コメントアウト
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/squidCA.pem key=/etc/squid/secret.key #追加

sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB #追加

sslcrtd_children 5 #追加

ssl_bump server-first all #追加

sslproxy_cert_error deny all #追加

firewalldの設定追加

Squid用のTCP3128について、着信を許可します。

$ sudo firewall-cmd --add-port=3128/tcp --zone=public --permanent

success

$ sudo firewall-cmd --reload
success

$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: dhcpv6-client ssh
  ports: 3128/tcp  #これが出てればOK
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

SELINUXのPermissive

Enforceのままだと証明書キャッシュの生成に失敗するので、とりあえずPermissiveにします。(怒られそう)

$ sudo setenforce permissive

サービスの起動と動作確認

systemctlコマンドでsquidサービスを起動します。

$ sudo systemctl start squid

クライアントのプロキシ設定と動作確認

プロキシを以下のように設定。

f:id:tatematsu_san:20200713221305p:plain

以下のように、HTTPSサイトにアクセスしたときに証明書の認証局が書き換わっており、SquidアクセスログHTTPSでアクセスした詳細なパス情報が記録されていればOK。

f:id:tatematsu_san:20200713220809p:plain

$ sudo cat /var/log/squid/access.log | grep news.yahoo

1594645647.847     78 192.168.10.243 TAG_NONE/200 0 CONNECT news.yahoo.co.jp:443 - HIER_DIRECT/182.22.25.124 -
1594645647.946     91 192.168.10.243 TCP_MISS/200 29546 GET https://news.yahoo.co.jp/pickup/6365311 - HIER_DIRECT/182.22.25.124 text/html
1594645649.292     56 192.168.10.243 TCP_MISS/200 8623 GET https://news.yahoo.co.jp/comment/plugin/v1/short/? - HIER_DIRECT/182.22.25.124 text/html

上手く行かない時は…

だいたい、/var/log/squid/cache.logか、/var/log/messagesに理由が書いてあります。

  • 初期化されていない系→案内通りにやってみる。だめならSELINUX設定見直し。
Uninitialized SSL certificate database directory: /var/lib/squid/ssl_db. To initialize, run "ssl_crtd -c -s /var/lib/squid/ssl_db".
  • 証明書が有効でない系エラーの場合→squid.confと、証明書ファイルのアクセス権の見直し。

まとめ

大分雑な環境ですが、こんな形でSquidHTTPS復号を行うプロキシサーバを立てることができました。

実運用考えた場合、squidのスタートアップだけでなく、SELINUXもConfigいじったりしないといけませんし、復号除外用のACLが書けるような設定にしたり、プロセス数をチューニングしたりと色々考える必要がありますので、そのあたりは適宜調整していただければ。

何かのお役に立てば幸いです。

今度はこれ、Playbook化しよっと。

参考にさせていただいたサイト

カスペルスキーさんのサイト

Squid で SSL Bump なプロキシサーバを構築する - 約束の地

AnsibleでMineMeldをインストールしてみた

皆さんは、OSINTというものをご存じでしょうか?

OSINTは「Open Source Intelligence」の略で、「一般に公開されている脅威情報」ととらえていただければよいかなと思います。

本日は、そのOSINT情報を集めて、好きな形で出力してくれるツールとして、MineMeldというOSSをAnsibleを使ってインストールしてみます。

Ansible関連の実践記事一覧はこちら


目的

  • Minemeldが仕事でつかえるかどうか判断するため

OSINTの情報を起点にAnsibleをHubにして、セキュリティ製品への設定を自動化したいなと考えています。

MineMeldとは?

セキュリティ機能も活用可能なファイアウォールを出されているPalo Alto NetworksさんがOSSで提供する、OSINT情報蓄積・出力用ツールです。

https://www.paloaltonetworks.jp/content/dam/pan/en_US/images/products/minemeld/pan-minemeld-diagram.png

同様のツールで「MISP」というものもあります。

【参考】MISP公式サイト

https://www.misp-project.org/

公式サイト

MineMeldの公式サイトは以下URLです。

MineMeld - Palo Alto Networks

公式インストール手順

以下URLのWikiに記載されています。

User's Guide · PaloAltoNetworks/minemeld Wiki · GitHub

今回は、ソースコードからインストールしますので、以下URLの情報を参考に作業をしています。

GitHub - PaloAltoNetworks/minemeld-ansible: Ansible playbook for installing MineMeld on Linux

環境

f:id:tatematsu_san:20200705122047p:plain

全部仮想サーバ、同一ネットワーク内です。

Minemeldをインストールする対象のサーバは、ansibleユーザをwheelに入れてPWなしでsudoできる状態にしたのみです。

作成したPlaybook

公式のインストール手順を参考に、以下のようなPlaybookを作成しました。

install_minemeld.yml
---
- hosts: all
  gather_facts: no
  become: yes

  vars:
    user_name: ansible

  tasks:
    - name: Yum update
      yum:
        name: "*"
        state: latest

    - name: Install packages
      yum:
        state: latest
        name:
          - wget
          - gcc
          - git
          - python-devel
          - libffi-devel
          - openssl-devel
          - zlib-devel
          - sqlite-devel
          - bzip2-devel

    - name: Get bootstrap
      get_url:
        url: https://bootstrap.pypa.io/get-pip.py
        dest: /home/{{ user_name }}/

    - name: Exec bootstrap file
      command:
        cmd: python get-pip.py

    - name: Install ansible
      pip:
        name: ansible
        state: latest

    - name: Git clone Minemeld
      git:
        repo: https://github.com/PaloAltoNetworks/minemeld-ansible.git
        dest: /$HOME/minemeld-ansible

    - name: Play ansible playbook
      command:
        cmd: ansible-playbook -i 127.0.0.1 /$HOME/minemeld-ansible/local.yml

# ↑ここを改善できないものか…

    - name: Usergroup change
      user:
        name: "{{ user_name }}"
        append: yes
        groups: minemeld

    - name: reboot
      reboot:

インストール手順の中に、MineMeldインストール用のPlaybookをGithubからクローンしてきて、対象サーバ上でPlaybookを実行する、というような項目があります。 Playbookでは、SELINUX用の設定もしっかり実施してくれます。

全体の実行時間では、その項目が最も長くなります。(10分くらい?)

理想はAnsible実行サーバ側からそのタスクの状況をモニタリングできるとよいのですが…include_tasksとかでやろうと思っても上手く行きませんでした。

1個上のダウンロード先でdelegate_toでlocalhostを指定してAnsible実行ホスト側にPlaybookを落としてきても、そのPlaybookの一番上に「hosts: localhost 」が入っているためです。変数指定で上書きとかできるんだっけか…

良いアイディアをお持ちの方は教えていただけると嬉しいです。

インストール用のPlaybookは、以下に公開されています。

github.com

作業結果

無事、インストールが完了しました。

f:id:tatematsu_san:20200705124033p:plain

インストール実施確認

https://<minemeld_ipaddress>/

httpでアクセスしてもリダイレクトしてくれます。

初期のユーザ名は以下の通り。

項目
user admin
password minemeld

f:id:tatematsu_san:20200705124114p:plain

ログイン情報を入力し、ログインしてみます。

f:id:tatematsu_san:20200705124153p:plain

ちゃんと動いていることが確認できました。

今後

このMineMeldを使って、セキュリティ製品へのブロックリスト投入などを自動化する検証を進めていこうと思います。

本当はインストール実施確認とかまでPlaybook化できるといいんですよね。もうちょっと考えよ…