lighttpd 立ち上げ実験

いきなりVPNでサーバを上げるのはリスキーだと思うので、

箱庭LAN環境でVM上で実験。

 

結論から言って、lighttpd のインストールは超絶簡単だった。

 

$ sudo apt-get update

$ sudo apt-get install lighttpd

$ sudo vi /etc/lighttpd/lighttpd.conf

->server.port = 15080に変更

(この用途だと一般的なポート80を使う意味もないため15080で起動)

$ sudo systemctl restart lighttpd.service

 

f:id:nurarihyong:20200531083125j:plain

起動できた。


簡単。

さて、let's encrypt の証明書をとるのにhttpsの設定って必要なんだろうか?

要るとすると結構卵が先か鶏が先か問題が発生すると思うのだけど。

いったんhttpsの設定はさておき、Let's encrypt で証明書を取得できるかどうか実験していきたい。

 

 

Let's encrypt certbot に lighttpd という選択肢は無いのだろうか。

今のVPSはメンテナンスにかける労力が限りなくゼロに近くないと、

自分の性格上管理しないだろうことがわかっている。

 

ハードルがある。SSL証明書というヤツはそこそこ面倒くさい。しかし最近のインターネット事情は暗号化されて当たり前であって生データが流れることは許さない傾向が強く、証明書が無いといろいろ困る。

無料であれ、有料であれ、SSL証明書を維持するには努力が必要だ。

かといって毎月1回自己にオペレーションを課したり生活様式を変えたりするのは絶対に続かない。お金をかければどうにかなるが、お金をかけるつもりもまるでない。

 

certbot を 勉強中。どうせリソース割くなら、できるだけゼロに近い努力で証明書を維持する仕組みを考えたい。

 

でもこの certbot どうも運用に難がある気がしていて、これを動かす前後でhttp(s) が使うポートを確保してあげる必要がある。その絡みで、apache をストップしたりスタートするのが嫌だ。

 

これを回避するにはいろいろ方法がありそうで、--webrootという仕組みを使うのが良いかと思うけど、現在動いているサービスと同じサービスで認証要求と正当性の確認がおこなわれるのがなんとなく嫌だ。せめて別のポートでやった方がいいのではないかと思うが、違うポートでやろうとすると apache reload が必要になる。

結局現在運用中のwebserverに何かしら影響がある可能性は否定できない。

だったらapacheインスタンスを二つ立ち上げればいいとは思う。でも証明書が取りたいだけで、フルスペックのWeb serverは要らない気がしている。

 

そんだったら、もう、post-hook とかでlighttpd 立ち上げて post-hookでlighttpd 止めればいいのではというアイデアが浮かんだのだけど実際どうなんだろう。

できるのだろうか。

ちょっとlighttpd を試用するところから始めてみよう。

 

git をセットアップ

VPSを借りている。

VPSを借りたときセットアップする順番で git は後回しでいいと思っていたのだけど、

どうも考え方が変わってきた。git のセットアップは sshd のセットアップ後すぐにやった方がいいかもしれない。

Let's encrypt 絡みで自前のスクリプト使いたいし、外出先でそういったコードも見たい。鯖管日誌も、気になったところはブログに書くにしても、git に置いておいた方がいいし、鯖内でしか使わないソフトウェアやドキュメントのために github を使うのも変だと思う。

っていっても、sudo apt-get install git ってほど単純なハナシじゃないし、gitlabインストールとかいう高尚なハナシでもない(1GBのメモリじゃそもそも無理)

構成としては以下のようにしたい。

  • git のバックエンドはssh
    ->git clone ssh://git@hostname:port/repo.git な使い方したい。root:root にしかchrootできない関係で ssh://git@hostname:port/repo/repo.git みたいにせざるを得ない。
  • git ユーザを切る
  • でもgitusers groupを切るほどでもない。
  • git のリポジトリ作成は git ユーザで行う。git init --bare --shared /home/git/git/repo.git というスタイル。
  • ssh 経由で git にログインした際は、/home/git/git/chroot する。
    ->chroot するディレクトリのオーナーはroot:rootでないといけないらしいので、場所変更。/var/git/
  • vpn ネットワーク経由では password auth あり。
  • 外部ネットワークからのアクセスでは Public Key authのみ。

まずは git ユーザの追加から

$ sudo adduser git

次に vpn ネットワーク経由でpassword auth 許可。

$ sudo vi /etc/ssh/sshd_config

Match LocalAddress 10.0.0.1
    PasswordAuthentication yes

sshd をリスタートして wireguard 時パスワード認証が通るかどうかを確認

wireguard で起動していないときパスワード認証が通らないことを確認

$ sudo wg-quick up wg0

$ sudo /etc/init.d/ssh restart

グローバルから パスワード認証失敗→期待通り。

wireguardからの認証 ubuntu ユーザなら成功するがgit だとダメ。

git ユーザの設定が足りてない気がする。

$ sudo /etc/ssh/ssh_config

->AllowUsers に git を追加

wireguard から パスワード認証→成功→期待通り

git ユーザでログイン

$ mkdir git

$ cd git

鯖管共有用 git を切ってみる。(ドキュメント管理とかね)

$ git init --bare --shared admin.git

$ sudo mkdir -p /var/git

$ sudo chown root:root /var/git

$ sudo chmod 755 /var/git

chroot するディレクトリはroot:root 755 でないといけない縛りがあるようなので…

$ sudo mkdir /var/git/repo

$ sudo chown git:git /var/git/repo

$ su git

$ cd /var/git

$ chmod 755 repo

$ cd repo

$ git init --bare --shared admin.git

$ exit

$ sudo vi /etc/ssh/sshd_config

-> Match User git

       ChrootDirectory /var/git

      追記

$ sudo /etc/init.d/ssh restart

-> git ユーザssh 接続できるも

/bin/bash が見つからないといわれ即死

こっからchrootの壮大な旅が始まる。

$ cd /var/git

マウントポイントの作成

$ sudo mkdir bin lib lib64 usr

$ sudo mkdir usr/bin

$ sudo mount -o bind /bin /var/git/bin

$ sudo mount -o rbind /lib /var/git/lib

$ sudo mount -o rbind /lib64 /var/git/lib64

$ sudo mount -o bind /usr/bin /var/git/usr/bin

で再度git ユーザssh接続確認->まだだめ /dev/nullが無い言われる

$ sudo mkdir /dev

$ sudo mount -o rbind /dev /var/git/dev

-> ssh 接続できるし、クローンできるしpush もpull も通っている感じ。

ただgitでログインしてgit init --bare --share すると、

warning: templates not found /usr/share/git-core/templates

が出る。

$sudo cd /var/git/usr/

$ sudo mkdir -p share/git-core/templates

$ sudo cp /usr/share/git-core/templates/* /var/git/share/git-core/templates/

 なんとなくイケてそうな感じ。

あとはmount -o [r]bind 系の処理をfstab に入れておかないと毎回起動時にやるのが面倒かな。

MSI A320M-PRO-E と Ryzen5 1600AF

今自作界隈で結構人気の Ryzen5 1600AF と時代遅れのマザボ MSI A320M-PRO-E を一緒に買った。

A320M-PRO-E を買った理由は値段以外には何もなくて、たぶん、このマザボはCPU差し替えとかしなさそうだし、Ryzenのサポートも第二世代までということは分かった上でRyzen1600AFは第二世代だし割り切った構成で納得できたから。

f:id:nurarihyong:20200526221409p:plain

全然ベンチマークとかやる気ないですが、一応このマザーをセットで買う人が居るのであれば、まあ良いのではないかと。

CPUとマザボセットで14000円だったことを思うと、許せる価格だろうと思う。

3年前のPentiumG4560 の システムは下記のような構成で刷新した。

Ryzen5 1600AF 10000円 くらい

マザボ MSI A320M-PRO-E 4000円 くらい

メモリCrucial DDR4-2666 16GB 8000円くらい

Kingston SSD KC600 512GB 7600円

グラボ GeForce GT 710 1GB 3000円位 これはさすがに差し替えるかもしれない

ねじ 1000円位

USBメモリ 600円

ケース 流用

電源 流用

HDD 1T 流用

トータル35000円位でグラボ以外はそこそこやるPCができたからまあいいのではないかと思う。少なくともあと3年は余裕でもつハズ。

まあ、あとOSが要るのだけど、これはいずれ買わないといけないな。

Windows10Pro でいいかなと思っている。

knoppix って最近どうなの?

ずいぶん昔のことだと思うけど knoppix というのが流行った。

1DVD Linux ディストリビューションの先駆けでいろんなことができた。

ブラウジングはもちろん、開発環境もあったし、VMも動いたきがする。DVDブートのくせに、メモリディスクやイメージファイルを使って、あたかもハードディスクを使っているかのように変更もできて、変更した結果はDVDのファイルのオーバーレイになるので、ハードディスクにインストールしなくてもごくわずかなスペースをハードディスク上に用意すれば、普通に使えた。(確か変更点を保存するイメージファイルを作って一定の名前を付けておくだけでよかった)

いろんな派生バージョンもできて活気があった。

 

ところが、日本版は資金の確保が難しくなったのか、なぜだかまったくわからないが 7 が出たあたりから急速に日本版は活気がなくなり、気が付いたら誰も話さなくなってしまった。

 

で、今オレはオレオレ認証局で遊んでいて、オレオレ認証局なんざネットにつながってなくてもよくね?あれ?そういえばknoppixってどうなったんだっけ?っていうのでググってみると、まだドイツでは開発が継続中なのかもしれない。

あれ?

ていうか5か月前に更新されている?

https://ftp.riken.jp/Linux/knoppix/knoppix-dvd/

日本語化とかは微妙なんだろうけど、認証局として使う分には、opensslも入っているし

https://www.knopper.net/knoppix/knoppix861-en.html

DockerとかOwnCloudとかremotedesktop 関係とか LAMP 関係とか日本語関係がもしダメだとしても、地味になんでも入っている。もしかして超進化しているのでは?

それに当時はレスキューディスクとして大変重宝したが、新しいデバイスに追いついているのだったらやっぱり結構使えそうな気がするな。(MBRとか復旧gpartedとか)ftpdとかも入っているし、組み込みでtftpd が要るとかの場合とか、活用範囲はまだまだあると思う。

 

ま、オレオレ認証局はopenwrtでなんとなく練習はできたので

こいつで実運用しようと思う。とりあえずダウンロード中。

OpenWRT でオレオレ認証局実験

基本的に

オレだよオレオレ認証局で証明書つくる - Qiita

を利用させていただく。

 

OpenWRTでも処理はほとんど同じなのだけど、ディレクトリの場所が違う。

まず、consoleにログインしたあと、

opkg update

opkg install libopenssl

opkg install openssl-util

を実行する

opkg search は壊れていてパッケージは検索できない(まじで?)

 

手順で違うところは

openssl.conf の設定で

dir=/etc/ssl

とする必要がある。

mkdir -p /etc/ssl/newcerts

が必要だった。

/etc/pki/CA/

と記載のところは、全部/etc/ssl/と読み替える必要がある。

 

以上

で、これを使ってPostfix TLSを設定していこうかと思案中。

PCパーツ購入 話題のRyzen5 1600AFとマザボ、メモリ16GB

いろいろ購入しました。

今までPentiumG4560をずっと使ってて、まあまあ使えているのだけど

さすがに12コア1万円で出てきちゃったので今の4スレッドにそろそろ限界を感じて

パーツ購入。

 

自分は最新を追いかけるというよりコスパ良いヤツにパーツ継ぎ足して乗り換えて生き延びてきたスタイルなのでちょうどよい感じ。

f:id:nurarihyong:20200524220218j:plain

上記でだいたい22000円くらい。(CPU+マザボ=14000メモリ8000円)このCPUバカみたいにコスパが良いけどグラボがオンボードじゃない。

グラボが来ないと工作開始できない。ドスパラにはファンレスグラボが無かったためアマゾンでどうでもいいファンレスグラボを買った。ゲームしないから、静かだったらなんでもいいんだよね。また、SSDじゃないとVMとか遅いのでSSDも買った。

ほとんどゲームの動作検証とかベンチマークはやるつもりはない。(すでにみんなやってくれてるし)

マザーは5000円くらいの古い世代のマザボを買ったので、動くかどうかだけ検証する記事だけは載せようかなと思う。

 

古風な msi A320M-ProでRyzen5 1600AF動くのかな?ってことは気になる人もいるかもしれないしね。

今回のマザボはCPUのアップグレードは全く考えていない。

どうなんでしょうね。