ファンレスミニPCサーバー化メモ 

 2024.02.16


0 スペック

Hard:  EPSon Endeavor  ST20E (CPU Celeron N3160 1.6GHz メモリ8Gb,SDD 128GB)
OS:    Debian Ver12.4  bookworm
 

1 イメージをダウンロード&インストール、初期設定

 https://www.debian.org/ のDownload をクリックしてイメージをダウンロード
 USBメモリを挿してイメージを書き込む
 
$ sudo  cat debian-12.4.0-amd64-netinst.iso >/dev/sdb
$ sudo  sync

インストール中、taskselで出てくるDesktop環境等はインストールせず、sshサーバ、httpサーバだけにして おく

2 sudo を使えるようにする

 最初はsudo  や vim をインストール
$su    (パスワードを入れる)
# apt install  sudo  vim

/etc/sudoers.d/下に010_hogehoge-nopasswd というファイルをつくり次の内容を1行書き込む
hogehoge ALL=(ALL)NOPASSWD:ALL

ipアドレスの固定

(1)wifi接続
 CUIでWifiの接続を変更したいときは /etc/network/interfacesにssid とパスフレーズを記述する

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug wlp2s0
iface wlp2s0 inet dhcp
    wpa-ssid SSIDを記述
    wpa-psk  ここにパスフレーズを記述


(2)ipアドレスの固定
ipアドレスを見るコマンドは
$ ip addr show

ipアドレスを固定するには、ip addr showコマンドでMACアドレス(6バイト)を調べて、onu側で,そのMACアドレスに対してstaticなipアドレスを
割り振るように設定しておく。のが一番楽だと思う。

3 sshの設定

 sshポート が空いているかどうかは nmap サーバipアドレス  で調べることができる。
 インストールの際、tasksel openssh-serverをインストールすれば sshポートはenableになるはず
(rasperryPiはraspi-configでsshサーバーをenableにしておく)

(1) パソコン側で公開鍵ペアを作成する

鍵を作るときのパスワードはサーバーのパスワードとは別物である。

$  ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hogehoge/.ssh/id_rsa):   このままenter
Enter passphrase (empty for no passphrase):                         パスワードを入れる
Enter same passphrase again:                                        再度パスワードを入れる
Your identification has been saved in /home/hogehoge/.ssh/id_rsa.
Your public key has been saved in /home/hogehoge/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:DXkvga6+uGv9L1dUdRiNEJcLezFVedhNVMhKsB+vEgU hogehoge@akagera
The key's randomart image is:
+---[RSA 4096]----+
|     E.s+o# &    |
|         o co.@.*|
|        + +.o= +.|
|       . + =+oo  |
| a    S +.o..    |
|       A d o..   |
|     ..   .q.    |
|   .o @ . ..     |
|   .+ooo.+.      |
+----[SHA256]-----+


~.ssh/下に秘密鍵id_rsaと公開鍵id_rsa.pubができる

パソコン側から公開鍵をサーバーに送信する
$ ssh-copy-id  -i .ssh/id_rsa.pub  hogehoge@ipアドレス
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
The authenticity of host 'raspberrypi.local (192.168.3.30)' can't be established.
ECDSA key fingerprint is SHA256:6LtS3P30HdhynlZJZiPUvD11DTRS+X/oMKt4ADmr4vI.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
hogehoge@raspberrypi.local's password:   こ こは鍵のパスワードではなくサーバーログインのパスワード

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'hogehoge@ipアドレス"
and check to make sure that only the key(s) you wanted were added.


サーバーにログインしてみる
$ ssh hogehoge@ipアドレス
Enter passphrase for key '/home/hogehoge/.ssh/id_rsa':秘密鍵のパスワードを入れる  

(2)sshのセキュリティ強化

 ・rootのログインの無効化と・パスワード認証の無効化をする。
 (これをやっておかないと、自宅サーバーは経験上数日から1ヶ月程度で陥落する)
  しかし(1)の作業の前にこれをやると、パソコン側から公開鍵をサーバーへ送信できなくなる。
  
  /etc/ssh/sshd_configの以下2箇所を変更


#PermitRootLogin prohibit-password   変更前
PermitRootLogin no          変更後


#PasswordAuthentication yes  変更前
PasswordAuthentication no   変更後

変更後、opensshを再起動して設定を反映させる
$ sudo systemctl restart ssh

3 ufwの設定

(1)インストール

$sudo  apt-get install ufw

(2)デフォルトですべてのポートへの接続を禁止する

$ sudo ufw default deny
なんてことをsshで接続しながらやるとぷっつんするから、リモートでは気をつけよう。

(3)開放するポートを記述(ルールの記述)(ssh のポート22  これはまず最初に開放しておかないとsshで接続できなくなるので大変)

$ sudo ufw  allow 22
 そのほか80(http)  443(ssl)など必要に応じて開放
  ルールはufwを停止したりサーバーをシャットダウンしても消えない

(4)有効化(ufwの起動)

$ sudo ufw  enable
サーバーを再起動しても有効のままになっている

既にufwが動作しているときはreloadを使う
$ sudo ufw  reload

(5)状態の確認

$ sudo ufw status

(6)ルールの消去  例えば80番ポートのルールを消去するには

$ sudo ufw delete allow 80

(7)ufwの停止(off)

$ sudo ufw disable

4  webサーバ h2oの設定

 taskselでwebサーバをインストールするとapache2がインストールされる。
 apache2をアンインストールしてもっと軽いh2oをインストールする。
 以下の手順で設定していく.
 (1)〜(3)は、同じページ

(1)/home/karappi /public_htmlをwebページのドキュメントルートにする

(2)cgiを動かす

(3)basic認証にする

(4)letsencrypt でSSL化する

 

5 muninの導入

  muninで サーバー状況の把握ができる

6 namazuで全文検索

  namazu