NetWorkに関するドキュメント
ネットワークについて詳しくなりましょう 今回は仮想環境でやりますが実機環境と大して変わらないのでそのまま参照できます
必須コマンド・設定チートシート(完全版)
[manコマンドで参照できる主なマニュアル一覧]
man smb.conf # Sambaの設定ファイル全般
man testparm # Samba設定ファイルの検証
man smbd # Sambaデーモン
man smbpasswd # Sambaユーザー管理
man net # Samba管理コマンド
man share # 共有設定キーワード
man sshd # SSHデーモン
man sshd_config # SSH設定ファイル
man ssh-keygen # SSH鍵生成
man systemctl # サービス管理
man useradd # ユーザー追加
man groupadd # グループ追加
man chpasswd # パスワード一括設定
man chage # アカウント有効期限
man quota # ディスククオータ
man setquota # クオータ設定
man fstab # マウント設定
man nano # テキストエディタ
man dig # DNS問い合わせ
man host # 名前解決
man ping # 疎通確認
man ping6 # IPv6疎通確認
man traceroute # 経路確認
man tcpdump # パケットキャプチャ
man ss # ソケット状態
man netstat # ポート状態
man journalctl # ログ確認
[主要サービスの基本設定例]
Squid(Webプロキシサーバー)
インストール:
apt install squid
設定ファイル:
nano /etc/squid/squid.conf
基本設定例:
http_port 3128
acl localnet src 192.168.0.0/16
http_access allow localnet
http_access deny all
cache_mem 128 MB
maximum_object_size_in_memory 512 KB
access_log /var/log/squid/access.log
サービス管理:
systemctl restart squid
systemctl status squid
manコマンド:
man squid
man squid.conf
tftpd-hpa(TFTPサーバー)
インストール:
apt install tftpd-hpa
設定ファイル:
nano /etc/default/tftpd-hpa
基本設定例:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
ディレクトリ作成:
mkdir -p /srv/tftp
chown tftp:tftp /srv/tftp
サービス管理:
systemctl restart tftpd-hpa
systemctl status tftpd-hpa
manコマンド:
man tftpd-hpa
man tftpd
ルータ設定 (Cisco IOS)
基本コマンド
enable # 特 権モード:通常モードから特権EXECモードに移行する
configure terminal # 設定モード:グローバルコンフィギュレーションモードに入る
copy running-config startup-config # 設定保存:現在の設定を不揮発性メモリに保存
show running-config # 現在の設定確認:実行中の設定を表示する
show ip interface brief # インターフェース状態確認:全インターフェースの状態を簡潔に表示
ターミナル環境設定(資料 1.1.2 必須)
# DNS検索無効化:コマンド誤入力時にDNS検索を試みるのを防止する
# これにより、コマンド入力ミスをした時の応答時間が短縮される
no ip domain-lookup
# タイムゾーン設定:ルータの時計を日本標準時(UTC+9時間)に設定する
# ログや時刻同期などで正確な現地時間を表示するために必要
clock timezone JST 9
# コンソール回線の設定:コンソールポート(物理的な管理ポート)の設定を開始
line console 0
# 自動ログアウト無効化:無操作時のセッション切断をなくす(0分0秒=無効)
# 競技中に作業が中断されないようにするため
exec-timeout 0 0
# More機能無効化:長い出力時の「--More--」プロンプト表示をなくす
# 大量の設定を表示する際にスムーズにスクロールするため
terminal length 0
# 表示割り込み同期:コマンド入力中にメッセージが割り込んだ場合、
# 入力中のテキストを保持し、メッセージの後に再表示する
logging synchronous
# 特権モードアクセス許可:コンソールログイン時に自動的に特権モードに入る
# 毎回enableコマンドを入力する手間を省く
privilege level 15
PPPoE設定(資料 1.4.2 必須)
# R-Gnm側の設定
# Dialerインターフェースの設定:論理的なダイヤルアップインターフェースを作成
interface Dialer1
# IPアドレスをISPから自動取得する設定
ip address negotiated
# MTUサイズ設定:PPPoEでは通常イーサネットMTU(1500)から8バイト減らす必要がある
ip mtu 1492
# PPPカプセル化:データをPPPフレームに格納する方式を指定
encapsulation ppp
# ダイヤラプール番号:物理インターフェースとの関連付けに使用
dialer pool 1
# CHAP認証を使用:ISPがCHAP認証方式を要求するため必要
ppp authentication chap
# CHAP認証のユーザー名(資料1.4.2の指定通り)
ppp chap hostname ppp-user
# CHAP認証のパスワード(資料1.4.2の指定通り)
ppp chap password R6pass
# 物理インターフェースの設定:実際のネットワークケーブルが接続されるポート
interface GigabitEthernet0/0
# PPPoE機能の有効化:このインターフェースでPPPoEを使用可能にする
pppoe enable
# 上記で定義したダイヤラプール番号と関連付け
pppoe-client dial-pool-number 1
経路制御・NAT設定
# デフォルト経路の設定(資料 1.2.1, 1.3.1, 1.4.1)
# デフォルトルート:宛先不明パケットの転送先を指定。インターネット接続に必須
ip route 0.0.0.0 0.0.0.0 [ネクストホップIP] # IPv4のデフォルトルート設定
ipv6 route ::/0 [ネクストホップIPv6] # IPv6のデフォルトルート設定
# 静的NAT設定(資料 1.2.2)
# 1対1の固定変換:特定の内部IPを固定の外部IPにマッピング
# Webサーバなど、外部から接続が必要なサーバに使用
ip nat inside source static [内部IP] [外 部IP]
# 動的NAT設定(資料 1.4.3)
# 多対1のPAT(ポートアドレス変換):内部ネットワーク全体を1つのグローバルIPで外部接続
# overload:ポート番号を利用して複数の内部IPを1つの外部IPで共有する設定
ip nat inside source list [ACL番号] interface [インターフェース] overload
# どの内部ネットワークをNAT対象にするかを指定するACL
access-list [ACL番号] permit [内部ネットワーク] [ワイルドカードマスク]
# インターフェース設定
interface GigabitEthernet0/0
ip nat outside # 外部ネットワークに面するインターフェース
interface GigabitEthernet0/1
ip nat inside # 内部ネットワークに面するインターフェース
DHCPサーバー・リレー設定
# DHCPリレー設定(資料 1.3.2)
# DHCPリレーエージェント:異なるサブネット間でDHCP要求を転送する機能
# サブネットごとにDHCPサーバーを置く必要がなく、中央集中管理が可能になる
interface GigabitEthernet0/1
# クライアントからのDHCP要求をDHCPサーバーに転送する設定
# ブロードキャストをユニキャストに変換して転送する
ip helper-address [DHCPサーバーIP]
# DHCPサーバー設定(資料 1.4.4)
# IPアドレスプールの作成:DHCPで配布するIP範囲とオプション情報を定義
ip dhcp pool [プール名]
# このプールが適用されるネットワークアドレス範囲
network [ネットワーク] [サブネットマスク]
# クライアントに通知するデフォルトゲートウェイ
# クライアントがローカルネットワーク外と通信するために必要
default-router [デフォルトゲートウェイIP]
# クライアントに通知するDNSサーバー
# 名前解決を行うために必要
dns-server [DNSサーバーIP]
# IPアドレスのリース期間設定
# この時間が過ぎるとクライアントは再度IPを要求する必要がある
lease [日数] [時間] [分]
# 除外アドレス設定
# DHCPで自動割当しないIPアドレス範囲を指定
# 静的に割り当てたいサーバーなどのIPを保護するために使用
ip dhcp excluded-address [開始IP] [終了IP]
アクセス制御(ACL)
# IPv4アクセス制御(資料 1.2.3)
# 名前付きの拡張ACL作成:標準ACLより詳細な制御が可能(ポートやプロトコルも指定可能)
ip access-list extended [名前]
# 確立済みのTCP接続のみ許可:戻りトラフィックを許可する設定
# 内部から開始された接続の応答のみ許可(ステートフルフィルタリング)
permit tcp [送信元ネット] [ワイルドカード] [宛先ネット] [ワイルドカード] established
# DNSトラフィック許可:UDPポート53(DNS)の通信を許可
# 名前解決に必要なDNSサーバーへの問い合わせを可能にする
permit udp [送信元ネット] [ワイルドカード] [宛先ネット] [ワイルドカード] eq 53
# Webトラフィック許可:TCPポート80(HTTP)の通信を許可
# Webサイトの閲覧を可能にする
permit tcp [送信元ネット] [ワイルドカード] [宛先ネット] [ワイルドカード] eq 80
# メールトラフ ィック許可:TCPポート25(SMTP)の通信を許可
# メール送信を可能にする
permit tcp [送信元ネット] [ワイルドカード] [宛先ネット] [ワイルドカード] eq 25
# Ping許可:ICMP echo(Ping)の通信を許可
# ネットワーク疎通確認のためのPingを可能にする
permit icmp [送信元ネット] [ワイルドカード] [宛先ネット] [ワイルドカード] echo
# 暗黙の拒否を明示的に記述:上記のルールに一致しないすべてのトラフィックを拒否
# セキュリティ強化のため、許可されていないすべてのトラフィックを明示的に拒否
deny ip any any
# インターフェース適用
interface GigabitEthernet0/0
# 作成したACLをインターフェースの入力方向(外部からの流入)に適用
ip access-group [名前] in
# IPv6アクセス制御(資料 1.2.4)
# IPv6用のACL作成:IPv6トラフィックをフィルタリング
ipv6 access-list [名前]
# IPv4と同様に確立済みTCP接続を許可
permit tcp any established
# IPv6でのDNS通信を許可
permit udp any any eq 53
# IPv6でのWeb通信を許可
permit tcp any any eq 80
# IPv6でのPing(ICMPv6 echo-request)を許可
permit icmp any any echo-request # ping (Echo Request)
permit icmp any any echo-reply # ping応答 (Echo Reply)
permit icmp any any neighbor-solicitation # 近接ノード要請 (Neighbor Solicitation)
permit icmp any any neighbor-advertisement # 近接ノード広告 (Neighbor Advertisement)
# IPv6の他のすべてのトラフィックを拒否
deny ipv6 any any
# インターフェース適用
interface GigabitEthernet0/0
# IPv6のACLをインターフェースの入力方向に適用
ipv6 traffic-filter [名前] in