/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

February 20, 2024

駐輪禁止


Prohibition of parking bike in Kobe

Posted by funa : 10:03 PM | Bike | Comment (0) | Trackback (0)


December 8, 2023

竹書房 stardust
裁判で「ツッコんでもうた、ボケやのにっ」てボケる
そしてデブキャラで復活、笑われるキャラっていうのが俺の見立て

==========
■ユダヤの商法 藤田田
合理、契約、ケチ、疑い深い、信用、仕事お金至上
金を巻き上げる/お金は奪い合い
 取引額を倍々に増やし現地を耕した後に進出して直売りに変更等エグイ
 日本の大企業の社員は自分の力を過大評価し世界では通用しない
食を楽しむ
 宗教上休みをきっちり取るし、食を楽しむやイイ女を囲ったり楽しんでる
 風呂でシッカリ体を洗い清潔
金持ち、女と口、好きなものより苦手なものを売った方が割り切れる
 ターゲットは金持ち/女性を狙う等、これは確実に見習いたい
田さん陳さん東大でGHQに通訳アルバイトし19に弟子入りし銀座のユダヤ人になった

買い切りかリピート購入/サブスクか、買い切りは長く続ける商売でなく店を畳んで違う商品をやる
広告投資管理7割:年間に支払う平均金額(1年LTV)>客一人獲得に掛かる広告費上限(CPO)

■確率思考の戦略論
客引きもバンカーも運転手も世界各国で同じ雰囲気>法則がある
ブランドに対する好意度:preference=ブランドイクイティ+価格+製品パフォーマンス
プレファレンスが高いものはより高頻度で購入される=>シェア
人はそれぞれのカテゴリのEvoked setを持ってる:エビス50黒ラベル30一番搾り20
プレファレンスに基づいたエボークトセット持ち、その中のカテゴリーの購買回数分だけサイコロを振って選んでいるだけ
Preference好意度(ブランドイクイティ+価格+製品パフォーマンス)+Awareness認知+Distribution配荷
年間購入者の全世帯に対する割合=認知率x配荷率x過去購入率xEvokedSet率x年間購入率
年間売り上げ=総世帯数x1年間に買う人浸透率x平均購入回数x平均購入金額
シェア=参入順位xプレファレンスx宣伝費比率x間合い年数
 どれだけ競合に比べて宣伝できているかが大きい
 次回購入タイミング=平均購入回数xプレファレンス とかデータ化、確率見ていく
差別化して先鋭化しても自社を選んで貰えるとは限らない
 差別化でターゲットを絞ってマーケットが小さくなる危険性

ベストセラー>観光大使/政府/首相>人を巻き込みPRに
コーラは原液販売に注力し現地生産フランチャイズにし配荷拡大した
商品棚をその店/客のプレファレンスに合わせ配荷の質を改善
都合が悪くなるとルールを変えてでも勝とうとする西洋人
 スポーツマンシップは油断させるプロパガンダでしかない
サイコパス:感情が意思決定の邪魔にならない>選ぶストレス無しに最適判断できる
 +人心掌握(
※勝ち馬しか人は選ばない、第一想起にどう入るか、高くても良い大量の広告を打つ
 オペを遅くしてでも行列を作る、先着サイコロ無料話題をつくる、ライトが明かる過ぎるとか目立つ店構え

====
多変量解析
消費者の行動を左右する要素は様々だが、「絞り込むと本質的には3つ程度しか残らない」
最も重視すべきは「プレファレンス(相対的好意度)」。次にどれだけ知ってもらえているかという「認知」、その後、消費財であれば製品の手に取りやすさを示す「配荷」、テーマパークであればパークまでの「距離」が続く。企業が重視しがちな品質や技術力といった「パフォーマンス」の優先順位は低い。「新機能を搭載しただけでは、消費者に響かない」。相対的好意度、認知、配荷のどれかが足りないと、どんなにいい製品も埋もれてしまう。

商圏
テーマパーク業界の失敗例を調べ全国で閉園になった約50の遊園地を見ると、すべて需要を上回る投資をしていました。 需要は商圏の大きさやその人口を調べると分かります。明らかにお金を使ってはいけないところに投資をしていたのです。

可視化
思考力に強みを持つ人を「T(=Thinking)型」、人とつながる力や伝える力が強い人を「C(=Communication)型」、人を率いて動かす力を強みとする人を「L(=Leadership)型」として、3つに分類し可視化。可能性の高い分野に資源を集中。

====
国の大学教育の目標人材「思考力、判断力、俯瞰力、表現力の基礎の上に、幅広い教養を身につけ、高い公共性、倫理性を保持しつつ、時代の変化に合わせて積極的に社会を支え、論理的思考力を持って社会を改善していく資質」
1)分野を超え先端の学問を学び時代の変化に合わせて積極的に社会を改善していく人材
2)高度な教養と専門性がある人材
3)高い実務能力がある人材

米海軍で屈指の潜水艦艦長による最強組織の作り方
リーダシップ:価値と潜在能力を伝え刺激する(協力を支配で操る)
担当者の方がが細かいところまで詳しく知っている
 権限を与えるとは支配と同じ
 目標と裁量は両立するか
 リーダの技量が組織の業績か、メンバーの技量ではないのか
疑問:活かすには命令でなく創意工夫で実務を行った方が良いのではないか
結果:残留率up、組織状態better
要るもの:権限だけでなく自由を与える
やる事:mtgでなく確認会(聞く方の準備や参加が必要)、命令でなく確認し許可取り

●やったこと
委ねるリーダーシップ
権限を与える
命令を避ける
命令するときは、乗員が異を唱える余地を残す
やるべきことを確認する
会話をする
上官と部下が学びあう機会を設ける
人を重視する
長い目で考える
いなくなっても困らない存在を目指す
訓練の回数より質を重視する
正式な命令以外でも、会話を通じて情報交換する
つねに好奇心を持つ
意味のない手順や工程をすべて排除する
監視や検査を減らす
情報を公開する

●やらなかったこと
命じるリーダーシップ
権限を握る
命令する
命令するときは、 自信を持って絶対だと明言する
やるべきことを説明する
会議をする
上官が部下を指導する機会を設ける
技術を重視する
目の前のことを考える
いなくなったら困る存在を目指す
訓練の質より回数を重視する
明瞭簡潔な言葉のみを使用し、 正式な命令以外の言葉を交わさない
つねに疑いを持つ
手順や工程の効率を改善する
監視や検査を増やす
情報を公開しない

-支配からの解放
┣支配構造の遺伝子コードを見つけ出して書き換える
┣態度を変えることで新しい考え方をもたらす
┣早めに短く言葉を交わし、仕事の効率を高める
┣ 「これから~をします」という言い方を導入し、命令に従う だけだったフォロワーを自発的に行動するリーダーに変える
┣解決策を与えたい衝動を抑える
┣部下を監視するシステムを排除する
┗思っていることを口に出す

-優れた技能
┣直前に確認する
┣いつどこでも学ぶ者でいる
┣説明するな、確認せよ
┣同じメッセージを絶えず繰り返し発信する
┗手段ではなく目標を伝える

-正しい理解
┣ミスをしないだけではダメだ、優れた成果をあげよ
┣信頼を構築し部下を思いやる
┣行動指針を判断の基準にする
┣目標を持って始める
┗盲目的に従うことなく疑問を持つ姿勢を奨励する

■OODA
Observe(観察)、Orient(状況判断、方向づけ)、Decide(意思決定)、Act(行動)
OODAは過去の経験に捉われることなく現状にあった行動をとるためのもの
Observeでは先入観を持つことなく公平かつ客観的に行うことを推奨
PDCAは品質管理や生産管理用フレームワークで状況や前提が変わらない中で最適解を見つけるのに適している(簡易としてはPDR、Prep=準備、Do=実行、Review=復習検証)
OODAデメリット:場当たり的、ミッションバリュービジョン共有の欠如で統率不足、中長期計画に適していない、仮説が弱い

====
ティーチング:正解や解決に必要なノウハウを教える
コンサルティング:相手の問題を解決するための提案をし共に解決していく
カウンセリング:悩みや不安を解決するためにサポートする
コーチング:目標達成のために行動変容を促す傾聴と質問(アドバイスしない)

人生の幸福度は「貯金の量」で決まる
幸福感が最大になる貯金額とは1億円

Posted by funa : 11:16 PM | Column | Comment (0) | Trackback (0)


October 31, 2023

GCP Network Connectivity
●共有 VPC
 同組織のプロジェクトのホストプロジェクト(親)のVPCをサービスプロジェクト(子)に共有
●VPC ネットワーク ピアリング
 異なる組織間の接続(双方のVPCでコネクションを作成する、内部IPで通信する、サブネットは重複しないこと、2ホップ制限で1:1=3つ以上の場合は古メッシュでコネクション作成要)、k8sサービスとPod ipをVPCピアリング経由する利用法もある

●ハイブリッド サブネット
 Cloud VPN/Interconnect等が必要、オンプレルータとCloud RouterをBGPでつなぐ、オンプレとGCPをつなぐ
●Cloud Interconnect
 DCと専用線で閉域網接続、Cloud VPNより低レイテンシ/帯域安定
●Cloud VPN
 オンプレとIPsec VPN接続、アドレス帯の重複だめ、Cloud VPN側でBGPIP設定やIKEキー生成をしオンプレルータ側でそれらを設定する

●内部範囲
 VPCで使うIPをCIDRで定義しIP範囲の使用方法を事前に決定しておく、IPが勝手に使われたりしない等ができる

●限定公開の Google アクセス(Private Google Access)
 外部IPを持たないGCE等はデフォルトのインターネットゲートウェイ0.0.0.0を経由してGoogle APIにアクセスする、VPC>Routesで見れる
●オンプレミス ホスト用の限定公開の Google アクセス
 CloudVPNやInterconnectを経由してオンプレから内部IPを利用してGoogleAPIにアクセス、GCP側ではCloudDNSで特定のドメインのAレコードを入れる、選択したドメインのIPアドレス範囲を静的カスタムルートでVPC内のプライベートIPからルーティングできるように設定する、オンプレにはCloudRouterからドメインのIPアドレス範囲をBGPでルーティング広報する、VPNやInterconnectがないと0.0.0.0でGoogleAPIにアクセスするがこれだとRFC1918に準拠しない199.33.153.4/30などのIPを使う必要がありルーティングが複雑化したり、オンプレを通る場合があり通信は慎重に設計をすること
●Private Service Connect
 「限定公開の Google アクセス」の発展版、オンプレをNATでVPCに接続、内部IPでGoogleAPIにアクセスできる、PSCエンドポイントを介して内部IPで公開できる、NATされ内部IPの公開先での重複OK

●プライベート サービス アクセス
 VPCペアリングを併用してサービスプロデューサをVPCに接続し内部IPで次のようなサービスに内部IPでアクセスできるようにする(Cloud VPNまたはInterconnectを付け足せばオンプレからも可)、Cloud SQL/AlloyDB for posgre/Memorystore for Redis/Memcached/Cloud build/Apigee等の限られたもの
●サーバーレス VPC アクセス
 サーバレスからVPC内リソースにアクセスするためのコネクタ(通常は外部IP通信になるがコレだと内部IPでVPCにルーティングされる、/28のサブネットを指定)、例えば既存のcloud runサービスを編集しても付けられず初期構築時のみ設定できる

●外部 IP アドレスを持つ VM から API にアクセスする
IPv6をVMに設定し限定公開DNSゾーン設定をすればトラフィックはGCP内にとどまりインターネットを通りません

●CDN Interconnect
 Cloud CDNもあるが他社のCDNに接続する、Akamai/Cloud flare/fastly等々

●Network Connectivity Center 
 ハブとなりCloudVPN/InterconnectをメッシュしGCP/オンプレ含め通信させる、Googleのバックボーンでユーザ企業の拠点間を接続できる
●ダイレクト ピアリング
 GoogleのエッジNWに直接ピアリング接続を確立し高スループット化、Google workspaceやGoogleAPI用だが普通は使わずInterconnectを使う
●キャリア ピアリング
 ダイレクトピアリングの高度な運用が自社対応できない等でサービスプロバイダ経由でGoogle workspaceなどのGoogleアプリに品質よくアクセスする

Google CloudのVPCを徹底解説!(応用編) - G-gen Tech Blog

●トンネル系の下記は色々権限が要りそうで候補
Compute OS login/IAP-secured tunnel user/Service account user/viewer/compute.instance*

■IAPトンネル
export http_proxy=http://localhost:3128
export https_proxy=http://localhost:3128
gcloud compute start-iap-tunnel --zone asia-northeast1-a gce-proxy001 3128 --local-host-port=localhost:3128 --project=gcp-proxy-prj
でコマンドを打てばIAP踏み台トンネルを通って外部に通信できる

■踏み台コマンド
gcloud compute ssh --projet gcp-prj-unco --zone asia-northeast1-a gce-step-svr
でSSHログインしそこからcurl等で操作する

=============
なぜレッドオーシャン化する前にサービスを グロースできなかったのか? - フリマアプリ編 - (フリル)
サービスを急拡大させる意思決定が遅く競合に遅れ
競合出現後も経営方針を大きく変えなかった
勝利条件はユーザ数で機能差ではなかった
パワープレーでいかにプロモーションばら撒いて認知広げて第一想起をとるかだった
先行者優位で過ごせる期間は短い
スタープレイヤーの採用、手数料無料化、TVCM等PLを超えた手法があった、BS経営すべきだった
成長のキャップが創業者の能力になっていた
有能な人材:耳の痛いことを言ってくれる人材を経営チームに採用しても良かった
CTOが開発をし、組織運営の雑務をし、採用もやっていた
CEOは机の組み立てをするな。CTOはPCの購入をするな
役割の変化に素早く適用し権限移譲を行い、やるべきことをやれる状況を作る
あるいは必要な組織を大きくすることに注力する、例えば開発組織を大きくする
戦時のCEO、皆に戦時であることを伝える、企業文化に背く意思決定も行う
研究や教育等、やった方が良さそうな耳障りの良いタスクも拒否する
どうやったら市場で勝てるかの戦略

IPOとか目指さなければConfort zoneを見つけてじっくりまったりビジネスを継続させる手もある
メルカリやPay2をみた結果論、このやり方も古いというかアレ

Posted by funa : 10:57 PM | Web | Comment (0) | Trackback (0)


April 23, 2023

Bay Bay Bay
ebayはSellerからオファーがあり値引きしてくる。破壊力あるな。ただ購入が面倒だった。

ebayでの問題
1)日本には送ってくれない場合がある
2)日本に送ってくれるが住所が日本語だと売主でキャンセルされる
決済での問題
3)クレカ会社で支払いを止められている場合がある
4)Paypalで各種証明書が必要で止められている場合がある(クレカ認証も要るはず
5)google payでの決済ができない(クレカ側で止められているのでは?

対処
1)米国転送住所 shipito.com が使える
 オレゴン倉庫は消費税が掛からないが有料で月10ドル
 calの10%弱の消費税が掛からず送料も安くなるので一時契約する
 ebayに米国住所を登録するには米国電話番号が必要
  skypeで毎月300円で発行ができるので一時契約する(MSのoutlookメールID)
 shipito.comに送付されたら日本に転送依頼をする
2)ebayの送付先住所(米国)は英語にする(日本に送付可ならコレなくてもいい)
 念のため日本の個人情報住所も英語にする(日本に送付可でもココは英語がいいかも)
 念のためebayの言語設定を英語、場所を米国にする(上か下ナビにあるはず)
  その後に購入・決済手続きする方がいい
3)クレカサイトのFAQで支払いできない時等で検索して対処
4)Paypalは各種証明書を登録する。クレカ認証は確か少額課金で検証されるはず
5)知らん

shipitoで送料見積もると安かったが、実際に荷物が届くと梱包が大きくかなり高い
米国内転送でshipitoでまとめて荷物一つで送ろうと思ったが、直接日本に送ってくれる相手なら直接の方が安いかもしれず良く考えよ
解約すること shipito $10 / skype us phone num 300yen

解約していたはずが、SKYPE.COM/GO/BILL利用国LUで300円請求されていた ログインIDを確認しログインし Manage features| Skype My Account で解約した
SkypeとかGoogleとか詐欺ってるよな

=========

流せるトイレブラシの使い方に「天才かよ」 真似したくなるトイレの掃除術 – grape [グレイプ] (grapee.jp)

昭和100年は、2025年/平成37年/令和7年だ。(昭和64年=平成元年/1989、平成31年=令和元年/2019)
西暦の下2桁から018(レイワ)を引くと令和、23-18=5なので令和5年

Posted by funa : 09:12 PM | Column | Comment (0) | Trackback (0)


March 15, 2023

GMT(Greenwich Mean Time)

■セイコーPROSPEX SPEEDTIMER Solar Chronograph SBDL097(ペプシ)
セイコー プロスペックス SPEEDTIMER SBDL097 | セイコーウオッチ (seikowatches.com)
腕時計のベルト調整方法(Cリング式) - YouTube
Cリングが内側下側に入っており無くし易いので気を付ける
6時方向を短くした方がバランスが良い
バックル微調整はバネ棒なので縮めてズラす(バックルから外さない方が面倒がない)
 クロノグラフはストップウィッチで秒針が12時のままが正しい
 スプリットセコンド付
  上ボタンでスタート、下ボタンでラップ、下ボタンで続き
  上ボタンでストップ、下ボタンでリセット
 FとEでソーラー充電上体を表示
 竜頭1段出しで日付、2段目で時刻調整
ソーラ充電電池の寿命は10年とメーカで謳われている、交換は三~四千円で、機械かクォーツの方がいい?

■セイコー5 SPORTS SKX Sports Style GMT SSK001K1
SBSC001の海外モデルでブレスレットの中3連がミラー艶出し
各部の名称と主なはたらき (seikowatches.com)
ベルト調整はCリング無しの割ピン仕様
 午後8時から午前4時は日付の調整を行わないこと(朝昼夕方に合わせる、反時計回りは駄目)
 竜頭1段目にして反時計回りで前日の日付にセットし、
 竜頭2段目にして時計回りで時刻合わせ
  竜頭0段目:ぜんまい巻き上げ(時計回り、回しすぎない方がいいらしい)
  竜頭1段目:日付合わせ(反時計回り)・GMT24時針合わせ(時計回り)
  竜頭2段目:時刻合わせ
 日本時間の24時間針として使う場合
  ベゼルを時差分ずらすと2か国の時刻が分かる
   GMT針は24時間針で日本時間で、ベゼルを9時始まりにしてUTCの設定が良い
    +0900 JST9:00のときUTC0:00、UTCだけどcoordinated universal time
 デュアルタイム針として使う場合
  ベゼルを時差分ずらすと3か国の時刻が分かる(日本時間の長短針/盤面の24時間/ベゼルの24時間)
機械式は面倒、嵌めていないと止まる、時間がズレる、でもソコがカワイイかも
クォーツ+ソーラは100倍便利だが、機械の相棒一本がいいかもな
伝統のUI/ユーザビリティとか、機能美とか様式美に行きつく


■セイコーNH35A サブマリーナ
スピードタイマー、GMTとくれば、次はサブマリーナでしょ。ベゼルが酸素ボンベの量を表す、潜水開始時に分針をベゼルの0を合わせると何分経ったか分かる、ベゼルは逆回転しないので誤って廻っても分数が加算されるだけ
 時間合わせは5Sportsと同じ、ねじ込み式リューズで先に緩める
 ブレスレットのネジは精密ドライバ1.4mmが良かった、小さいとナメるよ
 グライドロック:ブレスレットの微調整は動く方をパキっと持上げて好きな位置迄スライドさせて押し込む
フルスペック!!
 Superior grade 904 stainless steel construction
 Sapphire crystal with clear anti reflective undercoat
 Ceramic bezel insert
 Solid link bracelet with screw pins and solid end links
 Case size is 40mm, lug width 20mm

■セイコー5 SPORTS Skz209 7S36-01E0(Blue atlas Landshark)
トリッキーなガジェットでヤバいな。回転式コンパスチャプターリング(方位計)、200m water resistant、7S36自動巻き、デイデイト表示、回転式ダイバーズベゼル、ねじ込み式リューズ
方位計の使い方
1)時計を水平にして時針を太陽の方向に合せる。この時、時針の指す方向と、12時の中間の方向が南
2)回転ベゼル(方位計)を回しSを南の方角に合せると、おおよその全方位がでる
※緯度や季節によってはズレが生じることがある
日付は「午前0時」ごろ、曜日は「午前4時」ごろ送るようになっている
 午後8時から午前4時は日付の調整を行わないこと(朝昼夕方に合わせる、反時計回りは駄目)
 竜頭1段目にして反時計回りで前日の日付、時計回りで前日の曜日にセットし、
 竜頭2段目にして時計回りで時刻合わせ
  竜頭0段目:ぜんまい巻き上げがない
ベゼルが回らないとき(そもそも反時計回りにしか回らない)
 アルカリ電解水を入れ何度かやって汚れを取る(不要な部分に浸み込まないように)
 シリコンスプレーを吹く(ベゼルに吹くと若干色が戻り艶がでる)
 SEIKO SKX ブラックボーイのベゼル外して掃除&ブレス交換します! - YouTube
  セロテープをコジリの器具の方に
  時計本体にマスキングテープ
  こじる場所がある場合もある

残るはエクスプローラー/デイトかくらいか、知らんけど、圧倒的にレディーがいいなロレックスデイトジャスト、28mmで濃縮されてる感じで、39/36と28でお揃いとかええけどな。バンド種類の名前:Oyster/Presidential/Jubilee



■カシオDATA BANK DBC-611
QW-3228 (casio.jp)説明書
左側上Aボタンでモード切替:データバンク>計算>アラーム>ストップウォッチ>DT=デュアルタイム
右側下Cボタン:操作音ONOFF
右側上Lボタン:ライト点灯
戻る:÷、進む:+
アラーム5つと時報がセットできる、Aボタンでセット、鳴るセットでAL-1~5が表示
時報セットでSIGが表示、Cボタンでアラーム時報ONOFF

■カシオ ワールドタイム AE-1200WH-1AV
QW-3198_3299 (casio.jp)説明書

■MOD
SEIKO 5 .club
DLW MODS - Seiko Watch Modification Parts (dlwwatches.com)
SeikoMods: Seiko Mod Parts & Watch Mod Parts UK
Seiko Mod Parts | Watch-Modz

Posted by funa : 09:27 PM | Gadget | Comment (0) | Trackback (0)


February 11, 2023

HSTS/CORS/CSPOAuth/OpenID/SAML/XSS/CSRF/JSOP/SSO/SSL/SVG/JWT
=========================
2023-02-11
フロントエンド開発のためのセキュリティ入門 - Speaker Deck
 HTTPとHTTPSが混ざっているwebサイトはHSTS(http strict transport securityヘッダ)でHTTPS強制できる
 JSのfetch,xhr/iframe/canvas/WebStorage,IndexedDBでクロスオリジンは危険
 Access-Control-Allow-OriginレスポンスヘッダでCORS(cross origin resource sharing)許可を判定できる
 CSP(Content-Security-Policy)レスポンスヘッダあるはmetaタグで許可するJSを判定できる

=========================
2022-04-06
SAML
 SSOのログイン状態を保持する認証プロバイダー(IdP)を使い各アプリ(ServiceProvider)でSSOを実現する
 SSOの仕組みにはエージェント方式、リバースプロキシ方式、代理認証方式など
  ユーザはWebサービスにアクセス
  WebサービスからSSO認証プロバイダーサーバにSAML認証要求をPostする
  SSO認証プロバイダーサーバでSAML認証を解析、ユーザに認証を転送
  ユーザはそれでWebサービスにログインする

SAMLはログイン時にユーザー情報をチェック、OAuthはユーザーの情報を登録
OAuthはアプリケーションを連動させるAPIで有効なアクセストークンかを見る
 アクセストークンには「いつ」「どこで」「なんのために」作られたのか分からない
OpenIDはIDトークンを使い「いつ」「どこで」「なんのために」作られたのか分かる

OAuth 2.0、OpenID Connect、SAMLを比較
OAuth 2.0:新しいアプリケーションに登録して、新しい連絡先をFacebookや携帯電話の連絡先から自動的に取得することに同意した場合は、おそらくOAuth 2.0が使われています。この標準は、安全な委任アクセスを提供します。つまり、ユーザーが認証情報を共有しなくても、アプリケーションがユーザーに代わってアクションを起こしたり、サーバーからリソースにアクセスしたりすることができます。これは、アイデンティティプロバイダー(IdP)がユーザーの承認を得て、サードパーティのアプリケーションにトークンを発行できるようにすることで実現されます。

OpenID Connect:Googleを使ってYouTubeなどのアプリケーションにサインインしたり、Facebookを使ってオンラインショッピングのカートにログインしたりする場合に使用されるのが、この認証オプションです。OpenID Connectは、組織がユーザーを認証するために使用するオープンスタンダードです。IdPはこれを利用して、ユーザーがIdPにサインインした後、他のWebサイトやアプリにアクセスする際に、ログインしたりサインイン情報を共有したりする必要がないようにします。

SAML:SAML認証は、多くの場合に仕事環境で使用されます。たとえば、企業のイントラネットやIdPにログインした後、Salesforce、Box、Workdayなどの多数の追加サービスに、認証情報を再入力せずにアクセスできるようになります。SAMLは、IdPとサービスプロバイダーの間で認証・認可データを交換するためのXMLベースの標準で、ユーザーのアイデンティティとアクセス許可を検証し、サービスへのアクセスの許可/拒否を決定します。
OAuth、OpenID Connect、SAMLの違いとは? | Okta

Oath: idpがトークンを発行、Webサイト間でユーザを認識し3rdからでも個人情報を使えるようになる
OpenID(OIDC): idpとJWT(トークン)で認証するOauth系のSSO、Oauthの拡張でログインが3rdからもできるようになる
SAML: idpで各アプリやAD間をXMLメッセージにより認証管理しSSOを実現
 OpenIDとSAMLが同じような機能
 SAMLはユーザ固有の傾向で大企業SSOが多い、OpenIDはアプリ固有の傾向でWebサイトやモバイルアプリが多い
 SAMLよりOIDCの方が新しくSPAやスマホと親和性が高い
 SaaSとしてOpenIDはOktaのidp、SAMLはPingFederateのidpがメジャー

=========================
2016-01-03
■XSS対策、CSRF対策、脆弱性チェック
情報処理推進機構にチェックリスト有
https://www.ipa.go.jp/security/vuln/websecurity.html
XSS対策
 フォーム送信後の確認画面ではHTMLエスケープ等でサニタイズされた内容の結果を表示
 DBへのクエリについてはプレースホルダやエスケープ等でSQLインジェクションを防ぐ
 target="_blank"はXSSになるので危ない、rel="noopener noreferrer"を付ける
  https://b.hatena.ne.jp/entry/s/webtan.impress.co.jp/e/2020/03/13/35510
  https://laboradian.com/test-window-opener/
CSRF対策
 前ページでhidden値を入れる

 クッキーに具体的なものは入れない、CookieにHttpOnly属性、HTTPS通信ではsecure属性
 エラーメッセージを表示しない
 不要なファイルは削除

 XMLの外部実態参照は禁止、サーバ上でコードが実行される
  →libxml_disable_entity_loader(true)で止める、xmlをアップロードさせない/使用しない、JSON使う
 PDFからHTTPリクエストが発行される
  →PDFをアップロードさせない

------

//SQLインジェクション対策
\ " ' を\エスケープ
$sql = "UPDATE users SET name='.mysql_real_escape_string($name).'WHERE id='.mysql_real_escape_string ($id).'";

//クロスサイトスクリプティング対策
表示時には<>&"をメタ文字へ変換
echo htmlspecialchars($_GET['username'], ENT_QUOTES);
$ent = htmlentities($ent, ENT_QUOTES, "UTF-8"); //100個の文字を変換

//クロスサイトスクリプティング対策
別サイトからのポストを弾く
refferを送信しないリクエストもある(別サイトのリファラを弾き、nullもしくは適切ページからを許可する)
セッションIDで判断する

//DOS対策
2重ポスト
IPと日付で2重ポストを防ぐ(同IPのポストがx秒以内を弾く)

========

■JSONP
scriptタグを使用してクロスドメインなデータを取得する仕組みのことである。 HTMLのscriptタグ、JavaScript(関数)、JSONを組み合わせて実現される

GoogleAnalyticsのクッキーは1stパーティでサイト側がオーナでありGoogleがオーナーではない
 サイト側のJSでクッキーが作成されるようなっている
 クッキーが送信される相手はどこか?が重要でGoogleでなくサイト側に送信される
 アクセス履歴は別途データをGoogleに送信しており、クッキーはセッション管理に使用される


■SSO
色々な方法がある、SAMLや、サイトにエージェントを組み込み+SSO認証サーバ等
ロジックを確認しないと詳しくは分からない

=========

■SSL
CAはサーバに証明書(署名)を発行
====
クライアントが接続要求
サーバが証明書(署名とRSA公開鍵を含む)を送る
クライアントが証明書を検証(
 どっち?
 1)署名をルート証明書のチェーン(RSA公開鍵)で複合化しドメインを確認
  該当のルート証明書(RSA公開鍵)がブラウザにないと該当CAに要求?
   CRLやOCSPで失効について問合せができるようだがRSA公開鍵の要求は出来なさそう
  (ルート証明書はブラウザにある結局オレオレ証明書に違いない:厳密な審査の上で組込まれている)
 2)クライアントが公開鍵をサーバに送りRSA秘密鍵で暗号化し送り返すとクライアントが複合化してRSA秘密鍵が正しい事を確認
)
クライアントが共通鍵(セッションキー)を生成し公開鍵で暗号化し送る
サーバが秘密鍵で共通鍵を複合
以降共通鍵暗号で通信
 ※ホンマか??
====
ホスト(ドメイン)を持って接続要求をし、暗号化通信後にパスやクエリパラメータを送るので、詳細は暗号化され守られている

Posted by funa : 01:46 AM | Web | Comment (0) | Trackback (0)


January 22, 2023

竹書房 plotted nibbler
ええ本無いな、ダメな方に誘導しているだけで読まん方がいいよな
 どうでもええ、科学的でも前進が少ない、分かりにくい、本となっていない
 上梓しましたよ~という為だけにある
 レビューも信用ならん
 適当なことを言っているだけ、逆誘導
 逆に生産性が無さそうな批評家、評論の方がええかも

といっても、私も逆誘導だよ~ん
ということで… ベリベリベリ竹書房復活ってdoDow


/// 支配の構造 国家とメディア――「世論」はいかに操られるか
仏)フランス革命で労働者が団結して職能組合や結社を厳しく制限
中間共同体を認めず、ルソーの社会契約論に影響された
国家は個人の自由意思に基づく契約により成立、一般意思こそが公の利益を達成する
党派、結社は私的団体であり、私的利益誘導するでなく個人になれと
実際には党派なのに個人と言い張ることが起こる

米)タウンシップがデモクラシーの下支え
地域に根差す自治的な中間共同体、つまり教会
中産階級が階級的ではなくフラットな個人として関係性を結ぶ
中間共同体が国家権力の防波堤になり、パブリックマインドの教育の場となる
行き過ぎた個人主義から共同体を見直す動きも
結社としてのメディア=ローカルニュース
選挙は神の見えざる手、デモクラシーには見えない神の存在があると思っているのでは

プロテスタントの救済、神の国に行くのは厳格で難しい
カトリックは懺悔をすればいいが、Pは大抵の人は救済されないと考えている
救済される自分は救済されない堕落した人間とは付き合えない
つまりエリートとしての連帯は強く救済される同志

人の間で同時性を認識できると共同体やネーション等の連帯感が現れる
同じニュースを見る事、昔は新聞で同時性がありメディアが連帯を近年作りだした
昔はどこに巡礼するかで共同体が決まった、共同体から代表2名で伊勢に行ったとか
ネットはバラバラに小世界を点在させ、相互交流はしない

検閲や強制や弾圧でなく、社会の変化に従って、大衆が自ら忖度し発禁していくだろう
ちびくろサンボ、アンクルトムの小屋、煙草と肺がん、コロナ、陰謀
誰かにとって好ましくないものは何も考えずに燃やしてしまえば平穏無事だ
自分の頭で考えているような気になる、動かなくても動いているような感覚になる、ニュースのみをぎっしり詰め込んでやれ

/// 知ってはいけない現代史の正体
waspはもう米国を支配していない
排他的だったwaspは > 同一化 > 多様性 > というメディア世論で没落 > DS
多文化共生を一つの国家で行えない(DSの分断戦略、欺瞞、国家は単一文化が自然)

戦争紛争を利用し利益を収奪
シリアに介入したい(反アサド⇔ISIS(悪者)←育てる/武器を供給)>無政府状態にした後>介入
時に両方に付く、時に片方、だが裏切ることもある

自由と民主主義は国際介入政策を正当化する口実
- 民主化>民営化>グローバル市場化→国民主権の喪失
- グローバリズム→民族文化を破壊し金融で独裁支配する社会主義化


歴代大統領:グローバリズム←影のキングメーカ:国際金融資本家のコントロール下
トランプ:アメリカファースト/ナショナリズム
プーチン:反グローバリズム

中国:共産党独裁国家、超個人主義、中国人に国家観はない(儲かればいい)→世界のリーダになり得ない

/// アンジャッシュ渡部の 大人のための「いい店」選び方の極意
食の楽しみ、開拓の楽しみ
相手の苦手なものを確認、行きたいところを調べて行く
忙しいとか疲れている時こそ食べに行く:充実感でリフレッシュ
予約時:用途を言っておきたい(デートとか接待とか)、個室はテーブルか座敷か、お土産

/// フロイト vs ユング
フロイトが考えたのはこういうことだ。人間は誰しも、自分でも知らない 「心の秘密」をもっている。世の中には、不幸にも、なぜだかわからないうちに心や体の調子が悪くなり、しかもそのせいで周りとの人間関係までぎくしゃくしてしまっているような人がいる。そういう人の多くは、この「心の秘密」のせいで不幸になっている。

フロイトは、この秘密の在りかを「無意識」と呼んだ。

自分にも分からない 「心の秘密」などというものができてしまうの は、もとはといえばこの「話すこと」に原因があるのだと言ってよい。フロイトは、「無意識」をつくる心の働きを「抑圧」と呼んだが、これは「話すこと」を抜きには考えることが できないメカニズムである。つまり、あることを言わずに別のことを言う、ということではじめて、なにかが外へと追い出される、ということになるのである。

ときどき、精神分析 (まがい)の本を読んでいると、人間に心の病をもたらす根本的な問題は 「人間の本能が壊れている」ことだ、などという説明に出会うことがある。こうした考え方 は、精神分析の立場からすると、まったくの的外れだと言わねばならない。人間が「ことば」というものを話すようになった瞬間から、自らの本能的現実とはまったく異なる次元の「現実」に、すなわち、まさに「言語によって生み出される現実」に、捕らえられてしまうということ、そのことこそが重要なのだ。

言語の働きにのっとって話すことが「無意識」をつくり、また逆に「無意識」を探す道すじを与えてくれるのだとすれば、およそ人間の活動の及ぶあらゆる領域において、「無意識」が存在し、「無意識」が探求されうることになる。だからフロイト以後、文学も、人類学も、政治学も、社会学も、文学作品の中にも、未開社会の畑の中にも、政治的言説の中にも、はたまた社会構造そのものの中にも、「無意識」は存在するし探求されるようになった。

フロイト:チェコ、年子、ユダヤ改修派(ユダヤとして被差別、隣国ナチスとの関係)
ユング:ゲルマン系スイス、父プロテスタント牧師名士、母シャーマン家系
抑圧・トラウマを意識化すると神経症が治る。カタルシス→意識化していない、知らないことは怖い
 抑圧>無意識>神経症(神経症だけでなく無意識に入り込む:夢・失錯行為・機知に反映)
心の構造論
 イドesリビドー:快感原則
 自我ego:健全
 超自我super ego:無意識な躾(破ると後悔や罪責感)
コンプレックス - Wikipedia:無意識に働く心的内容で複合的な観念、好きだが嫌いとか葛藤とかフェチ的な
 エディプスコンプレックス:母好き父嫌いな息子
 エレクトラコンプレックス:父好きな葉は嫌いな娘
 劣等感を意味するのはコンプの一種でコレ、劣等複合(inferiority complex)
  全ての他人よりも不足している、劣っているという信念から劣等感が生じ、極端な内気、自己隔離、社会的従順などが発生
死の欲動・影←対抗するには自我(健全)の強さが必要
 駄目男に惹かれる>快感(受動な不快を能動的に置換して和らげようとしている)
ヌーメン性:聖性が作用し自身が支配される
ニヒリズム:虚無主義、絶対的な価値がなくなる
脳科学の知見
 思考)外部を知覚し判断
 感情)内的寛容や内的欲求を抑圧し評価
 情動)検索、のっとり、恐怖、パニックの少なくとも4つ
力動:反対方向に動くエネルギーの葛藤
 愛情と攻撃性、欲望と禁
転移:患者が分析家に愛情や憎しみ等の感情を向ける、逆に分析家が患者に感情を向けると逆転移
解離:ヒステリーから別人格が現れる
 (ヒステリー:強い感情があり意識から追い出されている記憶)
自由連想法:自由に話し無意識に閉じ込められた記憶を蘇らせる
催眠術:意識は眠らせるが無意識に話し掛け暗示を掛ける、これで支配できる
幼児期の性的トラウマが思春期以降にヒステリーとして現れる
夢:願望充足(あくまで無意識の。だがかつて意識から追放された欲望)
 睡眠自体を守る行為の場合もある
 圧縮+移動+抵抗の検閲
 イドとエゴとスーパーエゴが夢を歪めているのを探る
 夢により意識と無意識を近づけたと言える
子供の夢:強い歪曲や検閲がなく、また抑圧や記憶が少なく欲望成就そのままが多い
大人の夢:遠い記憶/複雑な葛藤/幼年期の記憶で圧縮移動されて分かりにくい
現実と欲望の葛藤→間違い/度忘れ/ヒステリー/脅迫神経症/夢で成就
 プライベートで退行し抑圧を解放しバランスを取っている
(フロイト
夢や症状は個人史の中で探られるべき
脅迫症状には愛憎の葛藤や性的トラウマがある
夢には無意識に抑圧された願望が現れる
無意識は自我が受け入れられないものを放り込むゴミ箱のようなもの
自我は意識の中心、無意識の中に抑圧された衝動や感情が神経症の原因
神経症の原因は幼少期にある
(ユング
夢や症状は集合的無意識に根差す原初的なイメージとも比較対象すべき
物語が重要であり人の苦悩や背景を明らかにする
無意識は意識を補償するもので夢は無意識からのメッセージ
無意識はもっと創造的で植物にすら通底する将来的な層がある
意識と無意識からなる心の中心には自己(セルフ)がありこれを実現することが人生の目標
神経症の原因は現在にある、神経症の人こそ自己実現の可能性をもつ
(オレ
無意識の願望が幼稚な場合は折り合いがつかず問題だな

夢の定型変形
 塔/ペン:ちんこ
 鞄/洞窟:おまんちょ
 王/王妃:両親
 小動物:子供/兄弟
言葉遊びで別の言葉に置き変えらる
夢を他人に話す前提>転移者(分析家)が夢に含まれている
前頭法:頭を叩きながら治療者が語り掛ける
自由連想法:頭に浮かんだことをそのまま語らせる
 不安=内的、恐怖:外的、体内:楽園
不安の原型は出産外傷で分離、孤独、見捨てられ

神経症は無知に押し込まれている
暗示法は信頼関係=転移が必要で危険>フロイトは自由連想法に変えた

フロイト=性欲、子供においては愛着・依存が
 男女間の結合だけでなく、創造・欲求・生命力の源泉・活力

 人間は性欲を学習するので間違いや失敗が起こりやすい
男:エディプスコンプ(母に恋し父を憎む)→去勢を連想→断念し父を真似→超自我→(拗らせ)性同一性
女:エディプスコンプ(母を愛す)→ちんこがない→劣っている→母を嫌悪→父に憧れ→他男と恋愛→(拗らせ)変な恋愛、ユング派はエレクトラコンプレックスという

肛門期:トイレ成功/失敗の躾>SMに発展
ナルシシズム:性的エネルギーを自己に(自己保全)
防衛機制:抑圧(嫌な事は無責任化)、否認(認めない)、分離(感情を切り離し他人事)
防衛機制:同一化、反動形成(嫌なのに丁寧)、投射(被害妄想など)、合理化(知性化:言い訳)、昇華(虐めをスポーツ)
死への欲動(タナトス):正か生き死に、外部とすると他者攻撃となる、あるいは超自我(躾)
生の欲動(エロース):
 戦争=攻撃的欲求
 宗教=幼児は親に守ってもらいたい欲望(幼児神経症的)
 芸術=幼児期に抑圧された性的欲望を形を変え昇華
 性欲・攻撃性・エディプスコンプを転換→仕事/スポーツ/絵/戦争/文学

ユング:心がどこへ向かおうとしているか?心は過去から未来へ発達を続けようとする
フロイト:過去(幼児期)>性的エネルギー
カレン、ホナイ:神経症は性欲でなく文化的要因=対人関係と基底不安(幼児期/孤独で無力)
アルフレッドアドラー:権力闘争/体力知力を求める、劣等感が神経症に

子供の人格形成:親は子供の世界に入るべきでない、自分で世界を発見すべき
幼児の人格形成:母が外部との緩衝になり、受け取れるものだけ選択し赤ちゃんに返すといい

ラカン:
 想像界(鏡像):ナルシシズムと攻撃性で事故や他人を形成する領域
 象徴界:人を人と形成する言語の領域=法
 現実界:死の欲動の領域

男性の去勢不安、女性のペニス羨望>精神分析治療で乗り越えるのが難しい

自我心理学:自我を強くし適応能力を高める(無意識を長期間分析する必要がなくなる
認知行動療法:無意識にアプローチしないプラグマティックなトレーニング療法
 例)ゴキブリ怖い>映像を見て慣れる等(パブロフの犬的)
ニューロサイエンス:心の現象も脳内化学物質プロセス

心理学
 ヴント:要素主義-構成主義-意識内容の考察
 ワトソン:行動主義 S(刺激)-R(反応)
 ヴェルトハイマー:ゲシュタルト心理学=形態(似てるものをグループしがち)
  上の2つの反応観察に反論し全体性に光を当て解明しようとする、心は要素に分解できず部分からは導くことは不可
 フロイト:精神分析
=======
枢軸 axis/pivot
国際関係のうえで親密な友好関係にあり、共同行動をとる国々。ナチス・ドイツ、ファシストのイタリア、軍国主義の日本。ムッソリーニがローマとベルリンを結ぶ垂直線を枢軸として国際関係は転回すると演説して有名に。ひっくり返すの暗喩。
 直喩simile:~のような「雪のような肌」
 暗喩=隠喩metaphor:例えが隠されている「檻の中のライオン」
 換喩metonymy:連想できる代替の語「白衣の力で治す」

Posted by funa : 04:17 PM | Column | Comment (0) | Trackback (0)


September 2, 2022

Overtone
音は複数の成分音の集合で、そのうち最も振動数が少なく高さを決定する音を基本音fundamental tone。
overtoneは上音、基本音以外の部分音。露光過度。
倍音はharmonic overtone。

2022年、特に感動した・気に入った フリーソフト – GIGA!無料通信 (gigafree.org)
楽器パートに分解、MIDI化、高画質化超解像等のヤツ
2021年、特に感動した・気に入った フリーソフト – GIGA!無料通信 (gigafree.org)
ミキシング、AIに喋らせ

張っ付くパンツか 引っ付くパンツか くっつくパンツか ムカつくパンツか、張っ付くパンツか 引っ付くパンツか くっつくパンツか ムカつくパンツか、パンツかパンツかパンツかパンツか

一拍三拍に手拍子入れて、二拍四拍でもみ手をするというのが日本の伝統的なリズム感
2/4拍はバックビート所謂ウラ、前者のキックか後者のスネアでとるか
なお1ト2ト…のトのところが裏拍


ゼブラゾーンを走っていても直線優先でAの勝ち(何割かは引かれるが)
ゼブラゾーン(導流帯)の意味。走行・駐車は可能?|チューリッヒ (zurich.co.jp)


左から、立ち入り禁止部分(オレンジ枠で走行も停止も不可)、安全地帯(オレンジ枠でバス停等で走行も停止も不可)、停止禁止(走行はできるが停止不可)

3歳でクラクションは鳴らせない、ドア解放だと走行中危ないしな
園バスの件、「園バス土足禁止」。 靴が残っていたら絶対に気づく。 費用ゼロですぐ導入可。

■ブラウザの機能拡張を考えようか
誰もが使うべき「YouTube拡張機能」ベスト10 | ライフハッカー・ジャパン (lifehacker.jp)

■秘密のフォント
(1) 菊屋素材@漫画ブラシ・擬音集・などなど (@Kikuya_Sozai) / Twitter
[菊屋素材集]R-18擬音&セリフ ブラシ集 - kick-tyan - BOOTH
あははもじもじ - 無料で使える日本語フォント投稿サイト|フォントフリー (fontfree.me)
あははもじもじフォント - フロップデザインフォント - BOOTH

Posted by funa : 02:54 AM | Column | Comment (0) | Trackback (0)


July 24, 2022

Docker
どこでビルドしてもデプロイしてもImmutableインフラ(不変の)なので変更したい場合はDockerfileの方を変える
コンテナはOS上のDockerEngine上に配置する(コンテナは複数配置できる、Dockerfileさえあれば再現可)
DockerfileでなくてもDockerイメージでもいいが、Dockerは可搬性をもたらすのである
 なおVMはOSをもシミュレート
1部: はじめに|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
2部: Dockerfile の基礎|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
3部: Docker Compose|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
 Dockerのチュートリアル - とほほのWWW入門 (tohoho-web.com)
 Dockerコマンド - とほほのWWW入門 (tohoho-web.com)
  コンテナ設計方針をまとめてみた - Qiita
  社内のDockerfileのベストプラクティスを公開します│FORCIA CUBE│フォルシア株式会社
  Docker完全に理解した | IIJ Engineers Blog
 ボリュームマウント=DockerEngine上にボリュームを作りコンテナにマウント(操作が面倒で仮使用や永続ファイル用)
 バインドマウント=LinuxOS上のファイルやディレクトリをマウント(ファイル編集が多い場合)
 dockerfile(イメージを作る)、docker compose(yamlで一括でコンテナ/nw/volを作る)
  dockerfile: dockerイメージを作る→runでコンテナ(アプリ)になる
  docker composer: コンテナを作る、NWやボリュームも作る→1台にまとめる
   マニフェスト: k8sを作る→複数台になる
    Dockerfileによるビルド - とほほのWWW入門 (tohoho-web.com)
    Docker Compose - とほほのWWW入門 (tohoho-web.com)

■Dockerインスコ
/// BANGBOO BLOG /// - GCP script ここの下の方に記載あり
docker --version
who 誰がログインしているか
sudo gpasswd -a [ユーザ名] docker dockerグループへ追加?

■Docker Engine起動
sudo systemctl start docker これ要る?

■オプション
-i キーボードを繋ぐ
-t 特殊キーを使用可能にする
-e 環境変数名=値(複数記載可能)
--net=ネットワーク名
-v ${pwd}:/app はOSローカル環境とコンテナ内のディレクトリを同期
-p, -public 80:8000 ポートの紐づけ
-d, -detach バックグラウンド実行(デタッチ)
-rm コンテナ実行後にコンテナを自動削除する(イメージは残る)
-dit  とまとめられる

■操作コマンド
docker images リスト
docker tag [イメージID] img_unco:latest 名前がつかない場合
docker rmi [イメージID]  削除
docker ps -a コンテナ一覧
docker container ls コンテナのステータス確認
docker rm [コンテナID] 削除

■起動
httpd3つを1つのイメージで建てられる(以前はdocker runだった)
docker container run --name コンテナ名001 -d -p 8081:80 イメージ名httpd
docker container run --name コンテナ名002 -d -p 8082:80 イメージ名httpd
docker container run --name コンテナ名003 -d -p 8083:80 イメージ名httpd

■仮想NW
コンテナ間をつなぐ(ネットワークタグ名で紐づける感じ)
1)ブリッジネットワーク(デフォルト
 同一の Docker Engine 上のコンテナ が互いに通信をする場合に利用する
 デフォルト:
  全てのコンテナ間をリンクする操作が必要
  コンテナ間の通信は IP アドレスで
 ●(コレ使う)ブリッジネットワークを定義し作成:
  相互通信は同じネットワークを割り当てるだけ
  コンテナ間でDNS解決される
  ネットワークでコンテナは隔離され隔離度が上がる
2)オーバーレイネットワーク
 異なる Docker Engine 上のコンテナ が互いに通信をする場合に利用

docker network create ネットワーク名net001

docker container run --name mysql001 -dit --net=net001 ~~~ イメージ名mysql
docker container run --name wordpress001 -dit --net=net001 -p 8085:80 -e WORDPRESS_DB_HOST=mysql001 ~~~ イメージ名wordpress

Docker仮想NW一覧
docker network ls
仮想NWの確認
docker network inspect net001

コンテナ間はservice_nemeで通信し、コンテナ名ではない
http://unco-sv:8000 で通信できる
各コンテナで同番ポートを使っていても問題はない
docker info プロキシ等が確認できる
.docker/config.json でプロキシやプロキシを使わないnoProxyを設定

■停止
docker stop コンテナ名
docker rm コンテナ名
docker network rm ネットワーク名

■コピー OS⇔コンテナ
docker cp コピー元 コピー先
例)docker cp /home/a.txt コンテナ名:/app/

■ボリュームのマウント
データをコンテナ内に置くとコンテナが消えるとデータも消えてしまう
永続化1)ボリュームマウント:DockerEngine上
永続化2)バインドマウント:OS上
永続化3)一時メモリマウント:(tmpfs)

■バインドマウント
docker volume create ボリューム名vol001
docker run --name コンテナ名httpd001 -d -p 8080:80 -v /home/a:/usr/local/apache/htdocs イメージ名httpd (OS側パス:コンテナ側パス、コンテナ側のパスをどこにすべきかはDockerイメージのドキュメントを見よ)
docker volume inspect vol001 (確認できる)
docker volume rm vol001

ホストディレクトリ共有ともいう
コンテナはrootで動作しているものが多く
ホスト共有しているDir/Fileにコンテナから変更するとrootで変更しPermissionが変わるそのためホストディレクトリ共有は本番に向かない

■ボリュームマウント
ちょい面倒らしいのでバインドマウントでいいのでは?
docker volume create ボリューム名vol001
docker run --name コンテナ名httpd001 -d -p 8080:80 -v ボリューム名vol001:/usr/local/apache/htdocs イメージ名httpd (OS側パス:コンテナ側パス)
docker volume inspect vol001 (確認できる)
docker volume rm vol001

Dockerボリューム共有ともいう
コンテナが削除されても明示的に消さない限り保持される
永続化したいパスを指定してマウントできる
(通常コンテナ内で作成されたデータは永続化しない)

■揮発的データを退避
docker cp コンテナ名:ファイルパス ホスト側退避パス
 docker cp test-db-a:/opt/test.txt /tmp/config
消えるファイルをホスト側に退避したいときのコマンド

■ボリュームマウントの確認やOS側にバックアップ
アプリコンテナとは別のshellコンテナを用意してlsしたりtar.gz等する
Apacheコンテナ <-> vol001 <- Linuxコンテナ -> vol002バックアップ
マウントを2つ(DockerEngine上のマウント、OS上のマウント)
tar.gzコピーでDockerEngine上の指定フォルダにコピーするが其れはOS側にもマウントされている、最後のドットも要る
イメージは軽量Linuxのbusyboxを使用
docker run --rm -v vol001:/usr/local/apache/htdocs -v /home/b:/tmp busybox tar CXvf /tmp/bjk.tar.gz -C /usr/local/apache/htdocs .

■ログ
docker logs コンテナ名
docker logs -f コンテナ名 追従確認
docker exec -t コンテナ名 /bin/bash ログファイル等はこれで入り確認

■Appコンテナ(PHP)
docker container run \
    --name app \ コンテナにappと名付る
    --rm \ コンテナ停止時に自動削除
    --detach \ バックグラウド実行
    --interactive \ 対話可能なセッションに
    --tty \ コンテナとのTTY接続しコマンド出力可
    --mount type=bind,src=$(pwd)/src,dst=/src \ osにバインドマウント
    --publish 18000:8000 \ ポートマッピング
    --network docker-sample-network \ 仮想NWに割り当て
    docker-php:app \ Dockerイメージの名前とタグ
    php -S 0.0.0.0:8000 -t /src コンテナ内で実行するコマンド

※永続化バインドマウントos上
ホストマシンのディレクトリをコンテナ内のディレクトリにバインドマウント。ホストマシンのカレントディレクトリ($(pwd))の"src"ディレクトリが、コンテナ内の"/src"ディレクトリにマウントされます

※ポートマッピング
-p, --publishがコンテナのポートをホストマシンに公開するオプション
ホストマシンの18000ポートを通じてコンテナの8000ポートにアクセスさせる
ブラウザからhttp://localhost:18000 でphpにアクセス

※起動コマンド
PHPのビルトインウェブサーバを起動し、IPアドレス "0.0.0.0" およびポート "8000" でリクエストを受け付け、コンテンツを"/src"ディレクトリから提供します

■コンテナの詳細情報の確認
docker container inspect app

■DBコンテナ(MySQL)
docker container run \
 --name db \
 --rm \
 --detach \
 --platform linux/amd64 \
 --env MYSQL_ROOT_PASSWORD=rootpassword \
 --env MYSQL_USER=hoge \
 --env MYSQL_PASSWORD=password \
 --env MYSQL_DATABASE=event \
 --mount type=volume,src=docker-db-volume,dst=/var/lib/mysql \
 --mount type=bind,src=$(pwd)/docker/db/init.sql,dst=/docker-entrypoint-initdb.d/init.sql \
 --network docker-sample-network \
 --network-alias db \
 docker-db:db

※仮想NWでのエイリアス名
dbと名付ける

■コンテナの疎通の確認
$ docker container exec --interactive --tty app ping db -c 3
appコンテナがdbに疎通できるかping

■アプリ
/// BANGBOO BLOG /// - GCP script 下の方に記載あり

■Dockerfile
ビルドしてイメージを作成
FROM イメージ名
COPY コピー元パス コピー先パス
RUN Linuxのコマンド

ENTRYPOINT イメージを実行するときのコマンド
CMD コンテナ起動時に実行する規定のコマンドを指定
ONBUILD ビルドが完了したときに任意の命令を実行する
EXPOSE 通信を想定するポートをイメージの利用者に伝える
VOLUME 永続データが保存される場所をイメージ利用者に伝える
ENV 環境変数を定義する
WORKDIR RUN/CMD/ENTRYPOINT/ADD/COPYの際の作業ディレクトリ
SHELL ビルド時のシェルを指定
LABEL 名前やバージョンや制作者情報等を設定
USER RUN/CMD/ENTRYPOINT実行するユーザやグループを設定
ARG docker buildする際に指定できる引数を宣言
STOPSIGNAL docker stopの際にコンテナで実行しているプログラムに対して送信するシグナルを変更する
HEALTHCHECK コンテナの死活確認をするヘルスチェックをカスタマイズする

社内のDockerfileのベストプラクティスを公開します│FORCIA CUBE│フォルシア株式会社
RUN adduser -D myuser && chown -R myuser /myapp
 (-Dはデフォルト設定で追加している、-Rは指定dir以下を再帰的に所有権変更)
USER myuser
 (以降のRUNやENTRYPOINT等のINSTRUCTIONを実行するユーザを指定)
Dockerセキュリティベストプラクティス トップ20:究極ガイド

Dockerfileの作り方を考え直したらすごく効率が上がった。 (zenn.dev)

■ビルドでイメージを作成
Dockerfileや材料ファイルのあるフォルダパスを最後に指定、-tはタグでイメージ名
docker build -t img_httpd001 ./

ビルド後にdocker runが必要
docker container run -d --name cnt_httpd001 -v ${pwd}:/app img_httpd001:latest
↓これが便利
docker container run -rm --name cnt_httpd001 -v ${pwd}:/app img_httpd001:latest

■commitでコンテナからイメージを作成
コンテナにexecで幾つかインスコする操作をしてからイメージにする等ができる
docker commit httpd001 img_httpd001

■コンテナ/イメージはDockerEngine上から移動できない
saveするとファイル化され、できるようになる
docker save -o save_img_httpd001.tar img_httpd001
 ファイルからイメージとして取り込みたいときはdocker load
 ファイル化せずにパブリックならDocker hubへ登録してもよい、プライベートレジストリを作ってもよい
  その中にそれぞれリポジトリを持つ > docker push レジストリ/リポジトリ名:バージョン

■コンテナに命令する
2つの方法がある
1)docker exec → docker container execに変わった
起動中のコンテナ内でコマンドを実行する
docker container exec [option] <container> command
ファイルを見る
docker container exec ubuntu1 cat ~/hello.txt
コンテナに接続してbashを使う
docker container exec --interactive --tty ubuntu1 bash

2)docker run に引数を付ける→ソフトウェア(apache)が動いていない状態になり改めてdocker startが必要
docker exec -it コンテナ名httpd001 /bin/bash
 apt install mysql-server など対話でコンテナにインスコできる
exit 抜ける

■Docker compose
docker runコマンドの集合体、コンテナ等作って消すだけ(k8sはコンテナ等を管理する)
以前はdocker-composeコマンドで別ツールだったが今は統合済み
フォルダに1つだけdocker-compose.yml
基本はdocker runを実行せずにdocker composeしたい
手順は、1)Docker run方法で一応の検討>2)docker-compose.ymlの記述>3)docker composeコマンドの実行

docker run~~に対するdocker-compose.ymlとdocker composeコマンド の対比
1)docker run --name cnt_wordpress001 -dit --net=net001 -v wordpress001vol2:/var/www/html -p 8080:80 -e WORDPRESS_DB_HOST=mysql001 -e WORDPRESS_DB_NAME=wpdb001 -e WORDPRESS_DB_USER=wpu001 -e WORDPRESS_DB_PASSWORD=my-secret-pw wordpress
2) docker-compose.ymlの記述
version: "3"
services:
  cnt_wordpress001:
    depends_on:
      - cnt_mysql001
    image: wordpress
    networks:
      - net001
    volumes:
      - wordpress001vol2:/var/www/html
    ports:
      - 8080:80
    restart: always
    environment:
      WORDPRESS_DB_HOST=mysql001
      WORDPRESS_DB_NAME=wpdb001
      WORDPRESS_DB_USER=wpu001
      WORDPRESS_DB_PASSWORD=my-secret-pw

  cnt_mysql001:
    image: mysql:5.7
    networks:
      - net001
    volumes:
      - mysql001vol1:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD=my-root-pw
      MYSQL_DATABASE=wpdb001
      MYSQL_USER=wpu001
      MYSQL_PASSWORD=my-secret-pw
networks:
  net001
volumes:
  mysql001vol1:
  wordpress001vol2:

/// restartの設定値(コンテナが停止した時にどうするか?)
no =何もしない
always =必ず再起動する
on-failure =プロセスが0以外のステータスで終了したときは再起動する
unless-stopped =停止していたときは再起動しないがそれ以外は再起動する
 Bashで終了ステータスよる条件分岐 | Codebase Blog
 ※bashは前に実行されたコマンドの終了ステータスは「$?」で取得できるが慣習的にコマンドが正常終了した場合は0を返す

/// その他の定義項目
command =起動時の規定コマンドを上書きする
entrypoint =起動時のENTRYPOINTを上書きする
env_file =環境設定情報のファイルを読み込む
 他 container_name / dns / eternal_links / extra_hosts / logging / network_mode etc.

3)docker compose コマンド
 up=イメージDL、コンテナ/nw/volの作成・起動
 down=コンテナとnwの停止と削除、volとイメージは残る
 stop=削除せず停止のみ

docker compose -f /home/a/docker-compose.yml up -d
docker compose up -d --scale unco001=3 (コンテナ名はput-folder-name_unco001_1, put-folder-name_unco001_2, put-folder-name_unco001_3になる)
 -f ファイルの場所(省略でカレントパス)
 -d バックグラウンド実行
 --build コンテナ開始前にビルド
 --no-build イメージが見つからなくてもビルドしない
 -t コンテナ停止のタイムアウト(デフォ10S)
 --force-recreate 設定やイメージに変更が無くてもコンテナを再生成
 --no-create コンテナが存在していれば再生成しない
 --abort-on-container-exit コンテナが一つでも停止したら全てのコンテナを停止
 --remove-orphans 定義ファイルで定義されていないコンテナを削除
 --scale 同じコンテナを複数作る

docker compose -f /home/a/docker-compose.yml down
 --rmi {all | local} 破棄後にイメージも削除、localの時はimageにカスタムタグが無いイメージのみを削除
 -v volumesに記載されているボリュームを削除、但しexternalの指定を除く
 --remove-orphans 定義ファイルで定義されていないコンテナを削除

docker compose -f /home/a/docker-compose.yml stop
 コンテナを停止

■Docker composeはコンテナ名を勝手につける
docker-compose.yml内は下記の通り、DockerEngine上のコンテナ名は変わるがdocker-compose.yml内のコンテナ名は変わず指定できる
services:
  unco001

  unco002
    depends_on:
      - unco001
    environment:
      WORDPRESS_DB_HOST: unco001

DockerEngine上のコンテナ名は put-folder-name_unco001_1 となる
DockerEngine上で操作したいときは docker ps -a 等で実際の名前を確認して操作する

■コンテナ デバッグ
3部: デバッグノウハウ ( 番外編 )|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)

====================
基本はLinuxの機能を使っている
namespaceで分離し
ファイル構造、ユーザーID、グループID、コマンド、ライブラリなど諸々を
ラップしコンテナ化し(単一の)プロセスとして動く

Dockerがやっている仕事は少ない
区切ってコンテナ
それら仮想ネットワークで繋ぐ
ボリュームの永続化
Dockerfileでイメージからイメージを作成
Docker composeでdocker runを記述
docker execでコンテナを操作
etc.

Posted by funa : 03:46 AM | Web | Comment (0) | Trackback (0)


May 18, 2022

LPIC
Level1 Ver4.0
■システムアーキテクチャ
周辺機器のon/offや起動ドライブ検索順序はBIOS/UEFI
/proc以下のファイルによりカーネルが認識しているデバイスを確認できる
/dev以下にはデバイスファイルがある
USBはホットプラグデバイス
lsusbでUSBデバイスの情報、lspciでpciデバイスの情報を確認できる
modprobeコマンドでデバイスドライバをロード
起動時にカーネルが出すメッセージはdmesgで表示
SysVinitのシステムでは/etc/inittabでデフォルトのランレベル設定
0:停止、1:シングルユーザモード、5:マルチユーザモードGUI、6:再起動
ランレベル移行はinitやtelinit
systemdのシステムはsystemctlでサービス管理
shutdownでシステム停止や再起動

■インスコとパッケージ管理
インスコにはルートパーティション/とスワップ領域が必要
中大規模では/varや/homeと/は別パーティションが良い
/varはログやメールデータ
/homeは各ユーザのホームディレクトリで肥大化しやすい
スワップ領域は物理メモリと同程度から2倍を確保
GRUBのインスコにはgrub-install
GRUB Legacyの設定ファイルは/boot/grub/menu.lst
GRUB 2の設定は/etc/default/grub、grub-mkconfigを実行すると設定ファイル/boot/grub/grub.cfgができる
共有ライブラリはld.soによってリンクされる
実行ファイルが必要とするライブラリはlddで確認
ld.soが参照する/etc/ld.so.cacheは/etc.ld.so.confを元にldconfigで作成
Debianパッケージ管理はdpkgやAPTツールで、apt-get、apt-cache、aptitudeがある
APT設定ファイルは/etc/apt/sources.list
RPMパッケージ管理はrpmやYUM
rpmでパッケージをインスコするには-i、アップグレードには-Uもしくは-F、アンインスコには-eオプション
rmp -qはパッケージ情報の参照
YUMレポジトリ設定は/etc/yum.repos.dディレクトリ以下のファイルで

■GNU
変数名=値 でシェル変数を設定
echo $変数名 で変数の中身を確認できる
unsetで変数を削除
exportでシェル変数を環境変数に
環境変数を一覧 env や printenv
環境変数とシェル変数を一覧 set
環境変数PATHでコマンドの検索パスを定義
複数コマンドを連続実行は;で区切る
直前のコマンドが成功したときのみ次コマンド実行 &&
失敗した時のみ実行は ||
'や"の囲みは文字列として、`の囲みはコマンドと解釈
"や`の囲みの中は変数展開されるが、'ではされない
historyでコマンド履歴表示
manでマニュアル参照、1:ユーザコマンド、5:ファイルfmt、8:システム管理cmd
属性を保持したままコピーは cp -p
移動先で上書きしたい場合は cp -f、あるいは mv -f
ディレクトリ作成で必要な親ディレクトリを作る場合は mkdir -p
サブディレクトリを含めて削除 rm -r
file でファイルの種別を確認できる
シェルでワイルドカードが使える
. 任意1文字
* 直前の文字の0回以上繰り返し
[] いずれか1文字
[a-c] aからcの範囲
[^ab] aとb以外
^ 行頭
$ 行末
\ エスケープ
+ 直前の文字の1回以上の繰り返し
? 直前の文字の0回もしくは1回の繰り返し
| 左右いずれかにマッチ
コマンドの出力を別コマンドの入力化やファイル格納するにはパイプやリダイレクト
tee 標準入力をファイルに格納し同時に標準出力に出す
ファイルの表示・連結は cat
バイナリファイルを8進数法事するには od
テキストファイルの先頭表示 head、末尾表示 tail、-nで行数
tail -f でファイル末尾を継続監視
テキストファイルの列の取り出しや連結 cut や join や paste
trは文字列を置換
uniqは重複する行を1行にまとめる
xargsで標準入力から受け取った文字を引数にし与えられたコマンドを実行
grepやsedで正規表現を使う

■ファイルとプロセスの管理
gzip, bzip2, xy はファイル圧縮
unzip, bunzip2, xz(unxz)はファイル解凍
tar, cpio はアーカイブ作成・展開
chown ファイルやディレクトリの所有者設定
 ユーザは必ずどこかのグループに登録しなければならない
 一般的にはユーザ名と同じグループ名でメイングループとして登録していることが多い
 ユーザがメイン以外で登録しているグループ。複数登録できる
 ファイルやディレクトリの作成時点では所有ユーザ=作成ユーザのメイングループがそのまま所有グループとなる
  所有者をuser2に変更
  chown user2 test.txt
  所有者をuser2にグループをgroup2に変更
  chown user2:group2 test.txt
  :から書くとグループだけ変更
  chown :group2 test.txt
  ファイルのグループの調べ方
  ls -l
chgrp は所有グループ変更
chmod ファイルやディレクトリのアクセス権変更
SUIDやSGID適用のプログラムは実行ユーザに関係なく所有者or所有グループの権限で実行スティッキービットを設定したディレクトリは自分が所有するファイル以外削除不可
アクセス権
 所有者/グループ/その他
 r読み 4
 w書き 3
 x実行 1
 ナシ 0
  アクセス権はファイルは666から、ディレクトリは777からumask値を引いた値
ln でハードリンク、ln -s でシンボリックリンク作成
ps, pstree, pgrep でプロセス参照、top でシステム状況を一定間隔で表示
kill, killall, pkull でプロセス終了・再起動等
1:HUPハングアップ、2:INT割り込みctl+c、9:KILL強制終了、15:TERM終了デフォ、18:CONT再開、19:STOP一時停止
コマンドラインの最後に&でバックグラウンド実行
jobs でシステム上のジョブを確認
ログアウトでもプログラムを実行しつけるには nohup
 nohup python main.py &
 ログアウトしてもバックグラウンド ジョブを継続する方法 (codereading.com)
free でメモリの利用状況を確認
uptime でシステムの平均負荷を確認
nice でプロセスの実行優先度を指定、変更には renice
ナイス値-20-19で実行優先度を指定

■デバイスとLinuxファイルシステム
fdisk, gdisk, parted でパーティション作成
mkfs でファイルシステムを作成
ext2, ext3, ext4ファイルシステムを作成するには mke2fs
mkswap でスワップ領域を作成
df でファイルシステムの利用状況を確認
du でファイルやディレクトリを含めたサイズを確認
fsck, e2fsck でファイルシステムの整合性チェックや修復
ext2, ext3, ext4ファイルシステムのパラメータ設定は tune2fs
mount でファイルシステムのマウント、解除は umount
継続利用や頻繁利用のファイルシステム情報は /etc/fstab に格納
ディスク利用容量の制限はディスククォータを使う、ハードリミット、ソフトリミット、猶予期間を設定できる
find, locate でファイル検索、locateはあらかじめ準備されたDBに基づいて検索
which, whereis でコマンドのフルパスを表示

■シェル、スクリプト、データ管理
コマンドの別名設定は alias、設定解除は unalias
関数の定義はfunction、定義済み関数を表示は declare -f
bashのログイン時に全ユーザで実行される/etc/profile、ユーザ毎は~/.bashrc
条件判定するには test
直前に実行したcmdの戻り値は$?で確認できる、正常終了:0、それ以外はそれ以外の値が多い
条件分岐 if-then-else-fi、case-in-esac
繰り返し for-in-do-done、while-do-done
seq は連続した数値を生成する
read は標準入力から文字列を読み込んで変数に代入する

■ユーザインターフェイスとデスクトップ
Xサーバは入出力管理を担当、Xクライアントはユーザアプリに対応
Xの設定はxorg.confでセクションごとに記述する、セクション:
 ServerLayout=入出力デバイスとスクリーン
 Files=フォントやカラーDBファイルのパス
 InputDevices=キーボードやマウスなど入力装置の設定
 Monitor=モニター設定
 Device=ビデオカードの設定
 Screen=ディスプレイの色深度や画面サイズ設定
Xサーバとクライアントが別コンピュータの場合の設定
 1)Xクライアントで環境変数DISPLAYにXサーバを指定
 2)XサーバでXクライアントからのアクセスを受け付けるよう xhost で設定
xwininfo はウィンドウの情報を表示する
ディスプレイmgrはユーザ認証やシェルの起動で XDM, GDM, KDM, LightDM等
ウィンドウmgrはXの外観で twm, fvwm, enlightenment, Mutter, Fluxbox, Compiz, KWin等
キーボードのアクセシビリティには スティッキーキー、スローキー、バウンスキー、トグルキー、マウスキー等

■システム管理1
ユーザ情報は /etc/passwd に格納
シャドウパスワード利用時はパスワード情報は /etc/shadow に格納
グループ情報は /etc/group に格納
ユーザ情報の追加 useradd
ユーザ情報の削除 userdel
ユーザ情報の変更 usermod
グループ情報の追加 groupadd
グループ情報の削除 groupdel
グループ情報の変更 groupmod
ユーザパスワードの設定 passwd
useradd時は /etc/skel以下がユーザのホームdirにコピーされる
定期的なジョブ実行には cron
cronへのジョブ追加は crontab 分時日月曜日cmdの記述順
 ユーザーを指定してcronを実行 | Codebase Blog
 ログインユーザで設定・実行される(sudo crontab -eでRoot実行という意味)
システムが起動していなかった時のcronジョブは anacron で実行
anacron の設定は /etc/anacrontab
1回限りのジョブ予約は at 日時cmd、確認は atq あるいは at -l
ジョブの削除は atrm あるいは at -d
ロケール確認は locale
文字コードを変換 iconv
タイムゾーンは /usr/share/zoneinfo 以下にあり /etc/localtime にコピーする
システムのタイムゾーンは環境変数 TZ、/etc/timezone に設定する

■システム管理2
システムクロックを設定するには date
ハードウェアクロックは hwclock
NTPサーバに問い合わせシステムクロックを設定するには ntpdate
NTPサーバプロセスは ntpd、設定ファイルはntp.conf
syslogの設定は etc/syslog.conf、ファシリティ、プライオリティに応じたログの出力先を指定
rsyslogの設定は /etc/rsyslog.conf
logger でログの生成ができる
ログローテーションは logrotate、設定は /etc/logrotate.conf
メールサーバMTAには Postfix, sendmail. qmail, exim等
メールアドレスの別名は /etc/aliases で定義し newaliases で有効にする
メールの転送は ~/.forward で設定する
メールキューの状況は mailq で確認
印刷は lpr で行う、 -# オプションで印刷部数
プリントキューの状況確認は lpq
プリントキューの印刷要求を削除するには lprm

■ネットワークの基礎
IPv4は32ビットで8ビットずつを10進数に変換した表記を使う
IPv6は128ビット
サブネットマスクはネットワーク部とホスト部の境界を表す
IPアドレスとサブネットマスクの論理積がネットワークアドレス
プライベートアドレス クラスAは10.0.0.0~10.255.255.255 (10.0.0.0/8)
クラスBは172.16.0.0~172.31.255.255 (172.16.0.0/12)
クラスCは192.168.0.0~192.168.255.255 (192.168.0.0/16)
サービスとポート番号の対応は /etc/services に記載 Well-Known-Port:0-1023
TCP20:FTP(データ)
TCP21:FTP(制御)
TCP22:SSH
TCP23:Telnet
TCP25:SMTP
UDP53:DNS
UDP67:DHCP(サーバ)
UDP68:DHCP(クライアント)
TCP80:HTTP
TCP110:POP3
TCP123:NTP
TCP443:HTTPS
TCP587:SMTP(サブミッションポート)
IMAP overSSL:993
POP3 overSSL:995
ホストと通信ができるか ping
経由するルータ情報は traceroute や tracepath
ホスト名からIPアドレスは dig や host
ホスト名の確認や設定は hostname
ルーティングテーブルの確認や設定は route
ネットワークインターフェイスの設定や動作状況確認は ifconfig
有効化は ifup、無効化は ifdown
/etc/resolv.conf に参照先DNSサーバを設定する
ホスト名とIPアドレスの対応は /etc/hostsファイルに記述
名前解決の順序は /etc/nsswitch.confに設定

■セキュリティ
スーパーサーバ inted や xinetd は他のサーバプログラムに変わって要求を受けサーバプログラムを起動し常駐プロセスを減らすことでシステムリソースの節約をする
xinetd の全体設定は /etc/xinetd.conf、各サービスの設定は /etc/xinetd.d 以下
TCP wrapper等を利用しているアプリケーションの場合 /etc/hosts.allow や /etc/hosts.denyにアクセス制限を設定する
開いているポートを確認するには netstat, lsof, nmap
パスワードの有効期限を設定するには change
/etc/nologinファイルを作成しておくと一般ユーザはログインできない
su で他のユーザになれる
sudo でroot権限の一部を一般ユーザが利用できる
設定は visudo で /etc/sudoers ファイルに記録される
ユーザが利用できるシステムリソースを設定するには ulimit
OpenSSHはユーザ認証以外にホスト認証も行うセキュアな通信を実現
信頼できるホストのホスト鍵は ~/.ssh/known_hosts
公開鍵認証で利用する鍵ペアは ssh-keygen
scp で安全なファイル転送ができる
ssh-agent と ssh-add でパスフレーズを記憶させることができる
gpg で GnuPGの鍵管理やファイルの暗号化・複合ができる

=============
Level2 Ver4.0
■キャパシティプランニング
メモリやスワップの情報は top, free, vmstat
プロセス情報は top, ps, pstree
CPUの平均負荷(直近1分、5分、15分)は top, uptime
vmstat はメモリや仮想メモリの詳細な状態を継続的に監視
iostat はCPUの利用状況とディスクの入出力の情報を継続的に監視
NFSでは nfsiostat、CIFSでは cifsiostat で
sar で様々なシステム統計情報を確認
w でログイン中ユーザとそのプロセス情報を確認
netstat でネットワークの統計情報を確認
lsof で開いているファイルとポートを確認
システム監視ツールには collectd, Nagios, MRTG, Cacti等でWeb IFあり

■Linuxカーネル
カーネルバージョン確認は uname -r や /proc/version や /usr/src/linux/Makefile
カーネルモジュールは /lb/modules/`uname -r` dirにインスコされる
dirのパスは /usr/src/linux/Makefile で設定
カーネルモジュール操作は:
lsmod ロードされているモジュールをリスト表示
insmod モジュールをロード
rmmod モジュールをアンロード
modprobe 依存関係を解決してモジュールをロード、アンロード
depmod モジュールの依存関係情報を更新
modinfo モジュールの情報を表示
modprobe が利用するモジュールの依存関係情報はmodules.depファイルにあり depmod で更新可
カーネルの設定ファイルは .config
カーネル2.6以降は下記手順でカーネル再構築
make config | menuconfig | xconfig | gconfig
make
make modules_install
make install
初期RAMディスクを作成するには mkinitrd や mknitramfs
デバイスファイルは udev が動的に作成する
udev の設定ファイルは /etc/udev/rules.dディレクトリ以下にある
udevadm monitor で udevd をモニタできる
sysctl でカーネル設定を表示更新できる
dmesg で起動時のカーネルメッセージを確認できる
/proc ディレクトリ以下のファイルを通してカーネルが認識しているハードや実行中のプロセスやシステムリソース等の情報が分かる
/proc 以下の情報は lsdev, lspci, lsusb で表示

■システムの起動
BIOS->MBR->ブートローダ->カーネル->initの順で起動
initの設定は /etc/inittab 、書式は ID:ランレベル:action指示子:処理
ランレベルごとの起動スクリプトは /etc/rc.[0-6].dディレクトリにある
デフォルトで起動するサービスは chkconfig や update-rc.d で設定
起動プロンプトでカーネルやinitに渡すパラメータを指定できる
起動時に指定したパラメータは /proc/cmdline で確認できる
grub でGRUBシェルが使える
GRUB Legacyの設定ファイルは /boot/grub/menu.lst
GRUB 2の設定ファイルは /boot/grub/grub.cfg
GRUB 2の設定は /etc/default/grub に記述し update-grub を実行すると /boot/grub/grub.cfgが生成される
LILOの設定ファイルは /etc/lilo.conf
LILOの設定変更後は lilo よりMBRを更新する
SYSLINUX はFATファイルシステムからカーネルを起動する
ISOLINUXはISO09660ファイルシステムからカーネルを起動する
PXEはネットワークブートの規格

■デバイスとファイルシステム
マウント設定は /etc/fstab で行う、デバイス名にはUUIDやラベルも使える
カーネルがサポートしているファイルシステムは /proc/filesystems で確認できる
/etc/mtab には現在マウントしているファイルシステムの情報がある
/etc/mtab と /proc/mounts はほぼ同じ内容
mount -o remount でファイルシステムを再マウント、マウントオプションの変更に利用
tune2fs で ext2/ext3/ext4ファイルシステムの各種パラメータを表示・変更できる
blkid でデバイスのUUIDを確認できる
sync はディスクバッファ領域にあるデータをディスクに書き込む
mkswap でスワップ領域を作成できる
ファイルとしてスワップ領域を用意するには dd で任意のサイズのファイルを作成する
swapon でスワップ領域を有効化、 swapoff で無効化できる
swapon -s か /proc/swaps でスワップ領域を確認できる
ext2ファイルシステムを作成するには mke2fs あるいは mkfs -t ext2
ext3なら mke2fs -j あるいは mkfs -t ext3
ext4なら mkfs -t ext4
XFSファイルシステムを作成するには mkfs.xfs あるいは mkfs -t sfs
CD/DVD-ROMイメージの作成は mkisofs
ファイルシステムの整合性チェックには fsck あるいは e2fsck あるいは xfs_check
S.M.A.R.T.はハードディスク自己診断機能で smartdデーモンが情報収集する
smartctl で S.M.A.R.T.情報を表示
オートマウントの設定は /etc/auto.master とマップファイルで行う

■高度なストレージ管理
RAID0は冗長性が無いが高速
RAID1は冗長性があるがディスク容量は半減
RAID4やRAID5はパリティを使って冗長性を保つ
RAID4はパリティを専用ディスクに保存、RAID5はパリティ情報を分散
madadm でRAIDを構築・管理
/proc/mdstat でRAIDの状態を確認
物理ボリュームを作成するには pvcreate
ボリュームグループを作成するには vgcreate
論理ボリュームを作成するには lvcreate
スナップショットを利用するとアンマウントなしで lvcreate でバックアップができる
hdparm でIDEハードディスクのパラメータを設定
sdparm でSCSI/SATA/USBハードディスクのパラメータを設定
iSCSIストレージを利用するホストをイニシエータ、iSCSIストレージをターゲットと呼ぶiscsiadm はSCSI管理ユーティリティ
iSCSIストレージ内の論理ドライブ番号をLUNという

■ネットワーク
MACアドレスとIPアドレスの対応はARPキャッシュに保存され、arp で参照・設定できる
ネットワーク関連コマンドでは -n オプションで名前解決を抑制できる
tcpdump はNIC上のパケットをダンプ出力する
GUIのパケットキャプチャツールにはWiresharkがある
netstat はネットワークの情報を表示する
ルーティングテーブルは route で設定する
ip は ipconfig, arp, route といったコマンドと同等の操作ができる
nmap でポートスキャンやIPアドレススキャンができる
NIC間でパケット転送を行うには /proc/sys/net/ipv4/ip_forward の値が1である必要がある

■システムメンテナンス
tarボールは tar を利用して作成・展開する
configureスクリプトはシステム環境に応じたMakefileを生成する、多くのオプションの指定ができる
make はMakefileに記述された処理を行う、Makefileには各種ターゲットを設定できる、ターゲットにはinstall や clean などがある
バックアップには、フルバックアップ、差分バックアップ、増分バックアップなどの種類がある
バックアップなどに利用できるコマンドとして tar, cpio, dd, dump, restore, rsync などがある
mt でテープドライブを操作する
テープドライブを表すデバイスファイル /dev/st0 は巻き戻しあり、/dev/nst0 は巻き戻しなし
ネットワークバックアップツールには Amanda, Bacula, BackupPC などがある
ログイン直後に表示するメッセージは /etc/motd に記述する
ログイン時に表示するメッセージは /etc/issue に記述する
ネットワーク経由のログイン時に表示するメッセージは /etc/issue.net に記述する
バッチを適用するコマンドは patch で -R オプションでパッチの適用と取り消しを行う

■DNS
DNSサーバには、BIND, dnsmasq, djbdns, PowerDNSなどがある
DNSクライアントコマンドには、 dig, host, nslookup がある
BIND9は mdc で管理できる
/etc/named.confでは様々なオプションが指定できる
allow-query DNS問い合わせを受け付けるホスト
allow-recursion 再帰的な問い合わせを受け付けるホスト
allow-transfer ゾーン転送を許可するホスト
blackhole 問い合わせを受け付けないホスト
directory ゾーンファイルを格納するディレクトリ
forwarders 問合せの回送先DNSサーバ
forward forwardersの回送方法
max-cache-size 最大キャッシュサイズ
recursion 再帰的問合せを受け付けるかどうか
version バージョン表示
ソーンファイルのレコードは
SOA ゾーンの管理情報
NS ゾーンを管理するネームサーバ
MX メールサーバ
A ホスト名に対応するIPアドレス正引き
AAA ホスト名に対応するIPv6アドレス正引き
CNAME 別名に対応するホスト名
PTR IPアドレスに対応するホスト名逆引き
SOAレコードのメールは@を.に変更して指定する
ゾーンファイル内では@はゾーン名を表す
MXレコードではプリファレンス値が小さいものほど優先度が高くなる
NSレコードやMXレコードには別名を使わない
BIND9では dnssec-keygen でセキュリティ用のカギを作成できる
dnssec-signzone でゾーンに署名を行う

■Webサーバとプロキシサーバ
Apacheのメイン設定ファイルはhttpd.confだがディストリビューションによって異なる
DirectoryIndexディレクティブでインデックスページを定義する
ErrorDocumentディレクティブでエラーページを定義する
Aliasディレクティブでドキュメントルート外のコンテンツを参照できる
CustomLogディレクティブでログファイルを定義する、デフォルトのログファイルはaccess_logである
ErrorLogディレクティブでエラーログファイルを定義する、デフォルトのログファイルはerror_logである
UserDirディレクティブで公開するユーザのホームディレクトリを定義する
MaxClientsディレクティブで最大子プロセス数を指定する
apachectl でApacheを管理できる
基本認証を使ったアクセス制御でユーザとパスワード設定は htpasswd を使う
ダイジェスト認証を使ったアクセス制御でユーザとパスワードを設定するには htdigest を使う
.htaccessファイルでhttpd.confの設定を上書き、httpd.conf内のAllowOverrideディレクティブで上書きを許可する範囲を設定
AccessFileNameディレクティブで外部設定ファイルの名前を定義する
ApacheではIPベースのバーチャルホストと名前ベースのバーチャルホストを利用できる
SSLサーバ証明書はIPアドレスとドメイン名のペアに対して発行される
NginxはオープンソースのWebサーバ、リバースプロキシサーバである
Nginxの設定は nginx.confを中心とした /etc/nginxディレクトリ以下のファイルで行う
Squidの設定ファイルは squid.confであり、aclディレクティブと http_accessディレクティブでアクセス制御を設定する

■ファイル共有
Sambaユーザを作成するには smbpasswd, pdbedit を使う
パスワード変更には smbpasswd
ユーザ認識方法はsmb.conf のsecurityパラメータで指定
Sambaサーバがマスターブラウザになる優先度はOSレベルに基づく
OSレベルはsmb.confのoslevelパラメータで指定
testparm でsmb.confの構文をチェックできる
smbstatus でSambaに接続されているクライアントとオープンされているファイルを確認できる
nmblookup でNetBIOS名やマスターブラウザを照会できる
smbclient を使うとSambaクライアントとして共有リソースを利用できる
Microsoftネットワークの共有リソースをマウントするには smbmount
rpcinfo でRPCサービスの状況を確認できる
exportfs でエクスポート状況を表示したり/etc/exportsの変更を反映させたりできる
NFSサーバでエクスポートしているディレクトリを調べるには showmount を使う

■ネットワーククライアント管理
/etc/dhcpd.confで割り当てるIPアドレスの範囲を指定するには range 192.168.0.0 192.168.0.99; のように記述する
リース中のIPアドレス情報はdhcpd.leasesファイルに記録される
dhcrelayはDHCPリレーエージェントである
PAMの設定ファイルは/etc/pam.dディレクトリに配置されるが/etc/pam.confが使われることもある
PAM設定ファイルの書式は モジュールタイプ コントロール モジュールのパス 引数
requiredとrequisiteコントロールの違いは認証に失敗したときrequiredは同じタイプのモジュールの実行が全て官僚した時点で認証を拒否するのに対し、requisiteはすぐに認証を拒否する
LDAPエントリはLDIF形式でテキストファイルに記述できる
エントリを一意に識別する名前をDN(識別名)という
個々のエントリはいずれかのオブジェクトクラスに属する
ldapadd でLDAPエントリを追加する
ldapsearch でLDAPエントリを検索する
ldapdelete でLDAPエントリを削除する
ldapmodify でLDAPエントリの内容を変更する
ldappasswd でLDAPエントリに設定されるパスワードを変更できる
OpenLDAPサーバの設定ファイルは slapd.conf
slapadd でLDAPデータベースをリストアできる
slapcat で全てのエントリの情報をLDIF形式で出力できる(オフラインバックアップ)
slapindex でLDAPデータベースのインデックスを再構築できる
SSSDは識別サービス・認証サービスとの通信を管理しキャッシュをするデーモンである

■メールサービス
SMTPサーバには Postfix, exim, sendmailなどがある
メールボックスには1ユーザ1ファイルに格納されるmbox形式と1メール1ファイルに格納されるMaildir形式がある
Postfixのメイン設定ファイルはmain.cfである
postconf で設定パラメータを表示できる
postqueue -p でメールキューを確認できる
postqueue -f でメールキュー内のメール配送を直ちに試みる
/etc/aliases にはメールのエイリアスを設定する。別名指定方法は次の通り
 user[,user..] ユーザのメールに配信
 /path ファイルに追加
 |command コマンドの標準入力へ
 user@domain メールアドレスへ転送
 :include:/path 外部ファイルを読み込む
/etc/aliasesの変更を反映させるには newaliases を実行する
procmail の設定ファイルは/etc/procmailrcと~/.procmailrc
/etc/procmailrcと~/.procmailrcのレシピの書式は次の通り
 :0 [フラグ] [:ロックファイル]
 * 条件式
 アクション
Dovecotの設定は/etc/dovecot.confで行う

■システムセキュリティ
iptables でパケットフィルタリングを設定する
proftpd.confは ProFTPD の設定ファイルである
vsftpd.confは vsftpd の設定ファイルである
pure-ftpd.confは Pure-FTPD の設定ファイルである
/etc/ftpusers にはFTPログインアクセスを許可しないユーザを記述する
信頼できるホストのホスト鍵は ~/.ssh/known_hostsに格納される
公開鍵認証で利用する鍵ペアは ssh-keygen で生成する
~/.ssh/authorized_keysファイルには接続するユーザの公開鍵を登録する
scp で安全なファイル転送ができる
ssh-agent と ssh-add でパスフレーズを記憶させることができる
Snort はネットワークベースのIDSツール
Tripwireはファイルの改ざんを検知するIDSツール
OpenVASは脆弱性のチェックを行うツール
Fail2banはログから判断して攻撃を遮断するツール
nmap はポートスキャンを行うツール
開いているポートは netstat, lsof, nmap, fuser などのコマンドで調査
OpenVPNにはルーティング接続とブリッジ接続がある
OpenVPNサーバにはCA証明書、サーバ証明書、サーバ秘密鍵、DHパラメータを配置する
OpenVPNクライアントにはCA証明書、クライアント証明書、クライアント秘密鍵を配置する
OpenVPNサーバはUDPポート1194番を使用する

=============
SELinuxは事後防衛的な手段だ。もしサーバに侵入されたとしても、被害を最小限に抑えるための仕組みとなっている。そのため侵入事態を防衛できるものではない
redhat系

この辺は抑えておきたい、昔は無かっただけだと思うが
 LVM(logical volume manager)
 シェル変数をexportして環境変数
 ルートログイン不可、警告文表示
 プロセスの優先順位ナイス値
 バックグラウンドジョブでログアウトしても実行
 スーパーサーバ、TCPwrapperでプロセス省略
 パケットフィルタリング、ルーティングテーブル(nat/forward)
 SSHポート転送(popやftpでも可)

ver5でもそれほど変化がないのでは、systemdの強化辺りか?gitやdockerをカバーしたように思ったが?

=============
/etc
 各種の設定ファイルの保存場所 hostsとか.confとか
 バイナリファイルを置かないこと
 /opt用の設定ファイルを置くために/etc/optを設けること
/opt
 アプリパッケージ
/usr
 各ユーザー共通利用のプログラムやライブラリが置かれるunix shared resouces
/var
 ログやキャッシュ、再起動しても残り続ける
 /etc/logrotate.confで1週間4世代等を設定
/sbin
 システム管理者用bin

/etc/fstab マウント情報が記載されている
mount -a マウント情報を書き直すと全てマウントしなおす

■/varを別ディスクにしたい
デバイスを追加しフォーマット
fstabにマウントとディレクトリの紐づけを追記(新ディスクと/var)
マウントやリブート前に既存ファイルの移動対処
 tmpDirを作成
 mount (type) (device) (mountDir:tmpDir)
 cp -a 旧 tmpDir
リブート

Posted by funa : 03:20 AM | Web | Comment (0) | Trackback (0)


Navi: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19  >
PhotoGallery


TWITTER
Search

Mobile
QR for cellphone  QR for smart phone
For mobile click here
For smart phone click here
Popular Page
#1Web
#2Hiace 200
#3Gadget
#4The beginning of CSSレイアウト
#5Column
#6Web font test
#7Ora Ora Ora Ora Ora
#8Wifi cam
#9みたらし団子
#10Arcade Controller
#11G Suite
#12PC SPEC 2012.8
#13Javascript
#14REMIX DTM DAW - Acid
#15RSS Radio
#16Optimost
#17通話SIM
#18Attachment
#19Summer time blues
#20Enigma
#21Git
#22Warning!! Page Expired.
#23Speaker
#24Darwinian Theory Of Evolution
#25AV首相
#26htaccess mod_rewite
#27/// BANGBOO BLOG /// From 2016-01-01 To 2016-01-31
#28竹書房
#29F☆ck CSS
#30Automobile Inspection
#31No ID
#32Win7 / Win10 Insco
#33Speaker
#34Arcade Controller
#35Agile
#36G Suite
#37Personal Information Privacy Act
#38Europe
#39Warning!! Page Expired.
#40GoogleMap Moblile
#41CSS Selectors
#42MySQL DB Database
#43Ant
#44☆od damnit
#45Teeth Teeth
#46Itinerary with a eurail pass
#47PHP Developer
#48Affiliate
#49/// BANGBOO BLOG /// From 2019-01-01 To 2019-01-31
#50/// BANGBOO BLOG /// From 2019-09-01 To 2019-09-30
#51/// BANGBOO BLOG /// On 2020-03-01
#52/// BANGBOO BLOG /// On 2020-04-01
#53Windows env tips
#54恐慌からの脱出方法
#55MARUTAI
#56A Rainbow Between Clouds‏
#57ER
#58PDF in cellphone with microSD
#59DJ
#60ICOCA
#61Departures
#62Update your home page
#63CSS Grid
#64恐慌からの脱出方法
#65ハチロクカフェ
#66/// BANGBOO BLOG /// On 2016-03-31
#67/// BANGBOO BLOG /// From 2017-02-01 To 2017-02-28
#68/// BANGBOO BLOG /// From 2019-07-01 To 2019-07-31
#69/// BANGBOO BLOG /// From 2019-10-01 To 2019-10-31
#70/// BANGBOO BLOG /// On 2020-01-21
#71Bike
#72Where Hiphop lives!!
#73The team that always wins
#74Tora Tora Tora
#75Blog Ping
#76無料ストレージ
#77jQuery - write less, do more.
#78Adobe Premire6.0 (Guru R.I.P.)
#79PC SPEC 2007.7
#80Google Sitemap
#81Information privacy & antispam law
#82Wifi security camera with solar panel & small battery
#83Hope get back to normal
#84Vice versa
#85ハイエースのメンテ
#86Camoufla
#87α7Ⅱ
#88Jack up Hiace
#89Fucking tire
#90Big D
#914 Pole Plug
#925-year-old shit
#93Emancipation Proclamation
#94Windows env tips
#95Meritocracy
#96Focus zone
#97Raspberry Pi
#98Mind Control
#99Interview
#100Branding Excellent
Category
Recent Entry
Trackback
Comment
Archive
<     March 2024     >
Sun Mon Tue Wed Thi Fri Sat
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Link