自宅サーバを使用するうえで基本的な設定やアプリケーションのインストールを行います。
sudo
sudo
コマンドという一時的にrootユーザとしてコマンドを実行できるパッケージをインストールします。
sudo
を導入し、rootへログインせずにコマンドを実行できるようになります。
まずは、rootになりパッケージをインストールします。
su -
apt install -y sudo
sudo グループに自分の [ ユーザ名 ] を追加します。
gpasswd -a [ ユーザ名 ] sudo
パスワードなしでコマンドを実行できるように、自分の [ ユーザ名 ] を設定します。
echo "[ ユーザ名 ] ALL=(root) NOPASSWD:ALL" | tee /etc/sudoers.d/[ ユーザ名 ]
root をログアウトします。
exit
これで sudo
コマンドが使える状態になります。
ちなみに、Ubuntu や WSLの各ディストリビューションでは sudo コマンドはデフォルトで入っています。
パッケージソースリスト
Debian では apt というパッケージ管理システムを使用しています。
apt ではパッケージのソースリストからパッケージ情報を取得しています。
パッケージのソースリストを設定することにより色々なパッケージのダウンロードが可能になります。
ソースリストの設定を確認してみましょう。
cat /etc/apt/sources.list
デフォルトの設定では、bullseye main
と、[ コードネーム ] main
となっています。
ここに、 contrib non-free
と追記することにより、ダウンロードできるパッケージが増えます。
contrib や non-free にはフリーではないパッケージが含まれています。
たとえば、WiFiやBluetoothのドライバなどです。
contrib や non-free を含めた設定に書き換えましょう。
sudo vi /etc/apt/sources.list
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
ソースリストを変更後はソースリストを最新に更新します。
sudo apt update
ソースリストの更新により、パッケージのアップグレードが、見つかる場合があるので、アップグレードします。
sudo apt -y upgrade
基本的なパッケージ
よく使うと思われるパッケージをインストールします。
Ubuntu などではデフォルトで入っているパッケージも、Debianでは入っていない場合があります。
好みに合わせてパッケージをインストールすることをオススメします。
sudo apt install -y bash-completion curl dnsutils exim4 fonts-ipafont git imagemagick jq locales mailutils nfs-client patch rsync snmp snmpd sqlite3 sysstat tree vim wget whois zip
セキュリティ・アップデートの自動化
セキュリティのアップデートを自動に行う設定です。
インストール
sudo apt install -y unattended-upgrades
設定
sudo dpkg-reconfigure -plow unattended-upgrades
選択がでるので「はい」を選択してください。
設定
パッケージの更新があった場合、root 宛にメールを送信する設定です。
# Unattended-Upgrade::Mail
sudo sed -i 's/^\/\?\/\?Unattended-Upgrade::Mail.*/Unattended-Upgrade::Mail "root";/' /etc/apt/apt.conf.d/50unattended-upgrades
メール設定
自宅サーバから自分宛てにメールを送りたい場合があるので、メールを送信できるように設定します。
Postfix
Postfix というメールサーバをインストールします。
sudo apt install -y postfix
選択画面が出てくるので、下記を選択してください。
> インターネットサイト
メールエイリアス
メールエイリアスでメールの送信先を設定します。
メールエイリアスは /etc/aliases
で設定を行います。
cat /etc/aliases
中身を確認すると、root に送信された場合、自分宛 [ ユーザ名 ] に送信される設定が確認できます。
[ ユーザ名 ] に送られた場合、自分のメールアドレスに送信されるように設定するれば、サーバからのメールを受け取ることができます。
送信先追加
echo '[ ユーザ名 ]: [ メールアドレス ]' | sudo tee -a /etc/aliases
反映
sudo newaliases
mailname
システムがメールを送信する際に使用するデフォルトのドメイン名を設定します。
こちらは実際に存在するドメインでないと、エラーとなる設定になっています。
自分で使用しているメールアドレスのドメイン名など設定しましょう。
echo '[ ドメイン名 ]' | sudo tee /etc/mailname
Postfix の myhostname にも設定します。
# myhostname
sudo sed -i 's/^#\?myhostname.*/myhostname = [ ドメイン名 ]/' /etc/postfix/main.cf
SMTPリレー設定
一般的なプロバイダを使用している場合、OP25B(Outbound Port 25 Blocking)という、25番ポートの通信制限が行われています。
メールサーバは25番ポートを使用しメールを送信しているので、通常の設定ではメールを送信することができません。
そのため、自分自身のメールアカウントの送信サーバを利用しメールを送信させます。
もしくは、SMTPリレーサービスを使うとよいでしょう。
以下のメール送信アカウントの場合の設定例です。
host: smtp.example.com
port: 587
user: maintenance
pass: password_1234
sudo vi /etc/postfix/main.cf
mydestination = $myhostname localhost.$mydomain localhost
relayhost = [smtp.example.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
sudo vi /etc/postfix/sasl_passwd
[smtp.example.com]:587 maintenance:password_1234
sudo chmod 604 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo service postfix restart
sudo service postfix status
テストメール送信
echo "Send TEST!" | sudo sendmail root
テストメールが受信できれば設定完了です。
Docker
Dockerをインストールします。
Dockerはアプリケーションとその依存関係をコンテナと呼ばれる独立した実行環境にパッケージ化できるアプリケーションです。
サーバに直接アプリケーションをインストールすることなく、コンテナに環境を閉じ込めることができます。
必要なパッケージインストール
sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
鍵を追加
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
リポジトリを追加
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
アップデートしインストール
sudo apt update
sudo apt install -y docker-ce
docker グループに自分を追加
sudo usermod -aG docker $USER
Dockerの設定
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
ログのローテーション設定
{
"log-driver": "json-file",
"log-opts": {
"max-size": "15m",
"max-file": "5"
}
}
Node.js
Node.js をインストールします。
Node.js はJavaScriptをサーバで実行するためのアプリケーションです。
curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
sudo apt install -y nodejs
Python
Python は初めからインストールされています。
Pythonのパッケージ管理システムである、pip をインストールします。
sudo apt install -y python3 python3-pip
Vim
ホームディレクトリに .vimrc
ファイルを設定することにより、vim の設定が行えます。
vi ~/.vimrc
syntax enable
set encoding=utf-8
set number
set tabstop=4
set softtabstop=4
set expandtab
set shiftwidth=4
set backspace=indent,eol,start
set paste
再起動
色々と設定が完了したら一度再起動をするとよいでしょう。
sudo reboot
おわりに
この自宅サーバを活用して、ファイルサーバ、メディアサーバーなどをさまざまな機能を構築していってください。
コメント