Debian 11 (bulleye)を用いたサーバ設定メモ

Debian 11 (bulleye)を使ってサーバを構築した際のメモ。

バージョンの確認方法

$ more /etc/debian_version 
11.0

$ uname -a
Linux ホスト名 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux

/etc/apt/sources.list を編集する

contoribとnon-freeを追加する。

% su
# apt-get update
# apt-get upgrade

sudoのインストール

標準で入れておいて欲しいくらい。

% su
# apt install sudo
# visudo
# /usr/sbin/visudo

visudoでsudoを使えるユーザを設定する。

/etc/apt/source.listの修正

Debian Wiki: SourcesListを参考にして編集する。具体的には mainに加えて、contribとnon-freeを追加する。

% sudo cp -p /etc/apt/source.list /etc/apt/source.list.org
% sudo vi /etc/apt/source.list

ネットワークの設定

Debian 10 Buster : 初期設定 : ネットワークの設定 : Server Worldに基づいて固定IPアドレスの設定に変える。

% sudo cp -p /etc/network/interfaces /etc/network/interfaces.org
% sudo vi /etc/network/interfaces

NTFSフォーマットが読み込めるようにする

Windowsと共用で用いている外付けHDDをマウントできるようにする。カーネルイメージの作り直しが入るので要再起動。

% sudo apt install ntfs-3g
% sudo reboot 

外付けHDDをマウントする。

% sudo dmesg (外付けHDDのデバイス名を取得する。だいたい /dev/sdb や /dev/sdc)
% sudo mkdir -p /mnt/ext_hdd  (マウント用のディレクトリ作成)
% sudo mount /dev/sdb2 /mnt/ext_hdd (外付けHDDが/dev/sdbと認識されており、その2番目のパーティションにアクセスする場合)
% df -h (マウント状況を確認する)

マウントを終了する場合は以下のようにする。

% sudo umount /mnt/ext_hdd

以前のサーバからのユーザ情報の移行

以前のサーバの以下のファイルからユーザアカウント(一般的に1000番以降)をコピーする。

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow

ただし、Debian10以前からの移行には注意が必要となる。

ローカルアカウントに対して、デフォルトのパスワード暗号化が SHA-512 からyescrypt(詳細は crypt(5)) に変更されました。これにより、辞書ベースのパスワード推測攻撃に対して時間と空間計算量の観点からセキュリティの向上が期待されます。

この改善されたセキュリティ機能の利点を享受するには、ローカルパスワードを変更する必要があります。passwd コマンドを使うなどしてください。

以前のパスワードの生成にどのようなパスワードハッシュ方法で使っていたとしても、そのパスワードは使い続けられます。

yescrypt は Debian 10 (buster) ではサポートされていません。そのため、bullseye システムのshadow パスワードファイル (/etc/shadow) を buster システムにはコピーできません。これらのファイルがコピーされた場合、bullseye システム上で変更されたパスワードは buster システムでは動作しません。同様に、bullseye システムで暗号化されたパスワードは buster システムへカット&ペーストできません。
5.1.4. パスワードのハッシュ化に yescrypt がデフォルトで利用されます

以前のサーバのファイルを〜.oldとしてサーバ上にコピーしておく。

% sudo vipw (/etc/passwdを編集するためのviコマンド呼び出し)
% sudo vipw -s (/etc/shadowを編集するためのviコマンド呼び出し)
%  sudo vigr (/etc/groupを編集するためのviコマンド呼び出し)
%  sudo vigr -s (/etc/gshadowを編集するためのviコマンド呼び出し)

vi(vim)で他のファイルを挿入する場合は「: r ファイル名」とする。(参考:vi で編集中に別のファイルの内容を読み込む – DACELO SPACE
ユーザ上のの以降に関する参考サイト

セキュリティ関係の設定

https://qiita.com/cocuh/items/e7c305ccffb6841d109cを参考に以下を実行する。

  • sshでrootにlogin出来なくする
  • sshdのプロトコルを2に限定する
  • sshguardかfail2banを導入する
  • 使わないポートを閉じる
  • passpromptを変える
  • logwatchを入れる

passpromptを変える

sudoを実行した際のパスプロンプトをhttps://qiita.com/cocuh/items/e7c305ccffb6841d109cの設定を参考に変更する。

% su
# visudo

以下を加える。

Defaults passprompt = "%u@%h -> Password!!! -> "

sshdの設定の変更

/etc/ssh/sshd_configの設定をhttps://qiita.com/cocuh/items/e7c305ccffb6841d109cの設定を参考に変更する。

sshguardかfail2banを導入する

% sudo aptitude sshguard

logwatchを入れる

% sudo apt install logwatch

Debian 8 (Jessie) - ログ解析ツール logwatch インストール! - mk-mode BLOGに従い、設定ファイルを設置する。

% cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

logwatch.conf の「MailTo =」でログを送信したい宛先メールアドレスを設定する。

自動時刻合わせ

ntpdateをインストールする。

% sudo apt install ntpdate

crontabで時間合わせする。/etc/cron.weekly にスクリプトを置く。

% sudo touch /etc/cron.weekly/ntpdate.sh
% sudo chmod 755 /etc/cron.weekly/ntpdate.sh

組織内のNTPサーバがhogehoge.jpとしたとき、ntpdate.shの内容は以下の通り。

#!/bin/sh
/usr/sbin/ntpdate hogehoge.jp > /dev/null 2>&1

GCC関連のインストール

% sudo apt install gcc g++ make autoconf m4 bison flex

その他インストール

% sudo apt install -y zsh