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の設定
以下のリンクを参考に記述していきます。ポート番号以外はコピペで良いかもちなみに、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領域が作成されていることを確認