Debian 9 "Stretch" を用いたサーバ設定メモ

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

Debian 8との変更点

net-tools (ifconfig, netstatなど)ではなくiproute2 が入っているとのこと。また、GCC6になったのでカーネルのコンパイルしなおしが必要である場合がこと。

Debian stretch で提供される GNU GCC 6 コンパイラは、デフォルトですべての実行ファイルを position independent なものとしてコンパイルします。これはあらゆる種類の脆弱性に対する緩和を提供します。

残念なことに、(8.7 までの) Debian 8 での Linux カーネルは、position independent な実行ファイルとしてコンパイルされたプログラムのうちの幾つかがセグメンテーションフォルトのような、よくある問題を起こしてクラッシュする可能性がある問題がありました。この問題は 8.8 で提供される linux バージョン (3.16.43 以降) および Debian 9 でのカーネル (4.9 以降) で解決されています。

stretch へのアップグレードを開始する前に、カーネルを修正されたバージョンにアップグレードしてから再起動するのをお勧めします。Debian 8.8 以降のカーネルを稼働させている場合は、この問題の影響を受けません。

アップグレード中、影響を受けるバージョンのカーネルで稼働している場合、アップグレード直後にこの問題が直撃するのを避けるため、再起動を実行して stretch のカーネルにするのを強くお勧めします。
5.1.5. 実行ファイルはデフォルトで PIE (position independent executables) が有効でコンパイルされています

インストール

省略。

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

contoribとnon-freeを追加する。また、私はaptitudeが好きなのでインストールする。

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

セキュリティ関係の設定

そこそこセキュアなlinuxサーバーを作る - Qiitaを参考に以下を実行する。

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

passpromptを変える

まず、sudoをインストールする。

% su
# aptitude install sudo
# visudo

sudoを実行した際のパスプロンプトをそこそこセキュアなlinuxサーバーを作る - Qiitaの設定を参考に変更する。

sshdの設定の変更

/etc/ssh/sshd_configの設定をそこそこセキュアなlinuxサーバーを作る - Qiitaの設定を参考に変更する。

sshguardかfail2banを導入する

% sudo aptitude sshguard

使わないポートを閉じる

iptableを使って、使わないポートを閉じる。まず、iptables-persistentをインストールする。

% sudo aptitude  install iptables-persistent

/etc/iptablesに設置されているrules.v4を変更する。変更は以下のサイトを参考にする。

logwatchを入れる

% sudo aptitude 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 aptitude 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 aptitude install gcc g++ make autoconf m4 bison flex