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
どうでしょう。
これで一応、使えるようになったかな。
セキュリティはしっかりしないといろんなところに迷惑をかけるので
気をつけないと。。。