ConoHaのVPSで最初にすること

ConoHaのVPSを借りて遊んでますw
デフォルトだと、
テンプレートイメージ CentOS6.5
が入ります。

再インストールしても5分もかからないので、
ガシガシ壊していきましょう!!

まずすることは、SSHサーバでしょうか。
ConoHaのコントロールパネルに「Key Pair」というのがあります。
これは、「root」が使う暗号鍵になります。

でも、最終的にはrootログインは拒否するので、
今回は使うことはないかもw

何はともあれ、繋げてみましょう。


僕はWindows端末でPuttyを使いSSHで接続してみます。
この時点では特に何もやることはなく、そのままConoHaのVPSへSSH接続します。

ユーザはrootで入れるようになっており、
ConoHaのコントロールパネルからOSを入れたときに入れたrootパスワードを使います。

login as: root
[root@v*-*-*-* ~]#

無事に入れたかな。

OSを入れた時点で、すでに古いパッケージがあるので、

# yum update
# yum upgrade -y  
# reboot

して最新にしておきましょう

パッケージを新しくしたので
ユーザを作りましょ。

# useradd hoge
# passwd hoge
Changing password for user hoge.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

出来ました。

次は、hogeを管理者のグループに追加してやります

# visudo 

## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

ここに「%wheel」というのがありますが、これがwheelグループにいる人は、
sudo出来る、su権限が必要なコマンドを実行できるということになります。

いろんなグループを作って実行できるコマンドを指定したりもできますが、
今回は

%wheel        ALL=(ALL)       ALL

とします。

次に、先ほどの「wheelグループ」に「hoge」を追加してやります。

# id hoge
uid=500(hoge) gid=500(hoge) groups=500(hoge)
# usermod -G wheel hoge
# id hoge
uid=501(hoge) gid=501(hoge) groups=501(hoge),10(wheel)

グループに入りました。

さて、次はSSHサーバを
・鍵認証を使う
・rootでのログインは拒否

するようにしましょう。

# vi /etc/ssh/sshd_config

PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes

こんか感じ。

変更したら、

# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]

これで、設定が反映されたはずなので、
今繋がってるターミナルはそのままで、新規にputtyでrootで繋げてみて、
繋がらないことを確認しましょう。

login as: root
root@*.*.*.*'s password:
Access denied

こんな感じで拒否されます。

なので、hogeでログインします。

login as: hoge
Server refused our key
hoge@*.*.*.*'s password:
Last login: Sat Mar 21 19:15:40 2015 from *.*.*.*
[hoge@v*-*-*-* ~]$

「Server refused our key」はまだ、鍵を作ってないので今は無視します。

先ほど管理者になれるようにしておいたので、

$ sudo su

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 hoge:
#

これで管理者になれました。

今は、鍵認証とパスワード認証の両方が許可されているので、
鍵認証だけを使うようにしましょう。

puttyのあるフォルダに「puttygen」があるのでそれで鍵を作ります。
公開/秘密鍵ペアの生成
で鍵を作り
鍵のパスフレーズ」を入れてやります。
鍵を使うときのパスワードですので、
パスワードが無くても、サーバ側のhogeユーザのパスワードと一緒じゃなくても良いです。
が、無いってのは止めたほうが良いと思います。

出来たものを、「秘密鍵の保存」します。
こちらがputtyでConoHaに接続する際に使う方。
外部に漏れないよう取扱いには注意してください。
これが漏れると、秘密鍵から公開鍵を再生成されてサーバに侵入されてしまいます。

で、上のほうに変な乱数っぽいのがあると思います。
こちらが、サーバに置いておく公開鍵になります。
これを全部コピーして

$ mkdir ~/.ssh
$ vi ~/.ssh/authorized_keys

ここに張り付けてやります。
SCPしてももちろOK!!

その後、ほかの人に見られないようにパーミッションを変えてあげます。

$ chmod 700 ~/.ssh
$ chmod 600 ~./ssh/authorized_keys
$ ll -lha ~
total 36K
drwx------  3 hoge hoge 4.0K Mar 21 19:41 .
drwxr-xr-x. 4 root root 4.0K Mar 21 19:01 ..
-rw-------  1 hoge hoge    5 Mar 21 19:15 .bash_history
-rw-r--r--  1 hoge hoge   18 Oct 16 22:56 .bash_logout
-rw-r--r--  1 hoge hoge  176 Oct 16 22:56 .bash_profile
-rw-r--r--  1 hoge hoge  124 Oct 16 22:56 .bashrc
drwx------  2 hoge hoge 4.0K Mar 21 19:42 .ssh
-rw-------  1 hoge hoge  613 Mar 21 19:41 .viminfo
-rw-r--r--  1 hoge hoge  658 Nov  5 20:20 .zshrc
$ ll -lha ~/.ssh/
total 8.0K
drwx------ 2 hoge hoge 4.0K Mar 21 19:42 .
drwx------ 3 hoge hoge 4.0K Mar 21 19:41 ..
-rw------- 1 hoge hoge    0 Mar 21 19:42 authorized_keys

こんな感じになります。
パーミッションをきちんと設定しないと鍵が使えないので注意

今、サーバ側はパスワード認証も許可されているので、
鍵認証だけ!!にしてやります。

PermitEmptyPasswords no
PasswordAuthentication no

こうやるとパスワード認証できなくなります。

SSHサーバ再起動します

# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]

これで鍵認証でしか接続できなくなりました。
(「PermitRootLogin no」に設定したのでrootは鍵認証でも接続できません。)

先ほど作った暗号鍵を使ってputtyで接続してみてください。
putty設定
 SSH
  認証のためのプライベートキー
にputtykeygenで作った秘密鍵を指定します。

login as: hoge
Authenticating with public key "imported-openssh-key"
Passphrase for key "imported-openssh-key":
Last login: Sat Mar 21 18:54:52 2015 from *.*.*.*
[neko6@v*-*-*-* ~]$

無事にログイン出来ましたか?
ちなみにrootで入ろうとすると、

login as:root
Server refused our key

と言われた即切断されます。

もう一つ、SSHサーバはTCP22を使うことになっています。
また、IPv6もListenしています。

# netstat -lanput|grep ssh|grep LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN ****/sshd
tcp 0 0 :::1122 :::* LISTEN ****/sshd

鍵を使っているとはいえ、そのままなのもあれなので変えてしまいます。

例として
・ポート番号2200
・IPv6は使わない

ようにしてみます。

# vi /etc/ssh/sshd_config
Port 2200
#AddressFamily any
ListenAddress 0.0.0.0
#ListenAddress ::

これでIPv4だけListenします。

で設定を反映させます。

# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]
#
# netstat -lanput|grep ssh|grep LISTEN
tcp 0 0 0.0.0.0:2200 0.0.0.0:* LISTEN 9876/sshd

となっていればOK。

あと、iptablesの設定も変えないといけません。

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy DROP)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

これが初期設定

でこれがSSHのポート

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh

well-knownなので表示が「ssh」となっています。

これからやることは、パケットフィルタを設定するので間違えると
通信できなくなってしまうので注意。

# vi /etc/sysconfig/iptables
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2200 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

上記の「–dport 22」のところを「–dport 2200
としてやります。

# service iptables restart
iptables: Setting chains to policy ACCEPT: filter [  OK  ]
iptables: Flushing firewall rules:                 [  OK  ]
iptables: Unloading modules:                       [  OK  ]
iptables: Applying firewall rules:                 [  OK  ]

たぶん、SSHが切断されたかとw
ポートが変わったので、puttyのほうもポートを2200にしてやって再接続すると

# netstat -lanput|grep ssh
tcp 0 0 0.0.0.0:2200 0.0.0.0:*   LISTEN      9876/sshd
tcp 0 0 1.1.1.1:2200 2.2.2.2:1234  ESTABLISHED 5678/sshd

どうでしょう。
これで一応、使えるようになったかな。

セキュリティはしっかりしないといろんなところに迷惑をかけるので
気をつけないと。。。

コメントを残す

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

Enter code * Time limit is exhausted. Please reload CAPTCHA.

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