Pocket

こんにちは、nodaです。

前回の創刊号に引き続き、今回もサーバー構築に励みたいと思います。

さて、そもそも自宅サーバーに憧れる理由は何でしょうか?

電気代はかかるし、うるさいし、攻撃だってされる可能性があります。

これならVPSの方が良いかと思われますが…

なんといっても、自宅に物理的なサーバーがあるというカッコイイ響き!

男の子なら憧れるのも頷けますよね。

そんな理由で自宅サーバーを立ち上げてみたものの、何をしようかと悩んでいる方もいらっしゃるのでは?

ということで、今回は前回の続きから「ファイルサーバー」っぽくしてみようと思います。

 

①遠隔操作してみる。

「自宅サーバー」は自宅にあれど、手元にあるとは限りません。

クライアント(創刊号では1軍PCと呼んでいた。)からSSHでリモートログイン出来れば便利だと思います。

※以下の説明ではクライアントのOSは「Ubuntu 12.04 Desktop」を想定しております。

まずはサーバー側でSSHサーバーのインストールを行います。

※しつこいようですが、インストールの前に必ず更新のチェック。
$ sudo apt-get update
$ sudo apt-get install openssh-server

そして、前回同様ブロードバンドルーターの設定をクライアント側から行います。
ポートの転送設定で、下図の設定を参考に変更してください。

(詳しいルーターの設定は各ルーターのマニュアルを参照してください。)

次にサーバー側でファイアウォールの設定を変更し、SSH通信を許可します。

$ sudo ufw allow ssh

ここまできたらクライアント側から動作確認を行います。
(Ubuntuでは端末を使用します。)

$ssh nodalab@192.168.2.201
(ご自身のサーバーアカウント名と、固定IPアドレスに書き換えてください。)

実行後、パスワードを入力してログイン出来れば成功です。

 

②史上最低限のセキュリティを設定

ここでは以下の2点を設定します。

  • rootログインを無効化
  • パスワード認証を無効化

はじめにパスワード認証を無効化するため、公開鍵でログイン出来るようにします。

クライアント側で鍵ファイルを作成します。
(上記同様、端末を使用しますがSSHサーバーからはログオフしてください。)

$ ssh-keygen

実行後、保存先を聞かれるので[Enter]キーを押し、鍵のパスワードを入力します。

鍵ファイルを作成しましたら、公開鍵をサーバーにコピーします。

$ ssh-copy-id nodalab@192.168.2.201
(言わずもがな、書き換えてください。)

そして、公開鍵でログイン出来るか確認します。

$ssh nodalab@192.168.2.201

先ほどと同じコマンドですが、今度は公開鍵のパスワード入力ダイアログが表示され、入力後にログイン出来れば成功です。

最後にサーバー側の設定ファイルを変更します。

サーバー側で下記のコマンドを実行してください。

$ sudo nano /etc/ssh/sshd_config

設定ファイルを下記の通りに変更します。

・rootログインを無効化

変更前:PermitRootLogin yes
変更後:PermitRootLogin no

・パスワード認証を無効化

変更前:#PasswordAuthentication yes
変更後:PasswordAuthentication no

変更後は設定ファイルを保存終了し、SSHサーバーを再起動させます。

$ sudo service ssh restart

これで最低限のセキュリティ設定は完了です。

ただし、あくまで最低限なので「サーバー監視ツール」や「侵入防止ソフト」の導入も必要でしょう。

 

③SparkleShareの導入

今回は「Dropbox」と同じ使い勝手となるようにサーバーを構築します。

イメージとしてはこんな感じでしょうか…


※SparkleShareはWindows版やAndroid版もあります。

なお、ここからはサーバー側で行う作業もクライアントでリモートログインして行います。

クライアントでコンソール(端末)を2つ立ち上げ、一方はサーバー環境(赤色)、一方はクライアント環境(青色)となりますので注意して進めてください。

—————————————-
サーバーにリモートログインします。

$ssh nodalab@192.168.2.201
(…書き換えてください。)

更新チェック後、Gitをインストールします。

$ sudo apt-get update
$ sudo apt-get install git

Gitのアカウントを作成します。
(※全て[Enter]キーを押してください。)

$sudo adduser –disabled-password git

Gitで使用する公開鍵保存用フォルダーを作成します。

$ sudo mkdir /home/git/.ssh

公開鍵の情報登録ファイルを作成します。

$ sudo touch /home/git/.ssh/authorized_keys

サーバー管理者だけが操作できる権限に変更します。

$ sudo chmod 700 /home/git/.ssh

サーバー管理者だけが読み書き出来る権限に変更します。

$ sudo chmod 600 /home/git/.ssh/authorized_keys

共有フォルダーを作成します。

$ sudo git init –bare /home/git/MyShare

所有者をユーザー「git」、グループ「git」に変更します。

$ sudo chown -R git:git /home/git
—————————————-
—————————————-
「SparkleShare」をインストールします。

$ sudo apt-get update
$ sudo apt-get install SparkleShare

SparkleShareをGUIで起動します。

メールアドレスを登録し、SparkleShareのフォルダーを確認すると「鍵ファイル」があります。


鍵ファイルをサーバーにコピーします。

$ scp “/home/y-noda/SparkleShare/y-noda’s key.txt” nodalab@192.168.2.201:
(いつものように、フルパスなども置き換えてください。)

実行後、パスワードを求められますので入力します。

—————————————-

—————————————-
先ほど作成した鍵情報のファイルを開きます。

$ sudo nano /home/git/.ssh/authorized_keys

[Ctrl]+[R]キーを押して、鍵ファイルのフルパスを入力後、[Enter]キーを押します。

上記を実行すると、鍵ファイルが読み込まれますので、保存して閉じてください。
—————————————-

—————————————-
GUIでファイル共有のフォルダーの設定画面を起動します。

サーバーのアドレスと共有フォルダーを設定します。

クライアント側にもMyShareフォルダーができれば成功です。
—————————————-

以上で「ファイルサーバー」っぽくする作業は終了です。

クライアント側からSparkleShareフォルダーにファイルを保存すると、サーバー側にも同じファイルが保存されるはずです。

自宅サーバーの利便性も生まれたところで、第2号は終わりです。

次号からは「CentOS」に切り替えたいし、「Vim」のコマンドも勉強したいし、、、

まだまだ自宅サーバーでやりたいことは、いっぱいありますよ!

ではでは。