こんにちは、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」のコマンドも勉強したいし、、、
まだまだ自宅サーバーでやりたいことは、いっぱいありますよ!
ではでは。