お名前.com VPS (KVM) にて WordPress をはじめるまで(1)
第1回は、ログインユーザーの追加と SSH の設定についてです。
2012年5月から お名前.com VPS(KVM) の利用を始めています。
標準 OS にて、設定などを備忘録として残しておきたいと思います。
ユーザーの追加
まず、例として hoge ユーザーを追加し、パスワードを設定します。コンソールを利用します。
[shell]
$ useradd hoge
$ passwd hoge
$ usermod -G wheel hoge
[/shell]
wheel は、管理者グループとなります。
sudo コマンド
インストール作業のほとんどは、root で行います。
一般ユーザーは su コマンドでスーパーユーザーとなり、作業を進めることもできますが、sudo コマンドでは、特定ユーザーが root 権限でコマンドを実行することができます。
設定は visudo で行います。
[shell]
$ visudo
[/shell]
ログインユーザーに設定すると、以降は sudo コマンドで作業が進められます。
[shell]
$ sudo yum upgrade
[/shell]
SSH の設定
つぎに、SSH を設定します。
/etc/ssh/sshd_config を編集し、service sshd restart で sshd を再起動します。
[shell]
$ sudo vi /etc/ssh/sshd_config
$ sudo service sshd restart
[/shell]
主に編集するパラメータは、セキュリティ対策です。以下はその例です。
[shell]
# port 22
port 10022
#PasswordAuthentication yes
PasswordAuthentication yes
#PermitEmptyPasswords no
PermitEmptyPasswords no
#PermitRootLogin yes
PermitRootLogin no
[/shell]
ファイアウォールの設定
さらにセキュリティに関する設定を続けます。ファイアウォールです。
[shell]
$ sudo vi /etc/sysconfig/iptables
$ sudo service iptables restart
[/shell]
/etc/sysconfig/iptables の例です。なお、このファイルを直接編集することはお勧めされていません。iptables コマンドも用意されています。わたしはこのファイルを編集してしまっています。
[shell]
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type echo-request -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
#-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10022 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
[/shell]
お名前.com VPS(KVM) で標準 OS を選択した場合、SSH (22 番ポート)が利用できるように設定されています。
以降、追加するサービスに応じて、ポートを追加していきます。
なお、ファイアウォールの設定は重要です。上記の例は、参考としてあげたもので、わたし自身、このままの設定では行っておりません。自己責任となりますので、それぞれ納得のできるところまで調べる必要があると思います。
Mac(Mac OS X)から公開鍵認証による SSH 接続
ここで、Mac(Mac OS X)のターミナルから SSH 接続を試みます。
[shell]
$ ssh hoge@xxx.xxx.xxx.xxx(IP アドレス)
[/shell]
すでにネームサーバーの設定が済んでいれば、IP アドレスでなくドメイン名でも OK です。
また、ポートが例えば 10022 であれば、-p 10022 を付け加えます。
[shell]
$ ssh hoge@xxx.xxx.xxx.xxx(IP アドレス) -p 10022
[/shell]
なお、SSH 接続には、公開鍵認証という方法があります。こちらを利用できるようにします。
ターミナルから Mac 上で ssh-keygen を実行してキーペアを作成します。
[shell]
$ ssh-keygen
[/shell]
コマンドの指示に従って進めると、Mac 上の /Users/ユーザ名/.ssh/id_rsa.pub が作成されます。id_rsa.pub が公開鍵で id_rsa が秘密鍵です。勘違いしやすいので十分注意が必要です。
この id_rsa.pub の内容をそのままサーバーの /home/hoge/.ssh/authorized_keys にコピーします。
[shell]
$ cd /home/hoge
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ vi authorized_keys
$ chmod 600 authorized_keys
[/shell]
一文字ずつ間違いなく入力していくことはかなり難しいので、コピペできる環境が必要です。ターミナルからログインパスワードで SSH 接続するなどします。
次回にターミナルから SSH 接続する際から公開鍵認証が行われます。
Android アプリ ConnectBot から公開鍵認証による SSH 接続
無料の Android アプリ ConnectBot からも 公開鍵認証による SSH 接続を試してみます。
ConnectBot アプリのメニューボタンから「公開鍵管理」に入り、さらにメニューボタンから「生成」を行います。アプリの指示に従って進めると、公開鍵の一覧に、生成した鍵の名前が表示されます。それをロングタップすると「公開鍵をコピー」というコマンドが現れますので、それをタップします。
テキストエディタで、クリップボードからペーストするとファイルに保存できます。わたしは Jota Text Editor アプリをよく利用しています。このファイルを Mac などに移して、/home/hoge/.ssh/authorized_keys に内容を追加コピーするなどの方法が考えられます。
わたしの場合は AndFTP アプリも利用していまして、あらかじめ SFTP で接続できるようにして、/home/hoge/.ssh/authorized_keys をダウンロードして、Jota Text Editor アプリで追加コピーし、アップロードしました。
そのほか、後から気がついたのですが、ConnectBot アプリでクリップボードから貼り付けもできますので、ログインパスワードで SSH 接続してから直接 /home/hoge/.ssh/authorized_keys に貼り付けるのがいちばん間違いがなさそうです。
補足
以上、かなり駆け足の記録となってしまいました。ポイントとなる部分は残せたと思います。
追記。2012年9月6日に iptables の例について見直しました。
日本語の対応
日本語の対応についてです。/etc/sysconfig/i18n を書き換えます。
[shell]
LANG="ja_JP.UTF-8"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"
[/shell]