heyheytower

日々のメモです。誰かのお役に立てれば幸いです。

『 Linuxサーバーセキュリティ徹底入門 ープンソースによるサーバー防衛の基本』を読んで


書名:『 Linuxサーバーセキュリティ徹底入門 ープンソースによるサーバー防衛の基本』
著者:中島 能和

感想

「サーバー公開」の前に知っておきたい

との帯コメントの通り、この書籍と別に一冊 Linux サーバ運用の書籍を合わせて読めば、設定導入、運用・監視まで、まずは "Linuxによるサービス"に入門できますね。

今まで読んだ本と内容の重複も多いですが、こういった本を多数読んで思うことは、自分が今まで実践していなかったことを、いろんな本で少しずつ埋めることが重要なのだなと思います。

この本には自分の知らなかった知識が多数ありましたし、上記のような視点でしたら入門書でも十分学ぶことができるなと思う今日この頃です。

P.41 OSやバージョンの確認

ここでは下記を実行し、apache のバージョン確認を行なっている。

telnet localhost 80
HEAD / HTTP/1.1
Host: windsor.example.com

思い当たることがあり、ついでにsquidのエラー表示時の情報抑止のためsquid でホスト名を隠蔽するを参考に行った。

postfix については、この書籍のP.285 にバナー情報抑止について記載がある。

/etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP

P.54 xinitd を使ったバックドアの例

これほど簡単に設定できることが驚きでした。

P.63 ユーザーのセキュリティ

コンソールからのrootログインを禁止します。
本書では下記コマンドが記載されています。

# echo > /etc/securetty


自分はちょっと不安だったので、下記を実行しました。
sudo mv /etc/securetty /etc/securetty.bak

※追記(2015/03/01)
 上記を実行するとログインなどに失敗した場合に
 “Couldn't open /etc/securetty: そのようなファイルやディレクトリはありません”
 が /var/log/auth.log に表示されていたので、echo の方法に変えました。

P.69 GRUB のパスワード設定

シングルユーザーモード回避のために必須ですね。
自分は以前Grub2/Passwords - Community Help Wikiを参考に"grub-mkpasswd-pbkdf2"コマンドで設定済みでした。

P.107 SUIDのファイルをリストアップ

「所有者が root で SUID が設定されているファイル」は下記で調べられます。

find / -user root -perm +4000 -ls
P.108 デフォルトのアクセス権

この書籍では CentOS での umask 設定だったので、ubuntu での設定のため、Linux|共同作業用のグループとパーミッション設定方法(UGP) | blog onkを参考に下記を実行した。

sudo echo "umask 0022" >> /etc/profile
P.170 ログの MARK

今まで rsyslogd の死活のためかと考えておりましたが、クラッカーがログを削除・すり替えた際に区別がつく、という意味をつけることもできるのですね。

早速下記を有効にしました。

$ModLoad immark # provides --MARK-- message capability

P.175 logwatch

常時稼働のサーバの場合、これは必須ですね。



以上。