wiki:HowTo/SakuraVpsSetup3

Version 7 (modified by 村山 俊之, 7 years ago) ( diff )

--

さくらの VPS セットアップメモ 〜2G プラン据え置き Ubuntu16.04 入れ替え編〜

入れ替え、と言っても一旦別ノード契約しての実質お引越しなのですが…。

国際的には RedHat 系より Debian/Ubuntu の方が主流、と聞いたので、今回は Ubuntu16.04 で建ててみることにします。 個人的には Ubuntu はデスクトップ用途のイメージですが…。

Ubuntu セットアップ

VPS コントロールパネルの「OSインストール」→「カスタムOSインストール」から、「Ubuntu16.04 amd64」を選択し、コンソール画面の内容に従って操作を進めていきました。 ディスクの区画割りで若干カスタマイズを施した以外は概ね画面の指示通りに進めただけです。詳細は省きます。

ソフトウェアの更新

ViM を使うのであればインストールが必要です。

$ sudo su -
# apt install vim

apt コマンドでシステム全体の更新が可能です。 update で更新されるソフトウェアのリストを更新、 upgrade で実際に更新を行います。 apt-get ではなく apt を使うことで、更新によって依存関係が追加されたソフトウェアの追加インストールもやってくれるらしいです。

# apt update
# apt upgrade

Debian/Ubuntu の場合は aptitude もあったほうが良いかもしれません。デフォルトでは入っていないので必要ならインストールします。

# apt install aptitude

ssh 接続のためのセキュリティ設定

CentOS や Scientific などと違って、セットアップが終わった段階でメインで使用するユーザーのアカウントも設定されます。普段使い用のアカウントについては自分でユーザーを作って設定する必要はありません。

sshd の設定については、設定ファイルに施す変更は初回と同様です。公開鍵認証の鍵の設定についても (dsa ではなく rsa2 を使っている以外は) 特に変わりません。 sshd のサービス名は ubuntu では sshd ではなく ssh になっています。再起動は service コマンドではなく /etc/init.d 以下のスクリプトを直接叩いたほうが良いようです (service コマンドではステータスがコンソールに表示されないため)。

# /etc/init.d/ssh restart

visudo は不要です。なお、 sudo で権限昇格できるユーザーのグループは、 ubuntu では wheel グループではなく sudo グループとなっています。

シェルのロケール設定

初回と同じ。

BIND の設定

参考: named を chroot して動かす - いますぐ実践! Linuxシステム管理 / Vol.126

  • デフォルトでは bind9-host はインストールされているものの、 bind9 はインストールされていません。
  • 前回の Scientific Linux 6 のときのような、 chroot 専用の BIND パッケージがあるわけではないようです。

bind9 をインストールします。

# apt install bind9

起動時のオプションに chroot するディレクトリを指定します。

# vim /etc/default/bind9

# startup options for the server
OPTIONS="-u bind -t /var/named/chroot"

chroot 先の環境を構築します。

# mkdir -p /var/named/chroot/dev
# mkdir -p /var/named/chroot/bind /var/named/chroot/var/run/bind/run /var/named/chroot/var/cache/bind /var/named/chroot/etc
# chown root.bind /var/named/chroot/var/run/bind/run 
# chmod 775 /var/named/chroot/var/run/bind/run 
# mknod -m 666 /var/named/chroot/dev/random c 1 8
# tar cf - -C /etc bind | tar xvfp - -C /var/named/chroot/etc

dev/log 経由で syslog にログを渡せるようにします。 Ubuntu 16.04 は rsyslog がデフォルトで入っているので、設定方法が若干異なるようです。 参考: rsyslogを使ってsftpサーバの操作ログを出力する。 - Qiita

# vim /etc/rsyslog.d/xx-bind.conf

AddUnixListenSocket /var/named/chroot/dev/log

最後に、rsyslogd を再起動し、 bind9 の起動を確認してひとまず完了です。

# /etc/init.d/rsyslog restart
# /etc/init.d/bind9 start
# /etc/init.d/bind9 stop

パケットフィルタリング設定

iptables 自体は導入済み。 設定方法については以下のサイトを参考にした。

  1. iptables コマンドを呼びまくるシェルスクリプトを書いて実行する。
    $ sudo su -
    # vim iptables.sh
    
    #!/bin/sh
    
    /sbin/iptables -F
    /sbin/iptables -X
    /sbin/iptables -P INPUT ACCEPT
    /sbin/iptables -P OUTPUT ACCEPT
    /sbin/iptables -P FORWARD ACCEPT
    
    /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    /sbin/iptables -A INPUT -p icmp -j ACCEPT
    /sbin/iptables -A INPUT -i lo -j ACCEPT
    
    /sbin/iptables -A INPUT -p tcp -m state --state NEW -m multiport --dports 22,25,53,587,993,80,443 -j ACCEPT
    /sbin/iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
    /sbin/iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    
    # chmod u+x iptables.sh
    # ./iptables.sh
    
  2. 設定内容を確認
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW multiport dports 22,25,53,587,993,80,443
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    #
    
  3. 設定内容をファイルに保存する
    # mkdir /etc/iptables
    # iptables-save > /etc/iptables/iptables.rules
    
  4. ↑で保存したファイルを、起動時に読み込み、終了時に保存し直すよう設定する
    # vim /etc/network/interfaces
    
    # 最終行に追加
    pre-up iptables-restore < /etc/iptables/iptables.rules
    post-down iptables-save -c > /etc/iptables/iptables.rules
    
  5. 再起動し、設定内容を確認
    # reboot
    
    $ sudo su -
    # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW multiport dports 22,25,53,587,993,80,443
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    #
    
Note: See TracWiki for help on using the wiki.