Ubuntu13.10 serverのインストールと初期設定(スクリーンショット有り)


Ubuntu13.10が2013/10/17にリリースされたので、早速DLし、インストールしてみます。
本手順に従ったセットアップ後に出来る環境は次の通りです。

  • OSはUbuntu13.10Server(x64)
  • IPv4での固定IP。IPv6は無効
  • SSHでのログイン時のタイムアウト等の不都合修正済み
  • ntpdによる時刻同期
  • 主だった開発系ライブラリ導入済み
  • iptablesによるセキュリティ設定済み

pt3、epgrecの前提環境としても最低限この位設定済みであれば大丈夫だと考えています。

Ubuntu13.10 Serverのダウンロード

下記の本家サイトからDLさせてもらいます。

http://www.ubuntu.com/download/server

Ubuntu13.10 Serverのインストール

必要な方の選択肢を選んだ状態でキャプチャを取っているので、画像の通りに進めればOKです。

WS000000

↑特に理由が無ければ日本語を選びます。

WS000001

普通に、Ubuntu Serverをインストールを選びます。

WS000003

言語の選択は日本語を選びます。

WS000004

インストール中に英語のダイアログが混ざっている程度なので、気にせずに『はい』を選びます。

WS000005

日本国内なら日本を選びます。

WS000006

キーボードのレイアウトです。普通は日本語を選びます。好みで英語版キーボードを使っている場合には、英語を選びます。

WS000007

レイアウトは日本語で。

WS000008

ホスト名です。デフォルトのubuntuのままでもOKです(後で修正出来ます)

WS000009

ログインする際のユーザーを作ります。ここではuserとしています。普通は自分の名前などでしょうか。

WS000010

アカウントのユーザー名はアカウント名と同じで良いと思います。

WS000011

パスワードを2回入れます。

WS000012

WS000013

パスワードが短かったり簡単だったりした場合には警告が出ます。インストール後にpasswdコマンドで変更可能なので、気にせずに次に進みます。

WS000014

普通は暗号化しません。ノートPC等で特殊な理由がある場合には暗号化してもいいかもしれません。

WS000015

タイムゾーンが東京のままで良いかと聞いているので、そのまま『はい』を選びます。

WS000016

パーティション設定は、デフォルトのままでOKです。

LinuxによるソフトウェアRAIDを組む場合は手動を選択します(最近のUEFI対応BIOSの場合、LinuxのソフトウェアRAIDでインストール後の再起動が失敗する場合には、ブートローダのインストールが出来ていない事例に出くわしました。)

WS000017

そのままEnter。

WS000018

『はい』を選びます。

WS000019

そのままディスク全体を使うので、Enterで。

WS000020

『はい』を選択します。

WS000021

企業内ネットワークの場合にはHTTPプロキシがあったりしますが、家庭の場合には、ある方がおかしいので、何も入力せずに次にすすみます。

WS000022

サーバー用OSで勝手にパッケージのアップデート等をされると、設定が変わったのに気付かない可能性があるので、手動でアップデートする方針にして、『自動的にアップデートしない』を選びます。

※好みで自動的に~を選んでもOKです。

WS000023

SSHと、必要なパッケージにチェックを付けて次へ。

WS000024

ブートローダをインストールします。

WS000025

インストールが完了したため、CDを取り出して、Enter。

WS000026

無事に再起動出来たら、ログイン画面が出てきます。

インストール後の初期設定

まずは、パッケージを最新化します。

sudo apt-get update
sudo apt-get upgrade

次に、開発系のパッケージを入れておきます。

特にセキュリティホールになるわけではないので、後々の事を考えて入れておくことをお勧めします。

sudo apt-get install git unzip pkg-config automake build-essential
sudo apt-get install automake omake autopoint libtool libboost-all-dev

IPv6を使わない場合には無効化します。これは、sudoでは出来ないので、rootになってから実行します。

sudo su -
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1"  >>  /etc/sysctl.conf

NTPによる時刻設定とntpdの設定を済ませます

# 事前にNTPサーバと時間を合わせておく。
sudo ntpdate ntp.ubuntu.com
sudo apt-get install ntp

SSHでのログイン時に名前解決をするとログイン時に無駄にタイムアウトまで待たされるので、名前解決を無効にします。


sudo su -
echo "UseDNS no" >> /etc/ssh/sshd_config

サーバー用途でセットアップしている場合、固定IPにした方が良い為、固定IPにします。

ここでは、以下の条件であるとしてセットアップしています。

  • サーバのIP:172.20.1.31 /24
  • デフォルトゲートウェイ:172.20.1.1
  • DNSサーバ:172.20.1.1(ご自身のwindowsPCでipconfig /all した結果出てきたDNSサーバと合わせておけばOKだと思います。)
vi /etc/network/interfaces

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

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 172.20.1.31
netmask 255.255.255.0
network 172.20.1.0
broadcast 172.20.1.255
gateway 172.20.1.1
dns-nameservers 172.20.1.1

一旦再起動します。

ここまでで一旦再起動をしておきます。

sudo reboot

iptablesによる設定を保存できるようにします。ufwは使いません。

sudo apt-get remove ufw
sudo apt-get install iptables-persistent

iptables-persistentのインストール時に下記のようなダイアログが出てきたら、『はい』を選びます。同様に、IPv6についても聞いてきますので、そちらも『はい』を選びます。

WS000027

iptablesのルールを作成して保存します。

※この手順は飛ばしてもらってOKです。サーバとして運用する場合には、キーボードからログインできることを確認してから、iptablesの設定をしてください。と言うのも、ルールを間違えるとSSH等でのログインまでファイアウォールでブロックされてしまう可能性があるからです。設定をミスった場合のやり方を先に書いておきます。

# LinuxサーバにSSH経由ではなく、キーボードでローカルログインしてから下記を実行すると、ファイアウォールが全て許可になる。
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

iptablesのルールを設定します。
ここでは、一例として、メールサーバ、ウェブサーバ(http/https)をサービスとして提供し、外へのアクセスも最小限に絞った状態で設定しています。

# rootになってから作業します。
sudo su -

# ローカルネットワーク(安全なLANセグメント)
LOCAL_ETH='eth0'
LOCAL_NETWORK='172.20.1.0/24'
LOCAL_MY_IP='172.20.1.31'
MANAGE_HOST='172.20.1.0/24'

# iptablesのプログラム
IPTABLES='/sbin/iptables'
IPTABLES_SAVE='/sbin/iptables-save'

# ルールの設定中だけは全部許可
# 本当は、管理用PCからのSSHのみアクセスするフィルタを暫定的に入れるのが望ましいのですが、
# iptablesの設定がすべて完了してから公開セグメントに持っていくことを想定している事と、
# 単純にコピペでスクリプトを流し込むので、リスクは極小と判断しています。
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT

# ルールの初期化
$IPTABLES -F
# ローカルループバックを許可
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# 明らかにおかしいパケットは拒否
$IPTABLES -A INPUT -p tcp -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -p tcp -m state --state INVALID -j DROP

# サーバから外部サーバへのアクセス許可(パッケージアップデート等の為)
$IPTABLES -A INPUT -i $LOCAL_ETH -d $LOCAL_MY_IP -p udp -m multiport --sport 53,123 -j ACCEPT
$IPTABLES -A INPUT -i $LOCAL_ETH -d $LOCAL_MY_IP -p tcp -m multiport --sports 25,53,80,443,587 -j ACCEPT
$IPTABLES -A OUTPUT -o $LOCAL_ETH -s $LOCAL_MY_IP -p udp -m multiport --dport 53,123 -j ACCEPT
$IPTABLES -A OUTPUT -o $LOCAL_ETH -s $LOCAL_MY_IP -p tcp -m multiport --dport 25,53,80,443,587 -j ACCEPT

# サービスの公開ポート
$IPTABLES -A INPUT -i $LOCAL_ETH -d $LOCAL_MY_IP -p tcp -m multiport --dport 25,80,443 -j ACCEPT
$IPTABLES -A OUTPUT -o $LOCAL_ETH -s $LOCAL_MY_IP -p tcp -m multiport --sport 25,80,443 -j ACCEPT

# ssh
$IPTABLES -A INPUT -i $LOCAL_ETH -d $LOCAL_MY_IP -s $MANAGE_HOST -p tcp --sport 1024:65535 --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -o $LOCAL_ETH -s $LOCAL_MY_IP -d $MANAGE_HOST -p tcp --sport 22 --dport 1024:65535 -j ACCEPT

# デフォルトDROPにする
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

iptablesのルールを保存し、起動時に自動的に有効になるようにする

IPTABLES_SAVE='/sbin/iptables-save'
IPTABLES_RULES='/etc/iptables/rules.v4'
$IPTABLES_SAVE >> $IPTABLES_RULES

以上で、Ubuntu13.10Serverの初期インストールと最低限の設定が完了です。

お疲れ様でした。

このページは私がUbuntu13.10Serverを使っている際に、不都合などを見つけた場合には、逐次更新予定です。

タグ付けされた . ブックマークする へのパーマリンク.

コメントを残す

メールアドレスが公開されることはありません。