見出し画像

IT未経験アラサーの学習記録~Linux標準教科書メモ書き 第10章~

皆様こんにちは。Kです。
自己紹介はこちらにまとめているので、お時間がある方はぜひご覧ください。
ここ数日間、Linux標準教科書(Ver.3.0.4)を用いてハンズオン学習に取り組んでいるので、学習記録兼ノートのメモ書きとして記します。

教材
Linux標準教科書 PDF版(無料)

章末テスト解答参考
Yukishi log. 勝手ながらご紹介させていただきました。

学習方法
①教科書を読む ②ハンズオンで挙動を確認 ③新しい知識、教科書外で調べた内容をnoteにまとめる。必要があれば、Lucidchartで図を作成する。

学習環境
Windows PowerShell に Ubuntu-20.04 を入れました。

筆者ITスキル
AWS CLF-01、AWS SAA-03取得済み。
Web技術・ネットワーク・セキュリティ・クラウドの知識については、「イラスト図解式 この一冊で~」シリーズを1周読んだのみ。


第10章 ネットワークの設定と管理(p169~p195)

10.1.1 ローカルエリアネットワークとワイドエリアネットワーク

LAN Local Area Network:閉じられた場所のコンピュータを、LANケーブルで相互接続する。
WAN
 Wide Area Network:LAN同士を通信回線で結ぶ。

10.1.2

プロトコル:コンピュータ同士のデータ送受信手順。
TCP/IP
:イーサネット規格で利用されるプロトコル。
IP Internet Protocol
:パケット(送り先情報とデータ)をpingコマンドで送信し、データを受けた機器から返答があるかを確認できる。

【書式】ping ターゲット ※「Ctrl」+Cで停止

ターゲット:ドメイン名またはIPアドレス
【オプション】
-c:pingを発行する回数を指定。

10.1.3 TCPとUDPとは

TCP Transmission Control Protocol:IPでデータを送信する。データ受信時に破損などのエラーを確認し、エラーがあれば再送を依頼する。
UDP User Datagram Protocol:エラー確認や再送依頼はしないが高速。信頼性よりも速度重視の通信に適する。


10.2 IPアドレス

データの発送元と発送先の場所を表す。IPv4とIPv6が使用される。
グローバルIPアドレスはNIC Networc Information Center(日本ではJPNIC)に管理されている。

Linux標準教科(Ver.3.0.4) p172

8 bit (binary 0 or 1)= 1 byte
IPv4は4byte

Qiitaで分かりやすいまとめがあった。

10.2.1 IPアドレスのクラス

IPアドレス = ネットワーク部(ネットワークアドレス) + ホスト部(ホストアドレス)
ネットワーク部はサブネットマスクが0以外の部分(ビットが立っている)。長さによってクラスがある。
ホスト部はサブネットマスクが0の部分(ビットが立っていない)。
ホスト部が全て0→自身のアドレス。
     全て1→ブロードキャストアドレス。

Linux標準教科(Ver.3.0.4) p173

10.2.2 プライベートIPアドレス

ローカルネットワーク内で自由に利用可能なIPアドレス。

Linux標準教科(Ver.3.0.4) p173

10.2.3 サブネットマスク

IPアドレスのネットワーク部とホスト部を識別するための数値。通信先ホストが同一ネットワーク内にいるかいないかの判断に利用される。
下記の図で青色がネットワーク部、緑色がホスト部。
(ネットマスクとサブネットマスクの表記をわざと混ぜるなら同一の意味ってどこかに書いてほしい)


サブネットマスク = 255.255.255.0 のとき
binaryで書くと   = 11111111 11111111 11111111 00000000
1が24個並ぶ(後述するCIDR表記で /24

サブネットマスク = 255.255.255.128 のとき
binaryで書くと   = 11111111 11111111 11111111 10000000
1が25個並ぶ(後述するCIDR表記で /25

Linux標準教科(Ver.3.0.4) p174

10.2.4 CIDR表記

Classless Inter-Domain Routing ⇔ Class Full
クラス分けの時代は、3台しかコンピュータを使用しない場合でもCクラスに割り当てられ、残りのIPアドレスが無駄になっていた。クラスよりCIDRで柔軟にネットワークを区切るほうが、IPアドレスの枯渇を防ぐことが可能。(参考:インフラエンジニアになりたくて


192.168.0.1/28
– IP アドレスの先頭から28ビットをネットワーク部として、残りの4ビットをホスト部とした設定です。クラスCのサブセットの扱いで、それぞれ下記となります。
 IP アドレス:192.168.0.1
ネットマスク:255.255.255.240
11111111 11111111 11111111 11110000)
ネットワーク:192.168.0.0
ブロードキャスト:192.168.0.15
アドレスの数:16 個


10.3 経路の確認

LAN同士、WAN同士を繋げる場合は間にゲートウェイ(ルータ)が接続されている。インターネット上で、データはいくつものネットワークを中継されるため、いくつものゲートウェイを通って送受信される。

Linux標準教科(Ver.3.0.4) p175

自分が利用するコンピュータから通信先までに仲介するゲートウェイを確認する。ゲートウェイから返答が戻ってくる時間を表示する。

【書式】traceroute [オプション] ターゲット
    tracepath [オプション]
 ターゲット

tracepath は traceroute と異なり、スーパーユーザ権限を必要とせず、UDPportを使い、オプションでMTUを確認できる。

MTU Maximum Transmission Unit:通信用に細切れにしたデータの大きさ制限で「これくらいの大きさの細切れデータなら通れるよ(送れるよ)」な最大値のこと。機器ごとに設定されている。(参考 「分かりそうで」「分からない」~


10.4.1 ネットワークインターフェース

物理的ネットワークインターフェース:NIC Network Interface Card。現在はコントロールチップに統合されている。
仮想ネットワークインターフェース:プログラムが内部的に使う、ループバックインターフェース(コンピュータが自身とのみ通信可能)。仮想マシンやVPNを作るときに使われる。

10.4.2 IP アドレスを確認

ネットワークインターフェースに設定されたIP アドレスとサブネットマスクを表示

【書式】
ip a[ddress] [インターフェース]

結果中の lo がループバック、 ens などは物理的に存在するイーサネットネットワークインターフェース。

nmcli [インターフェース]
Network Manager Command - Line
コマンドラインでネットワークの設定ができるインターフェイス。オプション無しで実行すると、現在の設定を表示。
nmtui
Network Manager Text User Interface
会話型(疑似GUI)でネットワークの設定ができるインターフェイス

参考 すなりんブログ

ip コマンド
ネットワークデバイスやルーティング、ポリシーなどの表示と変更を行う

【書式】
ip [オプション]  オブジェクト [サブコマンド]

@IT

10.4.3 IP アドレスの設定ファイル

IPアドレスの設定は2つの設定ファイルに記述され、ブート(起動)時にそれらによって設定される。

①ネットワーク設定(network)ファイル
ネットワーク使用の有無やホスト名・ゲートウェイ等のネットワークの基本的な内容の設定をする。

Linux標準教科(Ver.3.0.4) p179

②インターフェイス設定( ifcfg )ファイル
IP・ネットマスク・デフォルトゲートウェイ等を設定する、各インターフェイスごとのネットワーク設定をする。書き換え後、systemctl コマンドにrestart オプションを付けて再起動する。

Linux標準教科(Ver.3.0.4) p178

MACアドレス:ハードウェアに設定されているユニークな識別番号

BOOTPROTO 以降の設定は、3つから指定。(参考 IT求人ナビ
none(あるいはstatic):IPアドレスが固定などの場合に使用し、インターフェイス起動時にプロトコルを使用しなくなる
dhcp:DHCPを利用する場合に指定
bootp:BOOTstrap Protcol を使用する場合に指定

DHCP:ネットワーク機器に IP アドレスを自動で割振りと配信(設定)する。機器1台1台のIPアドレス管理が不要となる。機能が提供された環境が必要。


10.5 ルーティング

データが流れる方向(ルーティング)を表示

【書式】ip route [オプション] 出力結果の意味(Qiita
    ss [オプション]

ss コマンド
Socket Statistics TCP ポートや UDP ポートの通信状態を確認

【オプション】
-v
:バージョン情報
-a
:全てのソケットを表示
-n
:サービス名に変換せずに表示
-r
:ホスト名を名前解決
-p
:ソケットを使用しているプロセスID を表示
-s:集約したソケット情報
-4:IPv4 のソケットのみ表示. 他のオプションと併用.
-6:IPv6 のソケットのみ表示. 他のオプションと併用.
-t:TCP のソケットのみ表示
-u:UDP のソケットのみ表示
-e
:詳細なソケット情報を表示

ソケット:実行されるプロセス間のデータ通信の終点に使われるインターフェースのこと。TCP/IPの機能を利用するときに使う標準的なAPIで、ポート番号はそこで使われる識別子。

10.5.1 ルーティングの変更

管理者権限が必要であるため挙動未確認
ip route コマンド

【書式】
ip [オプション] r[oute]{コマンド | help}

ip route {add 又は del}ターゲット/サブネット via ゲートウェイアドレス dev インタフェース

-net, -host が指定不可である代わりに CIDR 表記で指定。ターゲット/32 だと-host と同様にホストを指定でき、ターゲット /xx(32 以外)だと -net と同様にネットワークを指定可能。

route コマンド

【書式】
route add [-net 又は -host]ターゲット[netmask サブネットマスク][インタフェース]

ターゲットには、-net を指定した場合にはネットワークアドレスを、-host を指定した場合にはホストアドレスを宛先として設定。


10.6 DNS を使う設定

DNS (名前解決)は hosts ファイルや DNS サーバへの問い合わせで可能。確認先の優先順位は nsswitch.conf ファイルで設定。(参考 「分かりそう」で~

hosts ファイルはホスト名とIPアドレスの関係を静的に定義する。

DNS サーバのアドレス情報は resolv.conf ファイルに登録されている。NetworkManager で管理される。

10.6.1 名前(FQDN)

Fully Qualified Domain Name
IPアドレスと名前の対応を調べる。

【書式】nslookpu ターゲット
ターゲットは IP アドレス又は名前

10.7 ポート番号

TCP/IP で通信する場合、IP アドレスに加えてポート番号を使用。
一般的なサービスとポート番号の対応はservices ファイルに書かれている。

Linux標準教科(Ver.3.0.4) p186

telnet:ネットワークを介して2つのホスト間で通信を行うためのプロトコル。 Telnetを使うと、遠隔地にあるホストを、仮想端末ソフトを利用して操作することが可能。

10.8 サービスの確認

前述した ss コマンドでオプションを利用して可能。


10.9 ネットワークセキュリティの設定

TCP Wrapper:ネットワークを通じて提供されるサービスを管理し、通信履歴(ログ)を保存するソフトウェア。サービスがTCP Wrapperの機能を提供するライブラリ(プログラム)を利用している必要がある。
hosts.deny ファイル及びhosts.allow ファイルで制御する。

Red Hat系ディストリビューションでは廃止された。
通信はファイヤーウォル → TCP Wrapper → xinetd (スーパーサーバー)の順でフィルタリングされる。攻撃者がファイヤウォールを突破し侵入してしまっても、TCP Wrapperを設定していれば内部からの攻撃を弾ける。
iptablesはカーネル内で動作する、パケットレベルのフィルタ。

10.9.1 ファイアウォール(firewalld)の設定

iptables との同時設定は不可能。ゾーンと呼ばれる単位ごとに設定が可能。

状態を確認する

【書式】firewall-cmd [オプション]
    systemctl

firewalld-cmd コマンドでは、起動中のみ有効な一時的な設定と、永続的な設定が可能。

systemctl コマンド:systemd をコントロールし、サービスの起動・停止や自動起動の設定、サービス状態の確認などをする。
systemd:システムを起動するときに様々なプログラムを動かす元のプログラムのこと。 また、systemdのような元のプログラムのことをinitプロセスと呼ぶ。
コンピューターの電源を入れることによりハードウェアを動かすことのできるソフトウェア(BIOS)が起動し、起動中のBIOSがブートローダーというプログラムを呼び出す。ブートローダーがカーネルを起動させると、その後でinitプロセスが動作するようになる。(参考 Desig NET

sshd:ssh のデーモン
デーモン:UNIX 系 OS における常駐プログラムの呼び名


章一覧

第1章 Linux とは
第2章 Linux のインストール(環境構築不要のため未実施)
第3章 基本的なコマンド
第4章 正規表現とパイプ
第5章 基本的なコマンド2
第6章 viエディタ
第7章 管理者の仕事
第8章 ユーザ権限とアクセス権
第9章 シェルスクリプト
第10章 ネットワークの設定と管理
第11章 プロセス管理
第12章 ファイル管理

この記事が気に入ったらサポートをしてみませんか?