0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

不要になったPCで自宅サーバを構築してみた(設定編)

Posted at

サマリー

自宅で不要になったPCがあったので、お手軽に計算や情報収集用途に自宅サーバを構築してみました。
セキュリティの知識に不安があったので、グローバルには公開せず、ローカルサーバとして稼働させています。

今回実行したのは、以下のとおりです。

  1. Laptop PCにUbuntuをインストール(本稿では割愛)
  2. スリープにならないように設定
  3. いつものPCからssh接続できるように設定
  4. FireWallの設定

1. Ubuntuのインストール

Ubuntuのインストールは手順を残していないので本稿では割愛します。
サーバーを更新したら作成します!
参考にしたのは以下

ゼロから Mini-PC にUbuntu22.04.4 をインストールする方法

2.スリープにならないように設定

今回私はLaptopPCをサーバにするので、閉じた状態で運用したいと考えていました。

2-1.閉じた状態でスリープにならないように設定

logind.confを開きHandleLidSwitchをignoreに設定

vi /etc/systemd/logind.conf
logind.conf
HandleLidSwitch=ignore

2-2.時間経過でスリープにならないように設定

99-local-settingsを開き、sleep-inactive-ac-timeoutsleep-inactive-battery-timeoutの2つを0に設定

vi /usr/share/gdm/dconf/99-local-settings
99-local-settings
[org / gnome / settings-daemon / plugins / power]
sleep-inactive-ac-timeout = 0
sleep-inactive-battery-timeout = 0

2-3.systemd-logindサービスを再起動

systemctl restart systemd-logind.service

3.いつものPCからssh接続できるように設定(ssh接続の設定)

ホストPCで実行する設定

いつも使用しているPC(以降、クライアントPC)からアクセスするためにsshの設定を行います。

3-1.openssh-serverのインストール

sudo apt-get install openssh-server

3-2.sshd_config.orgのバックアップを作成

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

3-3.sshd_config.orgの編集(ssh-key作成までのログイン設定)

ssh-keyを作成してしようするまでにクライアントからログインできるように設定します。

sudo vi /etc/ssh/sshd_config
sshd_config
Port 22
PasswordAuthentication yes
PermitRootLogin yes

クライアントPCでの設定

3-4.クライアントでssh-keyの作成とサーバへのコピー

ssh認証に使用するssh-keyを作成します。今回カギの名前はubuntu-localとしました。

以下のusernameはubuntuで設定したユーザ名です。
usernameはubuntu(ホストPC)でwhoamiと入力して出てきます。

サーバのローカルIPが不明な場合は、ホストPCでip addr showを入力すると出力されます。
色々表示されますが、inet 192.168.0.10のように192.168.x.xとなると思います。

cd ~/.ssh
ssh-keygen -t ed25519
scp ~/.ssh/ubuntu-local.pub username@server-ip:~/.ssh/ubuntu-local.pub
# username、server-ip、key名はご自身の環境に合わせて変更してください
# 私の環境の例は以下
# scp ~/.ssh/ubuntu-local.pub meer@192.168.0.10:~/.ssh/ubuntu-local.pub

3-5.ssh-keyの公開鍵をauthorized_keysに追加

コピーが完了したらクライアントPCからホストPCへsshで接続します。
サーバのローカルIPが不明な場合は、ホストPCでip addr showを入力すると出力されます。
色々表示されますが、inet 192.168.0.10のように192.168.x.xとなると思います。

ssh username@192.168.0.10

クライアントPCから接続が成功したら、先ほどコピーした公開鍵をauthorized_keyにコピーし権限の変更を行います。

cat ~/.ssh/ubuntu-local.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3-6.ssh-keyを使用したアクセスが可能かを検証

Ctrl + DでクラインアントPCに戻ります。
以下のコマンドを実行します。

ssh -i ~/.ssh/ubuntu-local username@server-ip

ホストPCに無事接続できればssh-keyの設定は完了です。

3-7.sshd_configの設定(ssh-keyを使用したログインのみにする)

6で設定したsshd_configの設定をssh-keyを使用したログインのみとするように変更します。

sudo vi /etc/ssh/sshd_config
sshd_config
PasswordAuthentication no
PermitRootLogin no

設定が完了したらssh-serverを再起動してssh接続の設定は完了です。

sudo systemctl restart sshd

4.Firewallの設定

4-1.ufwのダウンロードと有効化

Firewallを設定するためufwをダウンロードします。

sudo apt-get install ufw

4-2.ポート番号を指定してIP制限をかける

今回はクライアントPCのローカルIPを192.168.0.2に設定しました。
この設定はお使いのWiFiルータのコンソールなどから可能だと思います。

sudo ufw allow from 192.168.0.2 to any port 22

4-3. ufwを有効化

sudo ufw enable

4-4. ufwの設定を確認

ちゃんと設定されているかを確認します。

sudo ufw status verbose

私の環境では以下のように表示されました。

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    192.168.0.2

以上で、ローカル環境のubuntuサーバーの構築が完了になります。
ローカルからssh接続できるのみの設定にしているので、バッチ処理などにお使いいただけるとおもいます!
私は毎日情報収集したい項目をこちらで構築したサーバーで取得しています。

バッチサーバーの構築編
webサーバの構築編

を今後作成しようと思いますので、ぜひよろしくお願いいたします!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?