話題のさくらのVPSを借りた。すでにレビューや初期設定に関する情報は他にたくさんあるので、ここでは少々マニアック(?)な話題を。 KVMならディスクやNICはvirtioだとおもったら、ここは完全仮想化(ゲストの汎用性を考えて?)。 さて、せっかくCentOS5で完全仮想化なのに、SELinuxが無効化されているのはもったいない。 SSHのアクセス制限等の基本的な設定が終わってから、すぐにSELinuxを有効にすることにした。 まず、初期状態でもラベルはある程度ついているが、怪しいのでこれは再ラベル必要か。 (省略) ということで、次回起動時にラベルの再付与できるように。 (省略) その際はPermissiveモードで起動できるように、/etc/selinux/configを書き換えておく。 (省略) 再起動すると起動中にラベルが再付与される。コントロールパネルのリモートコンソールで次のようなメッセージを確認。 (省略) ログインしてPermissiveモードになっていることを確認。 (省略) 続いて、SSHのポートを変えてみよう。安全にSSHを使うために、接続元の制限や公開鍵認証をするのは当然として、あわせてポートも変えておきたい。このようなサービスのポートを変更するのはSELinuxのポリシに違反するので、対応が必要。例として10022番ポートにする(本当はもっとわかりにくいものを設定している)。これで /etc/ssh/sshd_configでポートを変更してもsshdを立ち上げることができる。 (省略) sermanageコマンドでssh_port_tタイプのポートで10022が追加されていることを確認。 (省略) さくらのVPSでは標準ではauditdが起動していないので、SELinuxに関するログは /var/log/messagesやdmesgで確認ができる。ログを確認して問題がないようであれば、Enforcingモードに切り替える。 (省略) 起動時にEnforcingモードとなるように、/etc/selinux/configも書き換える。 (省略) これで再起動して動作に問題がなければOK。さくらのVPSの場合、リモートコンソールがあるので、万一SELinuxの設定をミスして起動できなくなっても安心(GRUBでenforcing=0すればよい)。 SELinuxを有効にしたからセキュリティは万全というわけでもないし、運用も面倒だったりするのだけど、何もしないよりは安心できる気がする。 自分が設定したサーバを他人へ提供する場合、SELinuxの運用は難しい。例えば、初期状態ではWebアプリケーションがDBに接続したり、ネットワークを介して外部へ接続することすらできない。かといって、httpd_tに対して何でも許可してしまうと、SELinuxを有効にしている意味が薄れるので、ユーザが何をしたいのかをすべて把握する必要がある。それに対して、自分が使うサーバであれば、好きなように設定ができる。 わからずにSELinuxを有効にしていると「ホームディレクトリから移動したファイルがApacheで表示できない」「ポートを変更したらサービスが起動しない」「DocumentRootを変更したらApacheが起動しない」「FTPでファイルが転送できない」なんてことになるので、SELinuxが悪者扱いされることが多いのは残念。
2010-09-14 16:54,server
※携帯電話版では画像および一部の書式、情報などを省略しています。PC版のご案内