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
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)
ユーザ上のの以降に関する参考サイト
sshguardかfail2banを導入する
% sudo aptitude sshguard
自動時刻合わせ
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