LPIC201対策 - ネットワーク


# この記事について

Linux Level 2 取得を目標としている筆者です。
先日 Level 1 を取得しましたが、短期詰め込みの暗記がしんどかったので、Level2はじっくり時間をかけていいから、ちゃんと理解してやっていきたい。

一方で、暗記も暗記で重要。

ということで、理解を深めるためにと、暗記しやすいように、両方の目的で、覚えたことを Qiita に整理してまとめながら受験対策することにしました。

ネットワークは苦手中の苦手なのでがんばりたい。

# この分野で覚えること

## /etc/networks

ネットワーク名とネットワークアドレスの対応関係を記述する設定ファイル。
ネットワーク名に対する名前解決設定を行う。

```:/etc/networks の書式
default 0.0.0.0
Bumon1  192.168.1.0
Bumon2  192.168.2.0
```

## /etc/hosts

ホスト名と IP アドレスの対応関係を記述する設定ファイル。

```:/etc/hosts の書式
# IPアドレス ホスト名 [ホスト名...]
127.0.0.1 localhost.localdomain localhost
192.168.1.1 s.localdomain s
```

:::note
`ホスト名 [ホスト名...]` 部分で指定されたホスト名を Web ブラウザのアドレスバーなどに入力すると、該当のIPアドレスに変換してくれる
:::

## /etc/nsswitch.conf

ホスト名とIPアドレスの名前解決の **方法や順番（優先順位）** を定義するファイル。
nsswitch は Name Service Switch の略。

```:/etc/nsswitch.conf の書式
passwd: ldap db files
shadow: ldap db files
group: ldap db files
hosts: files dns
```

`hosts: files dns` 部分がIPアドレスの解決の順序。
まずローカルファイル（/etc/hostsなど）を見に行って解決を試み、失敗したらDNSを見に行く。

## /etc/hosts.allow

```:/etc/hosts.allow の書式
httpd: 192.168.0.
xxx: 192.168.0.0/255.255.255.0
```

:::note warn
CIDR表記は使えないらしい！！！！！！！！
:::

## ディストリビューションに固有の設定ファイル

### Red Hat 系

|意味|ファイルパス|
|:-|:-|
|全体設定|/etc/sysconfig/network|
|インターフェースごとの設定|/etc/sysconfig/network-scripts/ifcfg-インターフェース名[0-9]|

```:/etc/sysconfig/network の書式
NETWORKING=yes
NETWORKING_IPV6_no  # IPv6 の利用を有効化するか
HOSTNAME=localhost. localdomain
DOMAINNAME=localadmin
```

### Debian系

|意味|ファイルパス|
|:-|:-|
|全体設定|/etc/network/interfaces|

## arp コマンド

ARPキャッシュ（IPアドレスとMACアドレスの対応関係を保持するテーブル）に関するコマンド。

|オプション|意味|
|:-|:-|
|-a|表示対象の **ホスト名(IPアドレスなど)** を指定|
|-d|**削除**対象の**ホスト名**を指定|
|-i|表示対象の **インターフェース(eth0など)** を指定|
|-n|ホスト名をIPアドレスのまま表示|
|-s|IPとMACアドレスの対応を指定しキャッシュに追加|
|-f|-sの内容を記述した**ファイル**を指定してキャッシュに追加|

## SSID と ESSID

SSID - WiFi の接続に必要な WiFi の ID
ESSID - Extended SSID - 無線LANのID

## iwコマンド

```:書式
iw オブジェクト コマンド
```

オブジェクトでデバイスやインターフェースを指定する。各オブジェクトに応じたコマンドがある。

### dev インターフェース名

```:書式
iw dev インターフェース名 コマンド
```

|コマンド|意味|
|:-|:-|
|link|無線の接続状況を表示|
|scan|接続可能な無線アクセスポイントをスキャン|
|connect|ESSIDを指定して接続|
|disconnect|ESSIDを指定して切断|

### phy デバイス

```:書式
iw pny デバイス名 コマンド
iw pny#デバイス番号 コマンド
```

|コマンド|意味|
|:-|:-|
|info|使用可能なデバイスの情報等を表示|
|interface add|インターフェースを追加|
|interface del|インターフェースを削除|

## 無線LANのリンク品質、信号強度の確認

`iwconfig` または `iwlist` コマンドで行う。

両コマンドの結果の一部である、以下の箇所で確認する。

```
Quality=xx/xx Signal level=-xx dBm
```

## iwconfig　コマンドのオプション

|コマンド|意味|
|:-|:-|
|essid|ESSIDを指定|
|key|WEPキーを指定 （`s:`に続けてパスワードを指定することも可）|

## セカンダリアドレスの設定方法

```:ifconfig を使う方法
ifconfig eth:0 192.168.2.1/24
```

:::note
eth:0 部分がセカンダリのエイリアス
:::

```:ipコマンドを使う方法
ip addr add 192.168.2.1/24 dev eth0 [label eth0:0]
```

:::note
エイリアスを指定したい場合は label 以下で指定する
:::

## netstat と ss 

ss は netstat の後継。

### 共通のオプション

| オプション | 意味 |
|:-|:-|
|-a|すべてのソケットを表示|
|-l|接続待ちのソケットを表示|
|-n|名前解決をせず数値で表示<br>（ホストをIPで表示するだけでなく、サービス名もポートで表示する）|
|-t|TCPソケットを表示|
|-u|UDPソケットを表示|

### 意味の異なるオプション

| オプション | netstat | ss |
|:-|:-|:-|
|-c|情報を毎秒更新|ー|
|-i|インターフェースの統計を表示|内部TCPの情報を表示|
|-r|ルーティングテーブルを表示|名前解決を実行|
|-s|プロトコルごとにパケット送受信の情報を表示|ソケットの使用状況のサマリーを表示|


## pingコマンド

ICMPパケットを送って疎通確認をするコマンド

| オプション | 意味 |
|:-|:-|
|-c|送信回数を指定|
|-i|送信間隔を指定|
|-n|名前解決を行わずIPアドレスのまま表示|
|-s|パケットデータのサイズを指定|

## routeコマンド

```:削除の書式
route del [-host|-net] 宛先アドレス [gw ゲートウェイのIPアドレス]
```

## tcpdumpコマンド

| オプション | 意味 |
|:-|:-|
|-i|監視対象のインターフェースを指定|
|-n|名前解決を行わずIPアドレスのまま表示|
|-X|16進数+ASCIIの表でパケット内容を表示|

## hosts.allow ファイルの書式

```:書式と例
# 書式
# サービス名:ホスト名 :ALLOW or DENY

ALL : 192.168.10.0/255.255.255.0 : ALLOW
ALL : ALL : DENY

```

## nmap　コマンド

ネットワークのスキャンを行う。

```:書式
nmap [スキャンタイプ] [オプション] 対象
```

### nmapのスキャンタイプ

| スキャンタイプ | 意味 |
|:-|:-|
|-sT|TCPスキャン|
|-sU|UDPスキャン|
|-sP|Pingスキャン|

### nmapのオプション

| オプション | 意味 |
|:-|:-|
|-p|対象ポート範囲を指定|
|ーF|有名ポートを対象にした高速スキャン|
|-0|対象ホストのOS識別を試みる|

### nmapの対象

- ホスト名
- IPアドレス
- CIDR表記
- ハイフンを使った範囲表記
    - 192.168.0.-255.1-254

## その他の暗記事項

|暗記事項|意味|
|:-|:-|
|セカンダリアドレス|ネットワークインターフェースに割り当てられたアドレスのうち、プライマリ以外のもの（２つめだけでなく、３つめ、４つめ・・・もセカンダリ）|


# 以上！

勉強が進んだら適宜追記・修正などしていきます。