快適個人用Linuxサーバー構築記

はじめに
サーバーを調達
Virtual Private Server を調達
SSHの設定
SSHでサーバーにログインして、SSHの設定を行う。
iptables
iptablesを設定してファイアウォールをつくる。
認証局
公開鍵の認証局をつくる。
Postfix
SMTPサーバー。
IMAPサーバー
IMAP & POP3サーバー。

ソフトウェアのつかいこなし

はじめに
Linuxのソフトウェア
Linuxで動く便利なソフトの使い方。
PHP
Excel
バーコードの作り方
バーコードを生成するプログラム。
Perlのスクリプト
Perlで開発したソフト。

開発室

はじめに
主にLAPPの話
ZendFramework Application
ZendFrameworkのApplicationを使って開発する。
文献職人
論文の引用文献(Reference)を作成するソフト
Google Logo Collector
Googleのロゴ収集プログラム。
Loading Circle Maker
コンピュータの待ち時間に表示する時計を作成するプログラム。
アクリルアミドゲル作成
希望する濃度のアクリルアミドゲル(SDS-PAGE用)を作成するのに必要な試薬量を計算します。
算数のおけいこ
小学生の算数のおけいこ。

クラスターコンピュータをつくる

雑記帳

はじめに
RAD-tag
ゲノムを二種類の制限酵素で切ったときに適当な長さの断片はどのぐらいとれるのか。
bwa
マッピングツールとしてbwaを使ってみる。
stats
PHPの統計ライブラリstats。

SSHでログイン

バーチャルサーバーの管理はカゴヤのウェブページを介して行うことができますが、ファイルの編集などを行うことは難しいので、SSHでログインして行うほうが便利です。

初期状態ではインスタンスのIPアドレスにrootアカウントと設定したパスワードを使ってSSH経由でログインすることができます。

sshd_configの修正

まず設定ファイルのバックアップをとる。sshdが起動できなくなったときにコンソールから簡単に修復できるようにしておく。

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

次にsshd_configを修正する。ポートを変更して、rootのログインを制限して、パスワード認証を禁止する。

/etc/ssh/sshd_config

Port 2022
PermitRootLogin no
PasswordAuthentication no

編集後は service sshd restart として、sshdを再起動。

鍵認証への対応

サーバー側の証明

SSHで最初に接続すると接続先のサーバーが正しいものであるかどうか聞いてきます。 このときに確認するのがサーバーの鍵の指紋(finger print)です。 サーバーの鍵は/etc/ssh/以下に保存されています。 鍵の指紋は ssh-keygen -lf /etc/ssh/ssh_host_rsa_key とすることで確認できます。 SSHで最初にログインするときにはサーバーのものと表示されたものが一致するかどうかを確認してから受け入れるようにしましょう。

クライアント側の設定

パスワードによる認証を拒否するように設定したので認証用のキーを作成します。SSHでログインするユーザーごとにする必要があります。

キーを作成

ssh-keygen -t rsaとして、公開鍵と秘密鍵を作成します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/testuser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/testuser/.ssh/id_rsa.
Your public key has been saved in /home/testuser/.ssh/id_rsa.pub.
The key fingerprint is:
ad:8c:12:3b:b9:9e:9e:0b:1a:af:42:6b:a0:4f:2b:89 testuser@thaliana.myhome.cx

id_rsaが秘密鍵でid_rsa.pubが公開鍵です。id_rsa.pubをauthorized_keysに追加します。

cd ~/.ssh/
cat id_rsa.pub >>authorized_keys
chmod 600 authorized_keys

クライアント側にid_rsaのファイルを移します。 簡単な方法はcat ~/.ssh/id_rsa として中身をコンソールに表示させてそれをコピー&ペーストします。

Windows用のSSHクライアント PuTTYの設定

SSHのクライアントとしてPuTTYを使っていますが、linuxのssh-keygenで作成した秘密鍵はそのままでは使えません。PuTTY用に変換します。

PuTTYといっしょに配布されているputtygen.exeを起動します。 「Load」をクリック。 コピーしたid_rsaを読み込み、パスフレーズを入力します。 Key commentやKey passphraseを必要に応じ編集し「Save private key」をクリックして保存します。

putty.exeを起動します。 PuTTYの設定画面の「接続」-「SSH」-「認証」のプライベートキーファイルに変換した秘密鍵のファイルを指定します。

鍵の使いまわし

新しいSSHサーバーに既存の鍵でログインできるようにするときはid_rsa.pubの中身を~/.ssh/authorized_keysに追加します。 id_rsaとかid_rsa.pubとかはコピーする必要はありません。

不正ログインの試みについて

sshサーバーをデフォルトの22番ポートで使用していると、不正なアクセスを試みる輩がたくさんいます。PermitRootLogin noとPasswordAuthentication noの二つの設定があれば、不正にログインされる心配はないのですが、ログにその記録がたまって邪魔になります。

これを回避する方法のひとつはsshサーバーのポートを22番から別のポート(2022とか)に変更してしまうことです。ポート番号を変更することで不正ログインの試みは激減します。