読者です 読者をやめる 読者になる 読者になる

田舎で働くウェブ屋のメモ帳

仕事中のメモなどなど。

ConoHaのVPSを初期設定してみる(Ubuntu 14.04)

ConoHaVPSを新規で立ち上げ、とりあえず必要なアプリケーションを導入する前までの手順メモ。OSはUbuntu 14.04」をConoHaの初期イメージで入れてます。

以下は、root権限でSSHログインしたところから。
「%」囲みの文字は用途・環境に合わせて変更して下さい。

各種パッケージを最新版にアップデート

  • リポジトリの更新
    apt-get update
  • 最新パッケージへ更新
    apt-get upgrade

日本語環境に変更

  • 日本語パッケージをインストール。
    apt-get install language-pack-ja
  • 言語パッケージを生成・更新。
    dpkg-reconfigure locales
  • デフォルト言語を日本語(UTF-8)に変更。
    update-locale LANG=ja_JP.UTF-8
    SSHでログインし直すと、日本語環境になってるハズです。

時計を合わせる

サーバーの時間がズレてると色々面倒なので、NTPで自動調整させます。

  • NTPの設定ファイルを変更。
    vi /etc/ntp.conf
  • Ubuntuのサーバーが設定されている部分を、日本のサーバーに書き換え。
#server ntp.ubuntu.com
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp

sysv-rc-confをインストール

  • 入れるだけ。後ほど使います。
    apt-get install sysv-rc-conf

管理用ユーザーの作成

  • adduserを使用してユーザーを作成。
    adduser %USERNAME%
  • パスワードを聞かれるので設定します。
    新しい UNIX パスワードを入力してください: %PASSWORD%
  • 以降の項目は必要なければEnterで飛ばしてOK。
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
  • sudoできるように「sudo」グループに追加します。
    gpasswd -a %USERNAME% sudo

SSHのポートを変更する

  • SSHの設定ファイルを変更します。
    vi /etc/ssh/sshd_config
# What ports, IPs and protocols we listen for
Port %PORT%

# Authentication:
PermitRootLogin no

管理ユーザーでログインするための認証鍵を作るんですが、ここでは面倒なのでrootで使用しているものをコピーしています。
(本番運用の環境ではダメ!ゼッタイ)

  • ホームディレクトリが分からないので一旦管理ユーザーに変身してディレクトリを作成。
    su %USERNAME%
    cd ~/
    mkdir .ssh
    chmod 700 .ssh

  • rootに戻って、鍵をコピーします。
    exit
    cp /root/.ssh/authorized_keys /home/%USERNAME%/.ssh/authorized_keys
    chmod 600 /home/%USERNAME%/.ssh/authorized_keys
    chown %USERNAME%:%USERNAME% /home/%USERNAME%/.ssh/authorized_keys

  • SSHを再起動して、ログインし直します。
    service sshd restart

設定ミスってると入れなくなっちゃうので、再起動する前に別のSSHターミナルから試しに入ってみることをオススメします。

ファイアーウォールの設定

  • 面倒なのでrootに変身。
    sudo su -

  • とりあえず設定ファイルのようなモノを入れるディレクトリを作成。
    mkdir /etc/network/iptables/ cd /etc/network/iptables/

  • スクリプトを書いていきます。
    touch set_iptables.sh
    vi set_iptables.sh

#!/bin/sh
/sbin/iptables -F
/sbin/iptables -X

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

/sbin/iptables -A INPUT -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -s 192.168.0.0/16 -j DROP

/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport %SSH_PORT% -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 123 -j ACCEPT

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

上記の例では、SSHポート、HTTP/HTTPS用の80・443番(TCP)、NTP用の123番(UDP)は外から叩ける、それ以外は全てシャットアウト、中から外向きは全て許可。一旦繋がった通信については全て許可。そんな感じです。

  • 実行権限を付与して実行。
    chmod +x /etc/network/iptables/set_iptables.sh
    /etc/network/iptables/set_iptables.sh

  • iptables-persistent というパッケージで設定を保存。
    apt-get update
    apt-get install iptables-persistent
    保存しないと、再起動したときに消えます。

不要なサービスの停止

  • PPP 設定ユーティリティ
    sysv-rc-conf dns-clean off
  • PPP接続前にresolv.confを再適用
    sysv-rc-conf pppd-dns off

他のサービスについては、以前不具合を起こしたのでとりあえず放置。

不要なコンソールを無効化する

  • 設定ファイルを編集し、start の欄を全てコメントアウト
    vi /etc/init/tty2.conf(6まであります)

再起動

  • 全て終わったら一旦サーバーを再起動します。
    reboot

www.conoha.jp

参考にしたサイト