見出し画像

334.1 ネットワークハーデニング


課題 334: ネットワークセキュリティ
334.1 ネットワークハーデニング

LPIC303の試験範囲である主題331~335まであるうちの「334: ネットワークセキュリティ」から「334.1 ネットワークハーデニング」についてのまとめ

  • 総重量:4

  • 説明:
    一般的な脅威に対して、ネットワークをセキュアに設定できる。これには、特定のノードとプロトコルについて、ネットワークトラフィックを解析が含まれている。

  • 主要な知識範囲:

    • ワイヤレスネットワークのセキュリティ機構を理解する。

    • ネットワークノードの認証のため、FreeRADIUSを設定する。

    • ネットワークトラフィックの分析・フィルタ・統計取得のため、Wiresharkやtcpdumpを利用する。

    • ワイヤレスネットワークを解析し、ワイヤレスネットワークのトラフィックを取得するために、Kismetを利用する。

    • 不正なRA(rogue router advertisement: ルータアドバタイズメント)とDHCPメッセージの確認と取り扱い。

    • aircrack-ngとbettercapの知識

  • 重要なファイル、用語、ユーティリティ:

    • radiusd

    • radmin

    • radtest

    • radclient

    • radlast

    • radwho

    • radiusd.conf

    • /etc/raddb/*

    • wireshark

    • tshark

    • tcpdump

    • kismet

    • ndpmon


ワイヤレスネットワークのセキュリティ機構を理解する

暗号化方式

  • WEP
    認証方式と一体

  • TKIP(Temporal Key Integrity Protocol)

  • CCMP

暗号化アルゴリズム

  • AES(Advanced Encryption Standard)

  • RC4

認証方式

  • WPA2-PSK

  • WPA-PSK

  • WEP
    暗号化方式と一体

  • PSK

  • IEEE802.1x

  • Web認証

  • EAP-TLS

  • PEAP(EAP-MSCHAP v2)

  • PEAP(EAP-TLS)


FreeRADIUSを設定する

FreeRadiusとは

  • オープンソースのRADIUSサーバー

Radiusとは

  • Remote Authentication Dial In User Service

  • AAA(Authentication(認証)、Authorization(認可)、Accounting(課金)の仕組みを提供するサーバー

  • 1812/UDPを使う

  • ネットワーク機器のログイン情報を一元管理できる

  • WiFiのユーザー認証にも使われる

用語

  • radiusユーザー/Supplicant
    radiusサーバーにあるユーザー情報で認証したいユーザー
    設定ファイルは "users"

  • radiusクライアント/Authenticator
    NAS(Network Access Server)
    radiusユーザーの認証要求を受け付けてradiusサーバに転送する
    設定ファイルは "clients.conf"

  • radiusサーバー/AuthenticationServer
    radiusプロトコルを使って認証するサーバー
    設定ファイルは "radiusd.conf"

インストール

  • RockyLinux9の場合

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# dnf install freeradius
[root@lpic303-rocky34 ~]# dnf install freeradius-utils
[root@lpic303-rocky34 ~]#
  • Ubuntu22.04の場合

root@lpic303-ubuntu35:~#
root@lpic303-ubuntu35:~# apt install freeradius
root@lpic303-ubuntu35:~# apt install freeradius-utils
root@lpic303-ubuntu35:~# 

設定ファイルの場所

RockyLinux9は "/etc/raddb"
Ubuntu22.04は "/etc/freeradius/3.0"

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# cd /etc/raddb/
[root@lpic303-rocky34 raddb]#
[root@lpic303-rocky34 raddb]# ls -l
合計 128
-rw-r-----. 1 root radiusd 20807  125 08:32 README.rst
drwxrwx---. 2 root radiusd   167  130 21:12 certs
-rw-r-----. 1 root radiusd  7476  125 08:32 clients.conf
-rw-r--r--. 1 root radiusd  1440  125 08:32 dictionary
lrwxrwxrwx. 1 root radiusd    30  125 08:32 hints -> ./mods-config/preprocess/hints
lrwxrwxrwx. 1 root radiusd    35  125 08:32 huntgroups -> ./mods-config/preprocess/huntgroups
drwxr-x---. 2 root radiusd  4096  130 21:12 mods-available
drwxr-x---. 6 root radiusd    85  130 21:12 mods-config
drwxr-x---. 2 root radiusd  4096  130 21:12 mods-enabled
-rw-r-----. 1 root radiusd    52  125 08:32 panic.gdb
drwxr-x---. 2 root radiusd   160  130 21:12 policy.d
-rw-r-----. 1 root radiusd 27990  125 08:32 proxy.conf
-rw-r-----. 1 root radiusd 30586  125 08:32 radiusd.conf
drwxr-x---. 2 root radiusd  4096  130 21:12 sites-available
drwxr-x---. 2 root radiusd    41  130 21:12 sites-enabled
-rw-r-----. 1 root radiusd  3470  125 08:32 templates.conf
-rw-r-----. 1 root radiusd  8536  125 08:32 trigger.conf
lrwxrwxrwx. 1 root radiusd    29  125 08:32 users -> ./mods-config/files/authorize
[root@lpic303-rocky34 raddb]#

設定ファイル:radiusd.conf

  • localstatedir = /var

  • logdir = ${localstatedir}/log/radius

  • db_dir = ${localstatedir}/lib/radiusd

  • log { file = ${logdir}/radius.log }

  • port = 1812

  • max_requests = 

  • max_request_time = 

  • cleanup_delay = 

設定ファイル:clients.conf

  • ipaddr = <IPアドレス>

  • secret = <パスワード>

  • shortname = <IPアドレスのホスト名または別名>

client localhost {
    ipaddr = 127.0.0.1
    secret = testing123
}

設定ファイル:users

user001 Cleartext-Password := "user002password"
user002 Cleartext-Password := "user002password"

コマンド

  • radiusd
    radiusデーモン

  • radmin
    管理コマンド

  • radtest
    radiusサーバーに対してテストをする

  • radclient
    radiusサーバーに対してテストをする

  • radlast
    NASに最近ログインしたユーザー一覧

  • radwho
    NASにログイン中のユーザー一覧

参考


Wiresharkやtcpdumpを利用する

wireshark

GUIのパケットキャプチャツール

  • フィルタ

    • [ src | dst ] host <IPアドレス>

    • [ src | dst ] net <ネットワークアドレス/ネットマスク>

    • [ tcp | udp ] [src | sdt ] port <ポート番号>

    • portrange <開始ポート>-<終了ポート>

  • フィルタ比較演算子

    • A eq B, A == B

    • A gt B, A > B

    • A lt B, A < B

    • A ge B, A >= B

    • A le B, A <= B

    • A && B, A and B

    • A || B, A or B

    • not

tshark

Wiresharkのコマンド版

  • オプション

    • -i | --interface <capture interface>

    • -r | --read-file <infile>
      キャプチャファイルを読み込む

    • -w <outfile>
      キャプチャをファイルに出力する

    • -f <capture filter>
      キャプチャフィルタ

    • -V
      詳細表示

tcpdump

コマンドラインのパケットキャプチャツール

  • オプション

    • -B buffer_size
      --buffer-size=buffer_size

    • -i interface
      --interface=interface

    • -n
      ホストの名前解決をしない

    • -nn
      プロトコルとポート番号の名前解決をしない

    • -v, -vv, -vvv
      詳細表示

    • -r file
      キャプチャファイルを読み込む

    • -w file
      キャプチャをファイルに出力する



Kismetを利用する

Kismetとは

Kismet - Wi-Fi, Bluetooth, RF, and more

インストール

  • RockyLinux 9

[root@lpic303-rocky34 ~]# 
[root@lpic303-rocky34 ~]# dnf install \
make automake gcc gcc-c++ kernel-devel git \
libwebsockets-devel pkg-config zlib-devel libnl3-devel \
libcap-devel libpcap-devel NetworkManager-libnm-devel \
libdwarf libdwarf-devel elfutils-devel libsqlite3x-devel \
protobuf-devel protobuf-c-devel protobuf-compiler \
protobuf-c-compiler lm_sensors-devel libusb-devel fftw-devel mosquitto-devel
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# git clone https://www.kismetwireless.net/git/kismet.gi
[root@lpic303-rocky34 ~]# cd kismet/
[root@lpic303-rocky34 kismet]# ./configure
[root@lpic303-rocky34 kismet]# make
  • Ubuntu 22.04

root@lpic303-ubuntu35:~# apt install \
build-essential git libwebsockets-dev pkg-config \
zlib1g-dev libnl-3-dev libnl-genl-3-dev libcap-dev libpcap-dev \
libnm-dev libdw-dev libsqlite3-dev libprotobuf-dev libprotobuf-c-dev \
protobuf-compiler protobuf-c-compiler libsensors4-dev libusb-1.0-0-dev \
python3 python3-setuptools python3-protobuf python3-requests \
python3-numpy python3-serial python3-usb python3-dev python3-websockets \
librtlsdr0 libubertooth-dev libbtbb-dev libmosquitto-dev
root@lpic303-ubuntu35:~#
root@lpic303-ubuntu35:~# git clone https://www.kismetwireless.net/git/kismet.git
root@lpic303-ubuntu35:~# cd kismet/
root@lpic303-ubuntu35:~/kismet# ./configure
root@lpic303-ubuntu35:~/kismet# make

不正なRAとDHCPメッセージの確認と取り扱い

RA

  • router advertisement

  • IPv6のアドレス割当を自動化する仕組み
    IPアドレスとゲートウェイが配布される。

  • IPv6端末からの要求で配布されるもの と、
    IPv6ルーターが自発的に配布されるもの がある

  • DHCPv6とは異なる

不正RA

  • 管理者が意図していないRA

  • ネットワーク全体に波及するので影響が大きい

  • デフォルトゲートウェイが書き換わってしまうと、ルーターを超えるような通信ができなくなったり、盗聴されてしまう可能性がある

  • RAの量が多いとDoS攻撃にもなる

ndpmon

  • IPv6 Neighbor Discovery Protocol Monitor

  • 不正なRAを検知するツール

参考


aircrack-ngとbettercapの知識

aircrack-ng

https://www.aircrack-ng.org/

bettercap

https://www.bettercap.org/

参考


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