Technical Notes
テクニカルノーツ
WEBサーバを構築してみた
Centos6 でWEBサーバを構築してみた。
yumでインストールするのは簡単ですが、今回は少しセキュリティ面を考慮したインストールと設定について記載します。
Apacheは、時々脆弱性等がみつかりバージョンアップします。標準リポジトリでインストールすると、現時点ではバージョン「2.2.15-29」が入りますがこれは少し古いものです。 セキュリティ対策の入ったなるべく新しい物をインストールするために、CentALTリポジトリを使用してApacheをインストールします。
CentALTリポジトリの追加
#rpm -ihv http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm
Apacheのインストール
#yum install httpd httpd-devel #httpd -version Server version: Apache/2.2.26 (Unix)
現時点(2014-03-14)では、バージョン「2.2.26」 がインストールされました。
リポジトリの優先順位設定
このままだと、他の物をインストールする際もCentALTリポジトリを使用してしまうので、「yum-plugin-priorities」をインストールして標準リポジトリが優先されてインストールされるようにします。
yum install yum-plugin-priorities
標準リポジトリ設定ファイルを修正します
すべてのセクションに「priority=1 」を追記します。
#vi /etc/yum.repos.d/CentOS-Base.repo [base] ... priority=1 #←追加 [updates] ... priority=1 #←追加 [extras] ... priority=1 #←追加 [centosplus] ... priority=1 #←追加 [contrib] ... priority=1 #←追加
その他Apacheの設定
TRACEメソッドを無効にする
「Cross Site Tracing」の脆弱性があり、TRACEメソッドが有効だとBasic 認証のパスワードが盗まれたりします。TRACEメソッドを使用する予定がないので無効にしておきます。
#vi /etc/httpd/conf/httpd.conf TraceEnable Off #←追加
以下のようにtelnetで無効になっているか確認が出来ます。
# telnet localhost 80 Trying ::1... Connected to localhost. Escape character is '^]'. OPTIONS / HTTP/1.0 ← #入力してエンター HTTP/1.1 200 OK Date: Fri, 14 Mar 2014 01:23:39 GMT Server: Apache Allow: GET,HEAD,POST,OPTIONS ← #ここに[TRACE]が無ければOK Content-Length: 0 Connection: close Content-Type: text/html; charset=UTF-8 Connection closed by foreign host.
エラー画面等のOS、Apacheバージョンを非表示にする
攻撃者に対して余計な情報を与えることになるので非表示にしておきます。
#vi /etc/httpd/conf/httpd.conf #ServerTokens OS ServerTokens Prod
↓こうなります。
※「Apache Server」の表示を外すには、ソースからのインストールでオプション指定が必要なようです。ソースからインストールするとyum管理から外れる、アップデートや再インストール必要な場合の対応が大変なので、今回はCentALTリポジトリでインストールしてます。
以上