raspbianで.htaccessを使ったbasic認証

WebDavを実装する上でBasic認証が必要だったので実装してみました。

[config]

大まかな手順

  1. .htaccessを有効にする
  2. .認証に使うidとパスワードを設定
  3. .htaccessに記述

こんな感じです。

.htaccsessを有効にする

これはapache2のconfigファイルで実施します。

<Directory /home/davroot>
    AllowOverride All 
</Directory>

/home/davrootは実際にBasic認証をかけるディレクトリ

AllowOverride All

AllowOverrideAllは.htaccessを有効にするための記述

この後apache2を再起動します

sudo /etc/init.d/apache2 restart

認証に使うidとパスワードを設定

htpasswd -c /etc/apache2/.htpasswd hoge

/etc/apache2/.htpasswdは.htpasswdファイルを保存する場所になります。

hogeは認証に使うidです

パスワードを聞かれるので、任意のパスワードを入力しましょう。

.htaccessに記述

AuthUserfile /etc/apache2/.htpasswd
#AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

AuthUserfileは前項で作成した.htpasswdファイルの場所を記述

AuthGroupfileは未設定なのでコメントアウトしています

AuthNameはBasic認証で出るポップアップに表示させる文言です

AuthTypeは認証のタイプ。ここではBasicにしています

require valid-userは特定のユーザーのみ許可するかの設定です。ここでは誰でもユーザーIDとパスワードが一致していればOKということです

最後にapache2を再起動です

sudo /etc/init.d/apache2 restart

webminのインストール(raspbian)

webminとは、GUIでサーバーの様々な設定ができるツールです。
sambaのSWATを使うつもりでしたが、どうやらSWATは今は更新されていないようで、今はwembimを使うのが普通らしいです。

[config]

インストール前の準備

sources.listに下記の記述を追記

$ vim /etc/apt/sources.list
deb http://download.webmin.com/download/repository sarge contrib

リポジトリ公開鍵の取得

$ wget http://www.webmin.com/jcameron-key.asc
$ sudo apt-key add jcameron-key.asc

webminのインストール

 

$ sudo apt-get update
$ sudo apt-get install webmin

結構時間がかかります(私の環境では10分くらい)

動作確認

ブラウザでhttps://ipアドレス:10000/を入力し、webminにアクセスします。

ユーザーrootでログインしてみます。

無事インストール完了です!

raspbianによるsambaインストール(ファイルサーバー構築)

sambaを使ってファイルサーバーを構築します。今までwindows serverばかり使っていたので、勉強がてらLINUXで実践してみようと思います。

[config]

raspbianをアップデート

これをしないと始まりません。不可解なエラーで悩んだ場合、大抵これをやっていないことが原因かと。

$ apt-get update

sambaをインストール

下記のコマンド実行でインストール作業は完了です。

$ apt-get install samba

 

最低限の設定でファイルサーバーの動作確認

smb.confファイルを変更して初期設定を行います。まずは、smb.confをバックアップ。

$ cp /etc/samba/smb.conf /etc/samba/smb.conf.org

※.orgはオリジナルのこと

smb.confを編集

ユーザーpiでホームディレクトリを共有する設定

#共有名
[pi]

#ユーザーpiのホームディレクトリを指定
path = /home/pi

#読み書きを許可
read only = No

#クライアントからゲスト接続を許可
guest ok = Yes

#サーバー側でファイル操作をした場合ユーザーpiで実行される
force user = pi

設定を反映させるため、sambaを再起動します。

$/etc/init.d/samba restart

これで、piという共有フォルダが公開されました。

 

それでは実際に接続して確認します。

macの場合

Findeを起動し「移動」→「サーバーへ接続」

サーバーアドレスに「smb://サーバーのipアドレス」を入力し接続

マウントするボリュームで「pi」を選択

これでpiフォルダーが閲覧できるんで読み書きを確認します。

 

windowsの場合

適当なフォルダーを開き、パス入力部に下記を入力

\\IPアドレス

接続できるとこんな感じです。

macよりもwindowsの方がわかりやすいですね。

あとは中のファイルの読み書きを確認します。

sambaとは?

ちなみにsambaとは、マイクロソフトのwindowsネットワークを構築するためのオープンソース・ソフトウェアです。

今までファイルサーバー=windows serverでしたが、今回はここまで10分程度で済みました。無料でしかも簡単に構築できるsamba、今後はこちらに乗り換えても良いかと思ってしまいます。
(以外とwindows serverはトラブルが多い。。。)

sambaにはブラウザから設定できる「SWAT」があるので、次回はそれを使って色々やってみようと思います。

raspbianのホスト名変更

最初に適当なホスト名をつけたので、メールサーバーを運用することを期に変更しました。

[config]

手順

$su - (ルートユーザーに変更)

$vim /etc/hostname

hoge.com(ホスト名)

$reboot

raspbian(OS)を再起動すると変更したホスト名が適用されます。

vimでコピペ(Ctrl+C、Ctrl+V)できない問題の解決

vimでのコピペはyyやpでって思いますが、初心者にはCtrl+C、Ctrl+Vは使いたいものです。

使い慣れたcentosではそのままコピペ(以下Ctrl+C、Ctrl+V)ってできたと思うのですが、raspbianでは設定してあげないとダメなようです。

[config]

手順

  1. su – (ルートにユーザー変更)
  2. vim .vimrc(最初はファイルがないので新規作成)
  3. .vimrcに記述

    set clipboard=unnamed,autoselect

これでOKです。
試しに適当なファイルを開いてコピペしてみてくださいね。

ちなみに私は.vimrcを以下のように設定しています。

"#####表示設定#####

set number "行ナンバーを表示

set title "編集中のファイル名を表示

syntax on "コードの色分け

set tabstop=4 "インデントをスペース4つ分に設定 

set clipboard=unnamed,autoselect "コピペを使用

自宅サーバーでやりたいこと・やったこと

raspbianを使って自宅サーバーを運用していますが、これまでやったことやこれからやりたいことのメモです。

[config]

やったこと

  • SSH(鍵認証)
  • LAMP構築(raspbian、apache、mysql、PHP)
  • FTPサーバー(vsftp)
  • wordpressにてブログ運用(このブログです!)
  • DDNS(ダイナミック・ドメインネーム・システム)→MyDNS→cronで定期的にサーバーipを通知
  • ファイルサーバー(samba)←2017/11/5実施
  • webmin導入←2017/11/5実施
  • Basic認証→2017/11/12実施

これからやりたいこと

  • SSL(Let’s Encrypt)←2017/10/31追加
  • twitterのbot←既存サービスでテスト運用中(raspbianの情報botアカウント
  • twitter cardの導入
  • ファイルサーバー(WebDAV)
  • メールサーバー(Postfix+Dovecot)
  • メルマガ配信(acmailer)
  • データベース自動バックアップ(mysqlhotcopy)

ラズパイraspberry pi1 modelBによるサーバー構成

ラスパイを使ったサーバー構築をしていますが、その構成をご紹介します。

  • raspberry pi1 modelB
  • LAMP(LINUX・Apache・Mysql・PHP)

LINUX OS:raspbian(9.1 stretch)

$ lsb_release -a

Apache:Apache2  2.2

$ apache -v

Mysql:MariaDB

$ mysql> status

PHP:7.0.19-1

$ php -v

 

以前にラズパイでサーバー構築した時はあまり気にしてませんでしたが、raspbianのバージョンが新し>いと別のサイトだと同じ環境の記事がなく、結構つまずく場面が多かったです。

結局サイト公開するまで数回OSのインストールをやり直しました。。。

ラズパイ(raspbian)の自宅サーバー公開前のセキュリティーについて

私が実施したのは下記の項目

  • pi、rootユーザーのパスワード変更
  • piユーザー削除と作業用ユーザーアカウント追加
  • SSHの鍵認証、ポート変更

今後実施予定

  • iptables導入→接続エラー回数によるアクセス拒否

 

セキュリティーは大事!とわかっていても、いざ自分が被害にあわないと重要性をそこまで感じないのではないでしょうか?

そんな私も今までは結構無頓着でした。

実はラズパイで自宅サーバー構築をしたのは今回が初めてではなく、過去に2回ほど実施しています。が、ユーザーパスワードの変更だけで当時は公開しておりましたので、結構攻撃を受けていたのではないかと思います。(ログの確認方法もわからなかったので定かではありません。。)

セキュリティーの重要性を感じたのは、内部にrootkitを仕込まれたことや、wordpressへのログインを許し記事を消されたり、怪しい海外のサイトへのリンクだけのページに書き換えられたことです。

実際に嫌な思いをしたとはいえ、大した問題ではなかったのは自宅サーバーだから(業務でしたらえらいことです!)

pi、rootユーザーのパスワード変更

ラズパイには初期でpiとrootのユーザーが存在します。しかもrootは最初パスワード設定なし。piはraspberryというわかりやすいパスワードになっているので、知識なしで公開をするとあっという間にサーバーを乗っ取られます!

rootパスワード変更は

$ sudo raspi-config

piのパスワードは

$ sudo passwd pi

作業用ユーザーアカウント追加とpiユーザー削除

基本作業をpiでやるのは危険です。作業用ユーザーを作ってそれを今後使います。piユーザーは使用しないので削除します。

作業用ユーザー追加(ユーザー名:hoge)

$ sudo adduser hoge

piユーザー削除

$ sudo userdel -r pi

SSHの鍵認証とポート変更

パスワードのみだとアタックかけられまくりですので、アクセス方法を鍵認証とパスワードをかけます。また、基本ポートは21番ですが、これも狙われるのでさっさと変えておきましょう。

SSHのポート変更

ファイルはここ

/etc/ssh/sshd_config

上記ファイル内にある「Port」を初期値はから54321など任意のポート番号へ変更

Port 54321

鍵認証についての方法は後日書きたいと思います。

raspberry pi1 modelbにcentos7をインストールできない

これからラズパイを使ってウェブサーバーを運用します。

しかし、、、

普段はcentosを使っているので、centosを入れようと思っていましたが、なぜかうまくいきませんでした。

おそらくの問題点

  1. 電源のアンペアが低い
  2. スペック不足

など

インストール時後、モニターがこんな表示になってしまいます!

電源のアンペアが低い

raspberry pi1 modelbは5V2Aは必要らしい。
今回使った電源はiphone充電用で、5V1A。どう考えても無理っぽいですね。
ipad用の5V2Aのものを使ってみましたが、それでも問題は改善されませんでした。。。

 

スペック不足

centos7の動作環境的には十分ラズパイ1でもいけるはずなんですが。。。

 

小一時間格闘しましたが、調べるうちにラズパイでのredhat系OSは未熟でまともに動作しないという記事を多く見つけました。
結局推奨OS、raspbianをインストールして進めることにします。