メインコンテンツまでスキップ

事前準備手順書

本ドキュメントでは、競技課題で「既に設定済み」「既に構築済み」とされている環境について、その構築方法をまとめています。


1. ネットワーク環境

1.1 仮想ネットワーク構成

必要な仮想ネットワーク:

  • ISPネットワーク(仮想インターネットエリア)
  • 東京事業所 DMZ
  • 東京事業所 Internal
  • 香川事業所1 Internal
  • 香川事業所2 Internal
  • 大阪事業所 DMZ
  • 大阪事業所 Internal1
  • 大阪事業所 Internal2

1.2 IPアドレス設計

別紙表1、表2に基づく設計済み


2. ルータISP(採点対象外)

2.1 基本設定

hostname ISP
enable secret cisco
line console 0
password cisco
login
exit

no ip domain-lookup
clock timezone JST 9

2.2 インタフェース設定

表1「ルータ接続、IPアドレス」に基づく設定:

! ISP側インタフェース(非公開)
interface GigabitEthernet0/0
ip address 201.10.0.1 255.255.255.248
ipv6 address 2001:DB8:3:1::FF/64
no shutdown
exit

! R-Tky接続用
! 上記Gi0/0で対応

! R-Kgw1接続用
! 上記Gi0/0で対応(IPv6)

! R-Kgw2接続用(PPPoE)
! BBA設定が必要

! R-Osk接続用
interface GigabitEthernet0/1
ip address 201.10.0.17 255.255.255.248
ipv6 address 2001:DB8:4:1::FF/64
no shutdown
exit

2.3 PPPoEサーバ設定(R-Kgw2用)

! VPDNグループ設定
vpdn enable

vpdn-group PPPoE
accept-dialin
protocol pppoe
virtual-template 1
exit

! バーチャルテンプレート設定
interface Virtual-Template1
ip unnumbered GigabitEthernet0/2
peer default ip address pool PPPoE_POOL
ppp authentication chap
exit

! ローカルユーザ認証
username ppp-user password R7pass

! IPアドレスプール
ip local pool PPPoE_POOL 201.10.0.18 201.10.0.20

! 物理インタフェース(R-Kgw2接続側)
interface GigabitEthernet0/2
ip address 201.10.0.21 255.255.255.248
pppoe enable
no shutdown
exit

3. ルータR-Osk(採点対象外、大阪事業所)

3.1 基本設定

hostname R-Osk
enable secret cisco
line console 0
password cisco
login
exit

no ip domain-lookup
clock timezone JST 9

3.2 インタフェース設定

! Gi0/0 - ISP接続
interface GigabitEthernet0/0
ip address 201.10.0.18 255.255.255.248
ipv6 address 2001:DB8:4:1::1/64
no shutdown
exit

! Gi0/1 - osv1, osv2接続 (DMZ)
interface GigabitEthernet0/1
ip address 10.200.0.254 255.255.255.0
ipv6 address 2001:DB8:4:100::FF/64
no shutdown
exit

! Gi0/2 - osv3接続 (Internal1)
interface GigabitEthernet0/2
ip address 192.168.1.254 255.255.255.0
no shutdown
exit

! Gi0/3 - o-client接続 (Internal2)
interface GigabitEthernet0/3
ip address 192.168.2.254 255.255.255.0
no shutdown
exit

3.3 ルーティング設定

! デフォルトルート
ip route 0.0.0.0 0.0.0.0 201.10.0.17
ipv6 route ::/0 2001:DB8:4:1::FF

3.4 NAT設定

! osv1の静的NAT
ip nat inside source static 10.200.0.1 201.10.0.19

! osv2の静的NAT
ip nat inside source static 10.200.0.2 201.10.0.20

! インタフェースへのNAT適用
interface GigabitEthernet0/0
ip nat outside
exit

interface GigabitEthernet0/1
ip nat inside
exit

interface GigabitEthernet0/2
ip nat inside
exit

interface GigabitEthernet0/3
ip nat inside
exit

3.5 DHCPリレー設定

! Gi0/3(Internal2)からosv3へのDHCPリレー
interface GigabitEthernet0/3
ip helper-address 192.168.1.1
exit

4. サーバsv(仮想インターネットエリア、採点対象外)

4.1 OS・基本設定

  • OS: Linux(Debian/Ubuntu系推奨)
  • IPアドレス設定:
    • IPv4: 200.99.1.1
    • IPv6: 2001:DB8:1:1::1
    • ゲートウェイ: ISPルータ

4.2 認証局設定

OpenSSL CA構築

# ルート証明書生成
mkdir -p /etc/ssl/CA
cd /etc/ssl/CA

# プライベートキー生成
openssl genrsa -out ca-key.pem 4096

# ルート証明書生成
openssl req -new -x509 -days 3650 -key ca-key.pem -out cacert.crt \
-subj "/C=JP/ST=Tokyo/L=Tokyo/O=itnetsys/CN=CA"

# サーバ証明書生成(secret.osaka-skills.jp用)
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr \
-subj "/C=JP/ST=Osaka/L=Osaka/O=osaka-skills/CN=secret.osaka-skills.jp"

openssl x509 -req -in server.csr -CA cacert.crt -CAkey ca-key.pem \
-CAcreateserial -out secret.osaka-skills.jp.crt -days 3650

# サーバ証明書生成(secret.itnetsys.org用)
openssl genrsa -out server2.key 2048
openssl req -new -key server2.key -out server2.csr \
-subj "/C=JP/ST=Tokyo/L=Tokyo/O=itnetsys/CN=secret.itnetsys.org"

openssl x509 -req -in server2.csr -CA cacert.crt -CAkey ca-key.pem \
-CAcreateserial -out secret.itnetsys.org.crt -days 3650

4.3 DNSサービス(BIND9)

パッケージインストール

apt update
apt install -y bind9

設定ファイル

/etc/bind/named.conf.options:

options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { any; };
listen-on { any; };
listen-on-v6 { any; };
dnssec-validation no;
};

/etc/bind/named.conf.local:

zone "itnetsys.org" {
type master;
file "/etc/bind/zones/db.itnetsys.org";
};

zone "game.org" {
type master;
file "/etc/bind/zones/db.game.org";
};

ゾーンファイル作成

/etc/bind/zones/db.itnetsys.org:

$TTL    604800
@ IN SOA sv.itnetsys.org. admin.itnetsys.org. (
2025020201
604800
86400
2419200
604800 )
;
@ IN NS sv.itnetsys.org.
@ IN MX 10 sv.itnetsys.org.

sv IN A 200.99.1.1
sv IN AAAA 2001:DB8:1:1::1

www IN A 200.99.1.1
www6 IN AAAA 2001:DB8:1:1::1
secret IN A 200.99.1.1

/etc/bind/zones/db.game.org:

$TTL    604800
@ IN SOA sv.itnetsys.org. admin.itnetsys.org. (
2025020201
604800
86400
2419200
604800 )
;
@ IN NS sv.itnetsys.org.
www IN A 200.99.1.1
systemctl restart bind9

4.4 Webサービス(Apache/Nginx)

Nginxインストールと設定

apt install -y nginx

/etc/nginx/sites-available/itnetsys:

# http://www.itnetsys.org/
server {
listen 80;
server_name www.itnetsys.org;
root /var/www/itnetsys;
index index.html;
}

# https://secret.itnetsys.org/
server {
listen 443 ssl;
server_name secret.itnetsys.org;

ssl_certificate /etc/ssl/CA/secret.itnetsys.org.crt;
ssl_certificate_key /etc/ssl/CA/server2.key;

root /var/www/secret;
index index.html;
}

# http://www.game.org/
server {
listen 80;
server_name www.game.org;
root /var/www/game;
index index.html;
}

Webコンテンツ作成

mkdir -p /var/www/itnetsys/CA
mkdir -p /var/www/secret
mkdir -p /var/www/game
mkdir -p /var/www/itnetsys/osaka

# CA証明書配置
cp /etc/ssl/CA/cacert.crt /var/www/itnetsys/CA/

# 大阪用証明書配置
cp /etc/ssl/CA/secret.osaka-skills.jp.crt /var/www/itnetsys/osaka/
cp /etc/ssl/CA/server.key /var/www/itnetsys/osaka/

# コンテンツ作成
echo "Welcome to itnetsys.org" > /var/www/itnetsys/index.html
echo "Secret Site" > /var/www/secret/index.html
echo "Game Site" > /var/www/game/index.html

# サイト有効化
ln -s /etc/nginx/sites-available/itnetsys /etc/nginx/sites-enabled/
systemctl restart nginx

4.5 メールサービス(Postfix + Dovecot)

Postfixインストール

apt install -y postfix
# Internet Site選択、itnetsys.org設定

/etc/postfix/main.cf主要設定:

myhostname = sv.itnetsys.org
mydomain = itnetsys.org
myorigin = $mydomain
mydestination = itnetsys.org, sv.itnetsys.org, localhost
mynetworks = 0.0.0.0/0
inet_interfaces = all
home_mailbox = Maildir/

自動返信設定

# managerユーザ作成
useradd -m -s /bin/bash manager
echo "manager:pass" | chpasswd

# .forwardファイルで自動返信設定
cat > /home/manager/.forward << 'EOF'
\manager
|/home/manager/autoreply.sh
EOF

# 自動返信スクリプト
cat > /home/manager/autoreply.sh << 'EOF'
#!/bin/bash
/usr/bin/formail -r -A"Subject: Auto Reply Mail" | /usr/sbin/sendmail -t
EOF

chmod +x /home/manager/autoreply.sh
chown manager:manager /home/manager/.forward /home/manager/autoreply.sh

systemctl restart postfix

5. サーバtsv(東京事業所、採点対象外)

5.1 OS・基本設定

  • OS: Linux(Debian/Ubuntu系)
  • ホスト名: tsv
  • IPアドレス: 10.100.0.1/24
  • ゲートウェイ: 10.100.0.254(R-Tky)

5.2 DNSサービス(tokyo-skills.jp)

BIND9設定

/etc/bind/named.conf.local:

zone "tokyo-skills.jp" {
type master;
file "/etc/bind/zones/db.tokyo-skills.jp";
};

/etc/bind/zones/db.tokyo-skills.jp:

$TTL    604800
@ IN SOA tsv.tokyo-skills.jp. admin.tokyo-skills.jp. (
2025020201
604800
86400
2419200
604800 )
;
@ IN NS tsv.tokyo-skills.jp.
@ IN MX 10 mail.tokyo-skills.jp.

tsv IN A 10.100.0.1
www IN A 10.100.0.1
mail IN A 10.100.0.1

5.3 メールサービス(alice@tokyo-skills.jp

# aliceユーザ作成
useradd -m -s /bin/bash alice
echo "alice:pass" | chpasswd

# Postfix設定(Internet Site、tokyo-skills.jp)
apt install -y postfix dovecot-pop3d

# /etc/postfix/main.cf設定
# myhostname = tsv.tokyo-skills.jp
# mydomain = tokyo-skills.jp

# Dovecot POP3設定
# /etc/dovecot/conf.d/10-auth.conf
# disable_plaintext_auth = no

systemctl restart postfix dovecot

5.4 Webサービス

apt install -y apache2
echo "Tokyo Skills Web Site" > /var/www/html/index.html
systemctl restart apache2

5.5 FTPサービス

apt install -y vsftpd
systemctl restart vsftpd

5.6 DHCPサービス(192.168.1.0/24)

apt install -y isc-dhcp-server

/etc/dhcp/dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.151 192.168.1.160;
option routers 192.168.1.254;
option domain-name-servers 10.100.0.1;
option domain-name "tokyo-skills.jp";
}

/etc/default/isc-dhcp-server:

INTERFACESv4="ens33"
systemctl restart isc-dhcp-server

6. サーバksv(香川事業所1、採点対象外)

6.1 OS・基本設定

  • OS: Linux
  • ホスト名: ksv
  • IPv6アドレス: 2001:DB8:3💯:1/64
  • ゲートウェイ: 2001:DB8:3💯:FF(R-Kgw1)

6.2 DNSサービス(kagawa-skills.jp)

/etc/bind/named.conf.local:

zone "kagawa-skills.jp" {
type master;
file "/etc/bind/zones/db.kagawa-skills.jp";
};

/etc/bind/zones/db.kagawa-skills.jp:

$TTL    604800
@ IN SOA ksv.kagawa-skills.jp. admin.kagawa-skills.jp. (
2025020201
604800
86400
2419200
604800 )
;
@ IN NS ksv.kagawa-skills.jp.

ksv IN AAAA 2001:DB8:3:100::1
www IN AAAA 2001:DB8:3:100::1

6.3 Webサービス

apt install -y nginx
echo "Kagawa Skills Web Site" > /var/www/html/index.html
systemctl restart nginx

6.4 FTPサービス

apt install -y vsftpd
systemctl restart vsftpd

7. クライアントPC(採点対象外)

7.1 ex-client(仮想インターネットエリア)

  • OS: Windows 10
  • ネットワーク: DHCPでISPから取得
  • ソフトウェア: Tera Term, Thunderbirdインストーラ(デスクトップ)

7.2 k-client(香川事業所2)

  • OS: Windows 10
  • ネットワーク: DHCPでR-Kgw2から取得
  • ソフトウェア: Tera Term, Thunderbirdインストーラ

8. 仮想マシン構成例(VMware/VirtualBox)

8.1 必要な仮想マシン数

  • ルータ: 4台(ISP, R-Tky, R-Kgw1, R-Kgw2, R-Osk)※Cisco IOSルータイメージ
  • サーバ: 6台(sv, tsv, ksv, osv1, osv2, osv3)
  • クライアント: 5台(ex-client, t-client, k-client, o-client)

8.2 仮想ネットワーク設定

VMwareの場合:

  • カスタムネットワーク(VMnet)を複数作成
  • 各ネットワークセグメントに対応

VirtualBoxの場合:

  • 内部ネットワークを複数作成
  • 各ネットワークセグメントに対応

9. 初期パスワード一覧

ルータ

  • コンソールパスワード: cisco
  • イネーブルパスワード: cisco

サーバ(osv1, osv2, osv3)

  • rootパスワード: Young2025
  • masterユーザパスワード: pass

その他ユーザ

  • taro, jiro, saburoパスワード: pass
  • alice(tsv)パスワード: pass(POPも同じ)
  • Sambaパスワード: smbPass

10. 必要なソフトウェア

Windowsクライアント

  • Windows 10(標準)
  • Tera Term(インストール済み)
  • Thunderbirdインストーラ(デスクトップ)
  • Microsoft Edge(標準)

Linuxサーバ

  • Debian GNU/Linux 12.10
  • bind9
  • postfix
  • dovecot-imapd / dovecot-pop3d
  • nginx / apache2
  • vsftpd
  • isc-dhcp-server
  • squid
  • samba
  • quota
  • mdadm

11. 事前確認項目

  • すべての仮想マシンが起動する
  • ネットワーク接続が確立されている
  • ルータの基本設定(ホスト名、パスワード)が完了
  • サーバの基本設定(OS、ホスト名)が完了
  • svでCA証明書がダウンロード可能
  • tsvでDNS、メール、Webが稼働
  • ksvでDNS、Webが稼働
  • クライアントPCが起動し、基本操作可能

このドキュメントに基づき、競技課題の前提環境を構築してください。