らずぱい日記

定年したので日記でもかくか。って感じ

apache2いい感じ

2週間ほど電源ONしたままSSHで細かな設定を変えながら使っていたが、

いきなり使えなくなった。確認するとMicroSDカードが壊れて読み込み不可。

熱か?仕方ないので再インストール今度のOSは

Ubuntu 20.04.2 LTS" 64ビットサーバーLTSにしてみた。

ざっくりアップグレードと無線LAN設定をやってまずapach2をインストールで

あっさり完了。前回のOSはエラーが出たが今回はエラーなしで終了。

メモってみた。

$ sudo ufw app list
Available applications:
OpenSSH

まだapache2インストールしてないのでhttpdのF/w設定がはいってない。

$ sudo apt install apache2

Enabling site 000-default.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
Processing triggers for ufw (0.36-6) ...
Processing triggers for systemd (245.4-4ubuntu3.4) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
ubuntu@ubuntu:~$

あっさりインストール完了

$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

F/Wのセットが入っている。

■F/wの調整

※1 Apache: WWW、ポート80 のみを聞く
※2 Apache Full: このプロファイルは、ポート80とポート443の両方を開く
※3 Apache Secure: このプロファイルは、ポート443 のみを聞く

$sudo ufw allow 'Apache Full'

Rules updated
Rules updated (v6)

 

SSHも通るようにしておく
$sudo ufw allow 'OpenSSH' 

$ sudo ufw status
Status: inactive

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

$ sudo ufw status
Status: active

To Action From
-- ------ ----
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)

 

■やりたいこと

とりあえずHTTPサーバが立ち上げるので以下のことをやってみる

・指定のディレクトリにアクセスするとBasic認証でIDとパスワードを聞いてくる。

・ID、パスワードを入れるとディレクトリ以下のファイルが見れる

・最後にシンボリックリンクNASサーバのファイルをWEBサーバ経由でアクセス

する。

 

Basic認証を付ける

1.htaccess用パスワード作成ツールで.htpasswdを作成する
2.パーミッションは604


http://192.168,XX,YY/info/ にアクセスしたらIDとパスワードを聞いてくる
Basic認証設定をする

■パスワードファイルの.htpasswdを作成
$sudo htpasswd -c /var/www/.htpasswd ユーザ名
New password:パスワード
Re-type new password:パスワード
Adding password for user ユーザ名

/var/www/.htpasswd が作成されたことを確認

$sudo ls -a /var/www/

あるので

$sudo chmod 604 /var/www/.htpasswd しておく。


■/etc/apache2/apach2.confに設定追加
--------------------------------------------

<Directory /var/www/html/info>
 AllowOverride None
 Order allow,deny
 Allow from all
 Options FollowSymlinks
 Options Indexes FollowSymLinks
 AuthType Basic
 AuthName "erina Please input ID & Password"
 AuthUserFile /var/www/.htpasswd
<Limit GET POST>
 require valid-user
</Limit>
</Directory>

# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
#
AccessFileName .htpasswd

--------------------------------------------------


■$sudo service apache2 start

もし起動しない場合

$ sudo systemctl status apache2.service

で起動エラー内容を確認。
私の場合
Invalid command 'AuthGroupFile', perhaps misspelled or defined by a module not included in the server configuration
で起動しなかった。
apach2.confの「AuthGroupfile /dev/null」の記述を消し起動OKとなった。

これでBasic認証付きのディレクトリができたのでここからNASサーバに飛ばしファイルのアクセスを可能にする。

次は上記設定でシンボリックリンクアクセス可能かのテストです。

NASサーバのマウント

$sudo mkdir /mnt/oresama1

$sudo mkdir /mnt/oremasa2

2台のNASサーバを/mntにマウント

※マウントする前にcifsがマウントできるように

 cifsユーティリティをインストールしておく。

$ sudo apt install cifs-utils

NASのマウント

$sudo mount -t cifs //192.168.X.X/public /mnt/oresama1 -o user=xxxx,password=YYYY

$sudo mount -t cifs //192.168.X.Y/public /mnt/oresama2 -o user=xxxx,password=YYYY

 

シンボリックリンク作成

$ sudo ln -s /mnt/oresama1 oresama1

$ sudo ln -s /mnt/oresama2 oresama2

 

■WWWブラウザー経由NASサーバアクセス

結構サクサクアクセスできるわ。