さくらのVPSを使ってみた

さくらインターネットのVPSに仮登録してみたので、作業メモ。

仮登録すると、メールが2通届く。2通目のメール(少し時間がかかる)に、VPS のIPアドレスと root の初期パスワードが書いてある。
VPS の起動は VPSコントロールパネルから簡単にできるので割愛。
ここでは、その後の初期設定作業をメモしておく。

まずは、ssh で VPS に接続。

takatoh@nightschool $ ssh [email protected]
ssh: connect to host 153.121.33.239 port 22: Connection refused

えー? Cnnection refused って接続が拒否されたってこと?
あやしいのはルータだ。というわけで、ルータに LAN->WAN 方向のポート22での通信を許可するように設定した。
さて、もう一度やってみる。

takatoh@nightschool $ ssh [email protected]
The authenticity of host '153.121.33.239 (153.121.33.239)' can't be established.
RSA key fingerprint is 57:de:08:97:07:32:f8:f2:b8:7e:39:5c:e7:61:e8:23.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '153.121.33.239' (RSA) to the list of known hosts.
[email protected]'s password: 

SAKURA Internet [Virtual Private Server SERVICE]

[root@www2465uo ~]# 

今度はうまくいった。
最初は yum update

[root@www2465uo ~]# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
Setting up Update Process
No Packages marked for Update

日本語化。/etc/sysconfig/i18n を編集する。

[root@www2465uo ~]# vim /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"

作業用のユーザーを作って、wheel グループに追加。

[root@www2465uo ~]# useradd takatoh
[root@www2465uo ~]# passwd takatoh
ユーザー takatoh のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
[root@www2465uo ~]# usermod -G wheel takatoh

wheel グループに sudo する権限をつける。visudo コマンドで開いたファイルの次の行をアンコメントする。

%wheel ALL=(ALL) ALL

ここでいったんログアウトして、新しく作ったユーザーで改めて接続する。

takatoh@nightschool $ ssh [email protected]
[email protected]'s password: 
Last login: Sat Aug  9 10:20:31 2014 from fntsitm001026.sitm.fnt.ngn.ppp.infoweb.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

パスワード認証をやめて、公開鍵での認証に切り替える。

[takatoh@www2465uo ~]$ pwd
/home/takatoh
[takatoh@www2465uo ~]$ mkdir .ssh
[takatoh@www2465uo ~]$ chmod 700 .ssh
[takatoh@www2465uo ~]$ cd .ssh
[takatoh@www2465uo .ssh]$ wget -O authorized_keys https://github.com/takatoh.keys
--2014-08-09 10:38:57--  https://github.com/takatoh.keys
github.com をDNSに問いあわせています... 192.30.252.131
github.com|192.30.252.131|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 761 [text/plain]
`authorized_keys' に保存中

100%[======================================>] 761         --.-K/s 時間 0s      

2014-08-09 10:39:03 (9.26 MB/s) - `authorized_keys' へ保存完了 [761/761]

[takatoh@www2465uo .ssh]$ ls -al
合計 12
drwx------ 2 takatoh takatoh 4096  8月  9 10:38 2014 .
drwx------ 3 takatoh takatoh 4096  8月  9 10:25 2014 ..
-rw-rw-r-- 1 takatoh takatoh  761  8月  9 10:39 2014 authorized_keys
[takatoh@www2465uo .ssh]$ chmod 600 authorized_keys

公開鍵は GitHub で公開されているものを wget で取ってきた。
ここでまたいったんログアウトして、鍵認証でログインできるか試してみる。

[takatoh@www2465uo .ssh]$ exit
logout
Connection to 153.121.33.239 closed.
takatoh@nightschool $ ssh [email protected]
Last login: Sat Aug  9 10:42:23 2014 from fntsitm001026.sitm.fnt.ngn.ppp.infoweb.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[takatoh@www2465uo ~]$ 

今度はパスワードを訊かれずにログインできた。うまくいったようだ。

つぎ、ssh の設定。設定ファイルは /etc/ssh/sshd_config。とりあえずオリジナルファイルのバックアップをとってから編集する。

[takatoh@www2465uo ~]$ sudo -s

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for takatoh: 
[root@www2465uo takatoh]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
[root@www2465uo takatoh]# vim /etc/ssh/sshd_config

編集するのは3ヶ所。ポートをデフォルトの 22 から他の番号に変更(1024〜65535)。

Port 60124

パスワード認証を禁止。

PasswordAuthentication no

root でのログインを禁止。

PermitRootLogin no

これを反映するために sshd を再起動。

[root@www2465uo takatoh]# service sshd restart
sshd を停止中:                                             [  OK  ]
sshd を起動中:                                             [  OK  ]

ファイアフォールの設定。/etc/sysconfig/iptables を作って、次のようにする。

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SERVICES - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j SERVICES
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A SERVICES -p tcp --dport 60124 -j ACCEPT
-A SERVICES -p tcp --dport 80 -j ACCEPT
-A SERVICES -p tcp --dport 443 -j ACCEPT
COMMIT

保存したら iptables を起動。

[root@www2465uo takatoh]# service iptables start
iptables: ファイアウォールルールを適用中: iptables-restore v1.4.7: Couldn't load target `SERVICES':/lib64/xtables/libipt_SERVICES.so: cannot open shared object file: No such file or directory

Error occurred at line: 9
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                           [失敗]

あれ、失敗した。なんでだ。どうも SERVICES がいけないらしい。ググって調べた結果、SERVICES を RH-Firewall-1-INPUT に変えたらうまく行った。

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j RH-Firewall-1-INPUT
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 60124 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 443 -j ACCEPT
COMMIT
[root@www2465uo takatoh]# service iptables start
iptables: ファイアウォールルールを適用中:                  [  OK  ]

さて、今回はここまで。

追記

参考にしたサイトを書くのを忘れてた。

 cf. さくらのVPS入門 – ドットインストール
 cf. さくら VPS のサーバーに iptables の設定をしてみた – ある SE のつぶやき

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください