2016-03-08

Ubuntu 14.04@DigitalOceanのオレオレ初期セットアップ

DigitalOceanのVPSを検証用によく利用しているんですが、基本的な設定は全て自分で行う必要があります。特にsshd、iptables、ユーザの作成の部分は基本的には絶対にやらないといけない共通設定なので、備忘として残しておきます。OSはUbuntu 14.04です。

zshのインストール

必須の設定ではないし、後からでもOKですが、最初にやっておくと色々便利なので。oh-my-zshもインストールしてますが、ここらへんはお好みで。rootユーザ想定です。

$ apt-get update
$ apt-get install zsh git
$ chsh -s `which zsh`
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

ユーザの作成&SSHの設定

DigitalOceanでDropletを立ち上げたらrootしかいない状態なのでユーザを作成します。

$ vim /etc/adduser.conf # DSHELL=/usr/bin/zshに変更
$ adduser {username}
$ adduser {username} sudo # sudoグループに追加してsudoできるようにする
$ su - {username}
$ cd /home/{username} # su - しているから要らないかも
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" #お好みで
$ mkdir -m 700 .ssh
$ vim .ssh/authorized_keys #公開鍵を登録
$ chmod 600 .ssh/authorized_keys

この後、作成したユーザに対してSSHログインできること、sudo apt-get instal ***が通ることを確認。

ここからは作成したユーザでの作業を想定↓

SSHの設定

設定ファイルを弄る

$ sudo vim /etc/ssh/sshd_config
# ポート番号変える
Port {port}
# ルートログインできなくする
PermitRootLogin no
# パスワード認証切る
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no

設定が完了したら再起動

$ sudo service ssh restart

Rootでログインできないことと、ポート番号が変わっていることを確認。

iptableの設定

以下のリンクを参考に記述していきます。ポート番号以外はコピペで良いかも

俺史上最強のiptablesをさらす - Qiita

ちなみに、ESTABLISHED、RELATEDなINPUTをALLOWする記述はudpも許可しないとDNSが通らなくなるので、以下のように修正する必要があります。

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

Ubuntuの場合、iptables-saveが効かない?っぽいのでiptables-persistentをインストールします。

$ sudo apt-get install iptables-persistent

saveのところはこんな感じで書き換えます。

/etc/init.d/iptables-persistent save &&
/etc/init.d/iptables-persistent restart &&
...

swap領域の作成

swap領域がないので作成します

$ sudo su -
$ cat /proc/swaps #swap領域が無いことを確認
$ mkdir /var/swap
$ dd if=/dev/zero of=/var/swap/swap0 bs=2M count=2048
$ chmod 600 /var/swap/swap0
$ mkswap /var/swap/swap0
$ swapon /var/swap/swap0
$ echo '/var/swap/swap0 swap swap defaults 0 0' >> /etc/fstab
$ cat /proc/swaps #swap領域が作成されていることを確認

参考URL

DigitalOceanのUbuntuの設定方法について

そこそこセキュアなlinuxサーバーを作る - Qiita

Ubuntu 14.04でのiptablesの設定方法 - “Diary” インターネットさんへの恩返し

Ubuntu/CentOS サーバのスワップ領域の割り当て - 酒と泪とRubyとRailsと

このエントリーをはてなブックマークに追加