さくらインターネットの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 のつぶやき