学習記録 〜ネットワーク基礎 Linuxファイルシステム〜 

・IT(ネットワーク)の学習記録

 

Linuxファイルシステムの構造

 ディレクトリ(≒フォルダ)がツリー構造(階層構造)になっている。

・パス→ディレクトリ・ファイルの場所や今自分がいる場所を示すもの。

 パスを示すコマンド:pwd

絶対パス相対パス

 絶対パスディレクトリの一番上からどう移動していくのかを示す

 相対パス→今いるディレクトリからどれぐらい移動するのかを示す。

 ディレクトリ移動のコマンド:cd

 cd .. → 一つ前のディレクトリに移動する

 cd ~ → ホームディレクトリ(開始時に位置するディレクトリ)に移動する

 

・拡張子とは = どのファイルをどのアプリケーションで起動するかを示すもの。

 →ファイルの種類を定めるものではない。

 ※拡張子の例).docx/.png/.xlsx等

 

Linuxの基本的なディレクトリ構成

 etc : 背定ファイルが入っている

 mnt : 外付けハードウェア

 tmp : 一時的(temporary)なファイルを保存する→一般的には再起動すると消える

 usr : 各ユーザが共通して利用するライブラリのデータ(全員が使うプログラム)

       例)ls(リストを表示する)→ /bin/ls

         pwd(print working directory)→ /bin/pwd

 bin : プログラムの実行ファイル≒システムを管理する上での基本コマンドが入っ

       ている

       例)/user/bin → usr版のコマンドが保存されている

 boot : 起動ファイルが入っている

 /(ルート) : ルートディレクトリ。全ての始まり。

 var : ログやキャッシュなど、可変的なシステムデータ。

 

・標準入力、標準出力とは

 入力 → Linux上に文字を入力すること

 出力 → Linux上に文字が出力されること、exエラーが表示されたら標準エラー出力

 stdin = 標準入力

 stdout = 標準出力

 stderr = 標準エラー出力

学習記録 〜ネットワーク基礎 HTML〜 

・IT(ネットワーク)の学習記録

 

・HTMLとは

 HyperText Markup Language

 訪れたウェブサイトの構成をブラウザに対して伝えるために使うマークアップ言語。 

 プログラミング言語ではない。

 全てをタグで囲う(要素名を開き山括弧と閉じ山括弧で囲う)。

 例)<p> MY name is Ken </p>

   <p> → opentag

   </p> → closetag

      → content

   太字 → element

 

・構成

 HTMLにはheadタグとbodyタグがある。

 例)

  <html>

    <head>

     〜

    </head>

    <body>

     〜

    </body>

  </html>

  <head>タグ → メタ情報を記述する。

  メタ情報:そのサイトがどういうものかという情報

       開発者、SEO(Search Engine Optimaization)等

  SEO:このサイトが何をしてしているかをサーチエンジンに教える→headタグの中

     にmetaタグを記述する。

  <meta charset = "utf-8"> → 文字コード

  <body>タグ → サイト内部=コンテンツそのもの・内容

 

・使用頻度の高いタグ

 div : img : p : span : article : main : footer : header : a : input 等

 

・使用できない特殊文字 → タグで使用してしまっている。

 「<」= &lt;「>」= &gt;「"」= &quot;「'」= &apos「&」 = & amp;

 

・classとid

 要素(タグ)にclassまたはidで名前をつけることで、セレクタとして属性値(名前)

 を指定でき、cssで属性値毎に装飾をすることができる。

 class属性:属性値の前にドット( . )をつけることで、CSSを指定できる。

        Webページ内で、同じclass属性の名前を何度も使用することが出来る。

 id属性:属性血の前にシャープ( # )をつけることで、CSSを指定できる。

     webページ内で、同じid属性の名前が重複してはならない。

 

・見出しとパラグラフ

 <p></p> →文章を示す。 

 <h1></h1> → タイトル≒物語の題名

 <h2></h2> → 各節題

  <h1>&<h2>はデフォルトで太文字になる&フォントが決まっている。

 ※なぜ<h1><h2>と<p>を分けるのか→<h1><h2>をサーチエンジン側で優先的に拾う

  太字強調では<strong>、斜体強調では<em>はSEOに効果があるが、同じ強調でも

  太字の<b>と斜体の<i>はSEOに効果がない。

  斜体強調の場合

 

・リスト:箇条書きと番号付きの箇条書き

 <ul>または<ol>

  <li>緑茶</li>

  <li>紅茶</li>

 </ul>または</ol>

 <ul>の場合

 ・緑茶

 ・紅茶

 <ol>の場合

 ①緑茶

 ②紅茶

 

・<br>と<hr>

 <br> → <p>タグの文章の中で改行する

 <hr> → <p>タグの文章の中で線を引いて区切る

学習記録 〜ネットワーク基礎 HTTPS〜 

・IT(ネットワーク)の学習記録

 

HTTPS(HyperText Transfer Protocol Secure)

 HTTPによる通信をより安全に行うためのプロトコルおよびURIスキームである。

 厳密にはプロトコルではなく、SSL/TLSプロトコルによって提供される安全な接続の

 上でHTTP通信を行うことをHTTPSと呼んでいる。

 HTTPSでは公開鍵暗号方式によって通信を行う。

 

公開鍵暗号方式

 秘密鍵と公開鍵の2種類の鍵を使用して通信を行う通信方式。

 例)

 クライアントA(以下A)は秘密鍵・公開鍵の2種類を作成する。

 クライアントB(以下B)はAの公開鍵で文章を暗号化し、AはAの秘密鍵で復号する。

 !これでは B→Aに対する一方向の通信しかできない!

    ↓  そ  ↓  こ  ↓  で  ↓

 BはBの公開鍵をAの公開鍵で暗号化しAへ送流。

 AはAの秘密鍵で復号しBの公開鍵を入手し、双方が共通鍵暗号方式で通信できる様に

 なる。

 

学習記録 〜ネットワーク基礎 サイバーセキュリティ知識〜 

・IT(ネットワーク)の学習記録

 

・パスワードクラック

 データ分析によってパスワードを不正に特定する

SQLインジェクション

 RDB(Relational DataBase)に不正にアクセスする攻撃

 ※SQL=関係データベース(Relational DataBase Management System)を扱うため

      のデータベース言語

クロスサイトスクリプティング

 セッションIDを盗むことでアカウントを乗っ取り、個人情報をハックする攻撃

クロスサイトリクエストフォージェリ

 WEBアプリケーションに存在する脆弱性、もしくはその脆弱性を利用した攻撃方法。

 攻撃用Webページにユーザを誘導し、ユーザのアクセスをもって攻撃用Webページ内

 に予め用意されている不正なリクエストが攻撃対象サーバに送信される。攻撃対象サ

 ーバ上のウェブアプリケーションは、不正なリクエストを処理してしまう。

フォレンジック

 技術的な証拠を探すこと(収集→解析→分析→報告)

・pwn(ポウン)

 サーバのルート権限を乗っ取ること。

 ※ルート権限=管理者権限(root/admin)

学習記録 〜ネットワーク基礎 WEBサイトの知識〜 

・IT(ネットワーク)の学習記録

 

・WEBサイトを見るには

 クライアント(PC)がwebサーバにHTTPリクエストを送信し、webサーバがクライ

 アント(PC)にHTTPレスポンスを返すことで、WEBサイトは閲覧可能となる。

  https://www.google.com(/index.html)→()については通常は省略されている。

 

・WEBサイトのシステム

 ・静的WEBシステム

  →サーバに予め用意された(html)ファイルがリクエストに応じて返されるWEBシス

   テム。

 ・動的WEBシステム

  →サーバにあるフレームワークがリクエストに応じて(動的にhtml)ファイルを作成

   して返すWEBシステム。

 WEBサイトはブラウザにファイルをダウンロードすることで閲覧が可能になる。

 ※ 動物の画像を検索してダウンロードすることとアマゾンにアクセスすることは、本

  質的には同じ行為である。

  →どちらもブラウザ上で編集が可能である。

 ・どうしてWEBサイトの閲覧は「ダウンロード」と感じないのか

  ①サイトの構成物(画像)が動いたりする→高速でダウンロードしている≒動いてい

   る様に見える。

  ②ダウンロードする度に表示されるものが変わる→プログラム(フレームワーク

   が都度ダウンロードさせるものを変えている。

 

SDK(Software Development Kit)

 →ソフトウェア技術者が使用する開発ツールのセット(便利なプログラム集)

  ≒ライブラリ

 

・概念的MVC

 →WEBサイトを作る時(フレームワークを使う時)に、絶対に知っておかなければなら

  ない概念。ソフトウェアアーキテクチャの一つ。

  ・フレームワークアプリケーションソフトウェア等の実装に必要となる一般的な

   機能や定型コードを、ライブラリとして予め用意したもの=便利なヤツ。

   例)flask(python)/Ruby on Rails(Ruby)/

     DJango(python)/Cakephp(php)/laravel(php)

  ・MVC(Model View Controller)

   M(model)→ データベースにアクセスして何か(検索・追加・削除)すること

   V(view) → htmlを作るところ

   C(controller)→ modelとviewをつなぐ役割

 ・WEBサイト閲覧の流れとMVC

  ①クライアント(PC)が知りたい情報(例えば商品No.100は何)を入力→フォーム送信

  ②入力された情報がControllerに送られる

  ③ControllerがModelにNo.100の情報を問い合わせる

  ④ModelがデータベースにNo.100の情報を問い合わせる

  ⑤データベースからModelに回答がくる

  ⑥ModelがControllerに、ControllerがViewに回答を届ける

  ⑦Viewは届いた回答をhtmlにしてクライアントに送る → ブラウザで閲覧

学習記録 〜ネットワーク基礎 Linuxコマンド〜 

・IT(ネットワーク)の学習記録

 

 ・Linuxコマンド

  free → メモリの使用量と空き容量を表示する

  free -h → メモリの使用量と空き容量を単位をつけて表示する

  tree → ディレクトリをツリー構造で表示する

  ps aux → 全てのプロセスを表示する

  ps aux | python → Pythonで動いているプロセスを表示する

   ※ | (グレップ)→ 検索機能。〜で抽出する。

  df -h → どのファイルシステムにどのハードディスクがマウントされているか表示

   ※ハードディスク → HDD/SSD/USBメモリ等(物理的なもの)

   ※マウント → コンピュータに周辺機器を認識させること

  top → 入力時点でどのプログラムが動いていてどれくらいCPUを占めているか表示

  curl ifconfig.me → 自分のグローバルIPアドレスを表示する

   ※curl → HTTPリクエストを出す

  ping → 疎通確認(ピンを送ると表現する)

   ※man ping → ピンのマニュアル(英字)を参照できる

  ifconfig → ネットワーク環境の状態確認設定コマンド

  traceroute~~ → ~~にアクセスするためにどの様なルートを通るのか(どのルータ

          を経由するのか)を表示

  hops ~~ → いくつのルータを経由したのかを表示

   ※ネットワークの世界では、距離が近い=ホップ数が小さい

    一般的には、ホップ数が大きくなるほど物理的な距離が遠くなる。

  netstat -l → Listen(待機・受付中)ポートの表示

  netstat -r → ルーティングテーブル(routing table)表示

  arpARPテーブルの表記

     ※  ARPテーブル → イーサネット通信のために用いられる、IPアドレスMAC

      アドレスの対応表

  sudu iptables -L → ファイアウォールを編集する(管理者権限)

  hostname → ホストネームを検索する

  nslookup(ドメイン) → ドメインからIPアドレスを検索する

  nslookup(IPアドレス) → IPアドレスからドメインを検索する

学習記録 〜ネットワーク基礎 HTML&CSSとは 〜

IT(ネットワーク)の学習記録

 

・HTML&CSSとは

 ・HTML(HyperText Markup Lounguage)

  Webページを作成するために開発された言語。

  HyperText(ハイパーリンクを埋め込む事ができるテキスト)を役割毎にMarkup

  (目印をつける)して、構造を定義するための言語。

  HTMLタグを組み合わせて作成する。

 ・CSS(Cascading Style Sheet)

  Webページのスタイルを指定するための言語。

  HTMLで作られたwebページの構造や要素をどの様に装飾するかを指定するための

  言語。

   ※WEBページ(Webサイト)とは

    インターネットを介してブラウザで表示されるコンテンツ

    必要なツール

    ・コンピュータ:テキストエディタwebブラウザ/画像編集ソフト

    ・テキストエディタVScodeVisual Studio Code)/AtomVim

    ・webブラウザ:Crome/FirefoxSafari

 

  HTML/CSSは、ブラウザに搭載された「HTMLレンダリングエンジン」によって描

  画される。

  家でイメージしてみると・・・

  HTML ≒ 土台・骨組み・壁

  CSS ≒ 塗装・デザイン・家具・インテリア

 

  HTML要素の中身は指定のタグで挟む必要がある→全てのタグに意味がある。

  例)<p> my cat is black </p>

  ・絶対に必要なHTMLタグ

   <html>”ルートエレメント” → 絶対にこのタグから始まり、このタグで終わる。

   <head> → ページの情報を格納する場所。

   <body> → 実際にページを表示させるところ。

  ・その他、タグについて

   <meta charset = "utf-8"> → 文字コード

   要素のネスト → 要素の中に別の要素を入れる事ができる。

   例)<p> my cat is <strong> black </strong> </p>

   空要素 → 「img src = ~」等、終了タグがない場合もある。

 

・webサイトで大事なこと=ユーザの目に留まること

 作成の流れ:コンテンツの中身が重要→デザインを決めて→HTML&CSSで実装。