お名前.com VPS (KVM) にて WordPress をはじめるまで(1)
第1回は、ログインユーザーの追加と SSH の設定についてです。
2012年5月から お名前.com VPS(KVM) の利用を始めています。
標準 OS にて、設定などを備忘録として残しておきたいと思います。
ユーザーの追加
まず、例として hoge ユーザーを追加し、パスワードを設定します。コンソールを利用します。
$ useradd hoge $ passwd hoge $ usermod -G wheel hoge
wheel は、管理者グループとなります。
sudo コマンド
インストール作業のほとんどは、root で行います。
一般ユーザーは su コマンドでスーパーユーザーとなり、作業を進めることもできますが、sudo コマンドでは、特定ユーザーが root 権限でコマンドを実行することができます。
設定は visudo で行います。
$ visudo
ログインユーザーに設定すると、以降は sudo コマンドで作業が進められます。
$ sudo yum upgrade
SSH の設定
つぎに、SSH を設定します。
/etc/ssh/sshd_config を編集し、service sshd restart で sshd を再起動します。
$ sudo vi /etc/ssh/sshd_config $ sudo service sshd restart
主に編集するパラメータは、セキュリティ対策です。以下はその例です。
# port 22 port 10022 #PasswordAuthentication yes PasswordAuthentication yes #PermitEmptyPasswords no PermitEmptyPasswords no #PermitRootLogin yes PermitRootLogin no
ファイアウォールの設定
さらにセキュリティに関する設定を続けます。ファイアウォールです。
$ sudo vi /etc/sysconfig/iptables $ sudo service iptables restart
/etc/sysconfig/iptables の例です。なお、このファイルを直接編集することはお勧めされていません。iptables コマンドも用意されています。わたしはこのファイルを編集してしまっています。
*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
お名前.com VPS(KVM) で標準 OS を選択した場合、SSH (22 番ポート)が利用できるように設定されています。
以降、追加するサービスに応じて、ポートを追加していきます。
なお、ファイアウォールの設定は重要です。上記の例は、参考としてあげたもので、わたし自身、このままの設定では行っておりません。自己責任となりますので、それぞれ納得のできるところまで調べる必要があると思います。
Mac(Mac OS X)から公開鍵認証による SSH 接続
ここで、Mac(Mac OS X)のターミナルから SSH 接続を試みます。
$ ssh hoge@xxx.xxx.xxx.xxx(IP アドレス)
すでにネームサーバーの設定が済んでいれば、IP アドレスでなくドメイン名でも OK です。
また、ポートが例えば 10022 であれば、-p 10022 を付け加えます。
$ ssh hoge@xxx.xxx.xxx.xxx(IP アドレス) -p 10022
なお、SSH 接続には、公開鍵認証という方法があります。こちらを利用できるようにします。
ターミナルから Mac 上で ssh-keygen を実行してキーペアを作成します。
$ ssh-keygen
コマンドの指示に従って進めると、Mac 上の /Users/ユーザ名/.ssh/id_rsa.pub が作成されます。id_rsa.pub が公開鍵で id_rsa が秘密鍵です。勘違いしやすいので十分注意が必要です。
この id_rsa.pub の内容をそのままサーバーの /home/hoge/.ssh/authorized_keys にコピーします。
$ cd /home/hoge $ mkdir .ssh $ chmod 700 .ssh $ cd .ssh $ vi authorized_keys $ chmod 600 authorized_keys
一文字ずつ間違いなく入力していくことはかなり難しいので、コピペできる環境が必要です。ターミナルからログインパスワードで 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 を書き換えます。
LANG="ja_JP.UTF-8" SUPPORTED="ja_JP.UTF-8:ja_JP:ja" SYSFONT="latarcyrheb-sun16"