ブログ

Blog

rootを越えろ!スルーされがちなSELinuxの秘密-後編-

rootを越えろ!スルーされがちなSELinuxの秘密-後編-

みなさん、こんにちは。えんピぐらしです。それでは前回の続きです。

rootを越えろ!スルーされがちなSELinuxの秘密-前編-rootを越えろ!スルーされがちなSELinuxの秘密-前編-

今回はSELinuxが動くところを見ていきます。
「SELinuxが動く」ということは、設定変更した箇所が実際にSELinuxによってブロックされるということです。どうやってブロックされるかはログで確認します。
なお、SELinuxの概念については、参考サイトに詳しく書かれていますのでこの記事では省きます。ご了承下さい。

rootを越えろ!スルーされがちなSELinuxの秘密-後編-

環境

OS:CentOS 6.8
インストールしたrpm(依存パッケージは除く):
httpd-2.2.15-54……Webサーバ
setroubleshoot-server-3.0.47-12……SELinuxのトラブルシュート

SELinuxの動作を確認してみよう

今回やってみるのは「Apacheのポート番号を変更する」です。
ApacheはWebサーバの一つで、デフォルトの設定は80番ポートで公開されています。この番号を変更すると、SELinuxがセキュリティ違反と見なして動作します。

SELinuxの設定が「enforcing」であることの確認

最初にSELinuxが有効になっていることを確認します。

SELinuxの設定が「enforcing」であることの確認※クリックで拡大

Apacheのポート番号変更

/etc/httpd/conf/httpd.confファイルの以下の行を変更します。

Listen 80

Listen 82

Apacheを再起動

「service httpd restart」コマンドで再起動すると、エラーがコマンドライン上で発生します。

Apacheを再起動※クリックで拡大

早速ログで確認していきましょう。

「/var/log/audit/audit.log」で先頭がtype=AVCとなっているのが、SELinuxでエラーを検知した部分です。

/var/log/audit/audit.log※クリックで拡大

audit.logからは、82番ポートでdeniedになっていることが確認できますね。

また、setroubleshoot-serverをインストールしていると、/var/log/messagesにもログが出力されます。
CentOS 6では以下のようなログが出力されます。

CentOS 6のログ※クリックで拡大

ログに従ってsealertコマンドを実行することでトラブルシュートするべき手順を確認します。

出力結果の3行目以降からを抜粋します。

sealertコマンド※クリックで拡大

「semanage port -a -t PORT_TYPE -p tcp 82」が問題を解決するべきコマンドとなります。このコマンドを実行することで、82番ポートを設定してもセキュリティ違反となりません。
PORT_TYPEは以下の中から選びますが、今回は「http_port_t」が一番合っていそうなので、そちらを選択します。

jboss_messaging_port_t, jboss_management_port_t, ntop_port_t, http_cache_port_t, http_port_t, puppet_port_t.

実際に実行してみましょう

semanage port -a -t PORT_TYPE -p tcp 82実行※クリックで拡大

Apacheを再起動

Apacheを再起動※クリックで拡大

今度はエラーになりませんでした。

因みに80以外には、8080と81に設定してもエラーにならないことを確認しました。
経験則ではありますが、Webサーバで使われるようなポート番号になります。

このように、SELinuxが有効になっているシステムでは、必要な設定を少しずつ外していき、エラーを取り除きます。
めんどくさいと思われるかもしれませんが、セキュリティの穴を防ぐ、確実な方法です。

締めの一言

最後までお読み頂いてありがとうございました。

SELinuxだけ設定していればいいかというと、全ての問題が解決するわけではありません。DoS攻撃は防げませんし、パスワードが流出してしまえば不正な操作を許してしまいます。
(そもそも全て解決するのであれば、もっと導入されているはずですし……)

セキュリティの高いシステムを作ることはとても大変で、構築や運用に多大な労力がかかりますが、非常に大事なことですね。

それでは締めの一言です。

一度でいいから見てみたい、
SELinux動くとこ

以上、ありがとうございました〜

参考資料

「SELinuxのせいで動かない」撲滅ガイド

LinuxをセキュアにするSELinuxとはどんなもの?

  • SNS
  • 投稿日
  • カテゴリー

    BTM Useful