Debian 11 (bulleye)を使ってサーバを構築した際のメモ。
- Debian 11 (bullseye) リリースノート (64 ビット PC 用)(2021年9月21日時点は11.0.0)
- 第5章 buster で注意すべき点
バージョンの確認方法
$ 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の設定を参考に変更する。
使わないポートを閉じる
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