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

2. サーバPCの設定手順書

2.1 OSの設定

2.1.1 osv1へのOSインストール

Debian GNU/Linux 12.10のインストール

  1. インストールメディアから起動

  2. インストール設定:

    • 言語: Japanese
    • キー配列: Japanese
    • タイムゾーン: Asia/Tokyo
    • 管理者パスワード: Young2025
    • 一般ユーザアカウント: master
    • 一般ユーザパスワード: pass
  3. パーティション設定(手動パーティショニング):

    • /boot: 200MB, ext4
    • /: 10GB, ext4
    • /home: 4GB, ext4
    • /var: 4GB, ext4
    • swap: 2GB
  4. ソフトウェア選択:

    • SSH server
    • standard system utilities
  5. インストール完了後、再起動


2.1.2 ネットワーク等の設定

osv1のネットワーク設定

# rootでログインまたはsudo -i

# /etc/network/interfacesの編集
nano /etc/network/interfaces

/etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet static
address 10.200.0.1
netmask 255.255.255.0
gateway 10.200.0.254

iface ens33 inet6 static
address 2001:DB8:4:100::1
netmask 64
gateway 2001:DB8:4:1::1
# ネットワークサービス再起動
systemctl restart networking

# ホスト名設定
hostnamectl set-hostname osv1

# DNS設定
nano /etc/resolv.conf

/etc/resolv.conf:

nameserver 10.200.0.1
nameserver 2001:DB8:4:100::1

osv2のネットワーク設定

# masterユーザでログイン後
sudo -i

# /etc/network/interfacesの編集
nano /etc/network/interfaces

/etc/network/interfaces:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
address 10.200.0.2
netmask 255.255.255.0
gateway 10.200.0.254

iface ens33 inet6 static
address 2001:DB8:4:100::2
netmask 64
gateway 2001:DB8:4:1::1
systemctl restart networking

# DNS設定
nano /etc/resolv.conf

/etc/resolv.conf:

nameserver 10.200.0.1
nameserver 2001:DB8:4:100::1

osv3のネットワーク設定

sudo -i

nano /etc/network/interfaces

/etc/network/interfaces:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
systemctl restart networking

# DNS設定
nano /etc/resolv.conf

/etc/resolv.conf:

nameserver 192.168.1.1

2.1.3 その他osv1、osv2及びosv3の共通設定

masterユーザにsudo権限付与

# rootで実行
usermod -aG sudo master

# または /etc/sudoers.d/masterファイル作成
echo "master ALL=(ALL:ALL) ALL" > /etc/sudoers.d/master
chmod 440 /etc/sudoers.d/master

2.1.4 osv3の設定

ユーザアカウント作成

sudo -i

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

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

# saburoユーザ作成(有効期限付き)
useradd -m -s /bin/bash -e 2025-12-31 saburo
echo "saburo:pass" | chpasswd

グループ設定

# グループg_smbを作成
groupadd g_smb

# taro、jiroをg_smbに追加
usermod -aG g_smb taro
usermod -aG g_smb jiro

# /var/sambaディレクトリ作成と権限設定
mkdir -p /var/samba
chgrp g_smb /var/samba
chmod 770 /var/samba

2.2 ネームサービス

2.2.1 osv1のDNS設定(BIND9)

パッケージインストール

sudo apt update
sudo apt install -y bind9 bind9utils bind9-doc

設定ファイル編集

sudo nano /etc/bind/named.conf.options

/etc/bind/named.conf.options:

options {
directory "/var/cache/bind";

// DNSSECの検証を無効化
dnssec-validation no;

// 再帰問い合わせは大阪事業所ネットワークからのみ許可
recursion yes;
allow-recursion { 10.200.0.0/24; 192.168.1.0/24; 192.168.2.0/24; 2001:DB8:4:100::/64; localhost; };

// 回送先ネームサーバからの応答がなかった場合でも自身での反復問い合わせを行わない
forward only;

// svへ回送
forwarders {
200.99.1.1;
};

listen-on { any; };
listen-on-v6 { any; };

allow-query { any; };
};
sudo nano /etc/bind/named.conf.local

/etc/bind/named.conf.local:

// 外部ネットワーク向けマスタゾーン
zone "osaka-skills.jp" {
type master;
file "/etc/bind/zones/db.osaka-skills.jp.external";
allow-transfer { none; };
};

// 大阪事業所ネットワーク向けスレーブゾーン
zone "osaka-skills.jp.internal" {
type slave;
file "/var/cache/bind/db.osaka-skills.jp.internal";
masters { 192.168.1.1; };
};

外部向けゾーンファイル作成

sudo mkdir -p /etc/bind/zones
sudo nano /etc/bind/zones/db.osaka-skills.jp.external

/etc/bind/zones/db.osaka-skills.jp.external:

$TTL    604800
@ IN SOA osv1.osaka-skills.jp. admin.osaka-skills.jp. (
2025020201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS osv1.osaka-skills.jp.
@ IN MX 10 mail.osaka-skills.jp.

osv1 IN A 10.200.0.1
osv1 IN AAAA 2001:DB8:4:100::1

mail IN A 10.200.0.1
mail IN AAAA 2001:DB8:4:100::1

www IN A 10.200.0.2

secret IN A 10.200.0.2

www6 IN AAAA 2001:DB8:4:100::2

サービス起動

# 設定ファイル確認
sudo named-checkconf
sudo named-checkzone osaka-skills.jp /etc/bind/zones/db.osaka-skills.jp.external

# サービス起動
sudo systemctl restart bind9
sudo systemctl enable bind9

2.2.2 osv3のDNS設定(BIND9)

パッケージインストール

sudo apt update
sudo apt install -y bind9 bind9utils bind9-doc

設定ファイル編集

sudo nano /etc/bind/named.conf.options

/etc/bind/named.conf.options:

options {
directory "/var/cache/bind";

dnssec-validation no;

recursion yes;
allow-recursion { 192.168.1.0/24; 192.168.2.0/24; localhost; };

forward only;
forwarders {
10.200.0.1;
};

listen-on { any; };
listen-on-v6 { none; };

allow-query { any; };
};
sudo nano /etc/bind/named.conf.local

/etc/bind/named.conf.local:

// 大阪事業所ネットワーク向けマスタゾーン
zone "osaka-skills.jp" {
type master;
file "/etc/bind/zones/db.osaka-skills.jp.internal";
allow-transfer { 10.200.0.1; };
};

内部向けゾーンファイル作成

sudo mkdir -p /etc/bind/zones
sudo nano /etc/bind/zones/db.osaka-skills.jp.internal

/etc/bind/zones/db.osaka-skills.jp.internal:

$TTL    604800
@ IN SOA osv3.osaka-skills.jp. admin.osaka-skills.jp. (
2025020201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS osv3.osaka-skills.jp.
@ IN MX 10 mail.osaka-skills.jp.

osv1 IN A 10.200.0.1
osv2 IN A 10.200.0.2
osv3 IN A 192.168.1.1

mail IN A 10.200.0.1

in-www IN A 10.200.0.2

サービス起動

sudo named-checkconf
sudo named-checkzone osaka-skills.jp /etc/bind/zones/db.osaka-skills.jp.internal

sudo systemctl restart bind9
sudo systemctl enable bind9

2.3 Webサービス(osv2)

パッケージインストール

sudo apt update
sudo apt install -y nginx

SSL証明書取得

# 証明書とキーをダウンロード
cd /tmp
wget http://www.itnetsys.org/osaka/secret.osaka-skills.jp.crt
wget http://www.itnetsys.org/osaka/server.key

# 証明書配置
sudo mkdir -p /etc/nginx/ssl
sudo mv secret.osaka-skills.jp.crt /etc/nginx/ssl/
sudo mv server.key /etc/nginx/ssl/
sudo chmod 600 /etc/nginx/ssl/server.key

Nginx設定

sudo nano /etc/nginx/sites-available/osaka-skills

/etc/nginx/sites-available/osaka-skills:

# www.osaka-skills.jp (外部)
server {
listen 10.200.0.2:80;
server_name www.osaka-skills.jp;

location / {
return 200 "osaka-skills.jp Official site";
add_header Content-Type text/plain;
}
}

# www6.osaka-skills.jp (外部、IPv6)
server {
listen [2001:DB8:4:100::2]:80;
server_name www6.osaka-skills.jp;

location / {
return 200 "IPv6 site";
add_header Content-Type text/plain;
}
}

# secret.osaka-skills.jp (外部、HTTPS)
server {
listen 10.200.0.2:443 ssl;
server_name secret.osaka-skills.jp;

ssl_certificate /etc/nginx/ssl/secret.osaka-skills.jp.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;

location / {
return 200 "secret site";
add_header Content-Type text/plain;
}
}

# in-www.osaka-skills.jp (内部)
server {
listen 10.200.0.2:80;
server_name in-www.osaka-skills.jp;

location / {
return 200 "internal site";
add_header Content-Type text/plain;
}
}
# サイト有効化
sudo ln -s /etc/nginx/sites-available/osaka-skills /etc/nginx/sites-enabled/

# デフォルトサイト無効化
sudo rm /etc/nginx/sites-enabled/default

# 設定テスト
sudo nginx -t

# サービス起動
sudo systemctl restart nginx
sudo systemctl enable nginx

2.4 Mailサービス(osv1)

2.4.1 SMTP(Postfix)

パッケージインストール

sudo apt update
sudo apt install -y postfix
# インストール時の選択: Internet Site
# System mail name: osaka-skills.jp

Postfix設定

sudo nano /etc/postfix/main.cf

主要な設定項目(/etc/postfix/main.cf):

myhostname = osv1.osaka-skills.jp
mydomain = osaka-skills.jp
myorigin = $mydomain
mydestination = osaka-skills.jp, osv1.osaka-skills.jp, localhost
mynetworks = 10.200.0.0/24, 192.168.1.0/24, 192.168.2.0/24, 127.0.0.0/8
inet_interfaces = all
relayhost =
home_mailbox = Maildir/

エイリアス設定

sudo nano /etc/aliases

追加内容:

admin: master
# エイリアスデータベース更新
sudo newaliases

# サービス再起動
sudo systemctl restart postfix
sudo systemctl enable postfix

2.4.2 IMAP(Dovecot)

パッケージインストール

sudo apt install -y dovecot-imapd

Dovecot設定

sudo nano /etc/dovecot/conf.d/10-auth.conf

変更箇所:

disable_plaintext_auth = no
sudo nano /etc/dovecot/conf.d/10-mail.conf

変更箇所:

mail_location = maildir:~/Maildir
# サービス再起動
sudo systemctl restart dovecot
sudo systemctl enable dovecot

2.5 Proxyサービス(osv2)

パッケージインストール

sudo apt update
sudo apt install -y squid

Squid設定

sudo nano /etc/squid/squid.conf

主要な設定(/etc/squid/squid.conf):

# ポート設定
http_port 8080

# 内部ネットワークからのアクセス許可
acl localnet src 192.168.1.0/24
acl localnet src 192.168.2.0/24
http_access allow localnet

# gameを含むURLをブロック
acl blocked_sites url_regex -i game
http_access deny blocked_sites

# その他のアクセス拒否
http_access deny all
# サービス再起動
sudo systemctl restart squid
sudo systemctl enable squid

2.6 DHCPサービス(osv3)

パッケージインストール

sudo apt update
sudo apt install -y isc-dhcp-server

DHCP設定

sudo nano /etc/dhcp/dhcpd.conf

/etc/dhcp/dhcpd.conf:

option domain-name "osaka-skills.jp";
option domain-name-servers 192.168.1.1;

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.201 192.168.2.210;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1;
}
# インタフェース指定
sudo nano /etc/default/isc-dhcp-server

/etc/default/isc-dhcp-server:

INTERFACESv4="ens33"
# サービス起動
sudo systemctl restart isc-dhcp-server
sudo systemctl enable isc-dhcp-server

2.7 ファイル共有サービス(osv3)

パッケージインストール

sudo apt update
sudo apt install -y samba

Samba設定

sudo nano /etc/samba/smb.conf

追加内容(/etc/samba/smb.conf):

[share]
path = /var/samba
browseable = yes
writable = yes
valid users = @g_smb
create mask = 0770
directory mask = 0770

Sambaユーザ設定

# taroのSambaパスワード設定
sudo smbpasswd -a taro
# パスワード: smbPass

# jiroのSambaパスワード設定
sudo smbpasswd -a jiro
# パスワード: smbPass
# サービス再起動
sudo systemctl restart smbd
sudo systemctl enable smbd

2.8 ディスククォータ(osv3)

パッケージインストール

sudo apt update
sudo apt install -y quota

クォータ設定

# /etc/fstabを編集してクォータを有効化
sudo nano /etc/fstab

/var/sambaマウントポイントにusrquota,grpquotaオプション追加:

# 例: /dev/md0が/var/sambaにマウントされている場合
/dev/md0 /var/samba ext4 defaults,usrquota,grpquota 0 2
# 再マウント
sudo mount -o remount /var/samba

# クォータファイル作成
sudo quotacheck -cugm /var/samba

# クォータ有効化
sudo quotaon /var/samba

# グループg_smbのクォータ設定
sudo setquota -g g_smb 102400 204800 0 0 /var/samba
# Softリミット100MB=102400KB、Hardリミット200MB=204800KB

2.9 ソフトウェアRAID(osv3)

パッケージインストール

sudo apt update
sudo apt install -y mdadm

RAID1構築

# RAID1デバイス作成
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

# RAID状態確認
sudo mdadm --detail /dev/md0
cat /proc/mdstat

# ファイルシステム作成
sudo mkfs.ext4 /dev/md0

# マウントポイント作成(既に存在する場合はスキップ)
sudo mkdir -p /var/samba

# 一時マウント
sudo mount /dev/md0 /var/samba

# /etc/fstabに追加
echo "/dev/md0 /var/samba ext4 defaults,usrquota,grpquota 0 2" | sudo tee -a /etc/fstab

# RAID設定保存
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u

# 権限再設定
sudo chgrp g_smb /var/samba
sudo chmod 770 /var/samba

設定確認コマンド

DNS確認

# osv1で
dig @localhost www.osaka-skills.jp
dig @localhost mail.osaka-skills.jp

# osv3で
dig @localhost osv1.osaka-skills.jp
dig @localhost in-www.osaka-skills.jp

Web確認

curl http://www.osaka-skills.jp/
curl -k https://secret.osaka-skills.jp/
curl http://in-www.osaka-skills.jp/
curl -6 http://[2001:DB8:4:100::2]/

メール確認

# SMTPテスト
telnet localhost 25

# IMAPテスト
telnet localhost 143

RAID確認

sudo mdadm --detail /dev/md0
cat /proc/mdstat

クォータ確認

sudo repquota -g /var/samba