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です。
↑特に理由が無ければ日本語を選びます。
普通に、Ubuntu Serverをインストールを選びます。
言語の選択は日本語を選びます。
インストール中に英語のダイアログが混ざっている程度なので、気にせずに『はい』を選びます。
日本国内なら日本を選びます。
キーボードのレイアウトです。普通は日本語を選びます。好みで英語版キーボードを使っている場合には、英語を選びます。
レイアウトは日本語で。
ホスト名です。デフォルトのubuntuのままでもOKです(後で修正出来ます)
ログインする際のユーザーを作ります。ここではuserとしています。普通は自分の名前などでしょうか。
アカウントのユーザー名はアカウント名と同じで良いと思います。
パスワードを2回入れます。
パスワードが短かったり簡単だったりした場合には警告が出ます。インストール後にpasswdコマンドで変更可能なので、気にせずに次に進みます。
普通は暗号化しません。ノートPC等で特殊な理由がある場合には暗号化してもいいかもしれません。
タイムゾーンが東京のままで良いかと聞いているので、そのまま『はい』を選びます。
パーティション設定は、デフォルトのままでOKです。
LinuxによるソフトウェアRAIDを組む場合は手動を選択します(最近のUEFI対応BIOSの場合、LinuxのソフトウェアRAIDでインストール後の再起動が失敗する場合には、ブートローダのインストールが出来ていない事例に出くわしました。)
そのままEnter。
『はい』を選びます。
そのままディスク全体を使うので、Enterで。
『はい』を選択します。
企業内ネットワークの場合にはHTTPプロキシがあったりしますが、家庭の場合には、ある方がおかしいので、何も入力せずに次にすすみます。
サーバー用OSで勝手にパッケージのアップデート等をされると、設定が変わったのに気付かない可能性があるので、手動でアップデートする方針にして、『自動的にアップデートしない』を選びます。
※好みで自動的に~を選んでもOKです。
SSHと、必要なパッケージにチェックを付けて次へ。
ブートローダをインストールします。
インストールが完了したため、CDを取り出して、Enter。
無事に再起動出来たら、ログイン画面が出てきます。
インストール後の初期設定
まずは、パッケージを最新化します。
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についても聞いてきますので、そちらも『はい』を選びます。
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を使っている際に、不都合などを見つけた場合には、逐次更新予定です。