ネットワークに接続されたコンピュータを保護することは、果てしなく続く挑戦と言える--これはLinuxとて例外ではない。そこで本記事では、Linuxマシンのセキュリティ強化に役立てることのできるシンプルな対策を紹介している。
何だって?Linuxマシンを使っているからセキュリティに関しては何もしなくてもいいって?そんなことを言っている人は考えを改めるべきだろう。LinuxというOSはネットワークに接続することを前提にして開発されているため、セキュリティについては格別の配慮が必要になるのである。Linuxがインストール直後の状態でもそれなりにセキュアなことは確かであるものの、ただ起動しただけで100%セキュアな状態だと言えるOSなど「この世には存在しない」のだ。以下に、Linuxのセキュリティを強化するための重要なティップスを紹介する。
#1:キーリングを使用する
多くの人は、マシンを起動してネットワーク(LDAPサーバなど)に接続しようとした際に要求される、キーリングのパスワード入力を面倒に感じているはずだ。このため、パスワードを設定せず、暗号化されていない情報(パスワードも含む)が送信されることになるという警告を無視することで、実質的にこの機能を無効化しておきたいと考える人もいるだろう。しかし、それは良い考えとは言えない。面倒に感じられるかもしれないが、この機能が搭載されているのにはちゃんとした理由がある--つまり、ネットワークを介して秘密のパスワードを送信する際に、それを暗号化するためなのである。
#2:ユーザーパスワードの更新を強制する
マルチユーザー環境(Linuxでは当たり前のことである)を構築している場合、ユーザーのパスワードを定期的に変更させるようにしておくべきだろう。これには「chage」コマンドを使用することになる。あるユーザーのパスワード有効期限を表示させたい場合、「sudo chage -l ユーザー名」というコマンドを使用することになる。また、あるユーザーのパスワードを有効期限切れの状態にし、次回ログイン時にパスワードを変更させたい場合、「sudo chage -E パスワードの有効期限となる日付 -m パスワード変更ができない日数 -M パスワードの有効日数 -I パスワードの有効期限が切れてからアカウントを使用不能にするまでの日数 -W パスワードの有効期限が切れる何日前から警告するか」というコマンドを用いることができる。このコマンドの詳細については、manページを参照(「man chage」コマンドを実行)してもらいたい。
#3:熟慮することなしにSELinuxを無効化しない
キーリングの場合と同様に、SELinuxが存在しているのにもちゃんとした理由がある。「SE」はSecurity Enhanced(セキュリティ強化)の略であり、これによってアプリケーションへのアクセスをコントロールする仕組みが提供されるようになる。筆者は、さまざまな「問題を解決する手法」としてSELinuxの無効化を勧める文書を数多く目にしてきている。しかし、熟慮することなく、SELinuxの無効化を解決策として実践していると、より大きな、そしてより厄介な問題が引き起こされることになるだろう。プログラムが適切に稼働しないという場合、SELinuxを無効化するのではなく、SELinuxのポリシーをあなたのニーズに沿うように修正することを検討してほしい。コマンドラインからこういった作業を行いたくない場合、「polgengui」というGUIツールを検討してみることをお勧めする。