シンボリックリンク攻撃を防ぐための Apache HTTPD モジュールの解説はこちら: Apache HTTPD: mod_allowfileowner https://fumiyas.github.io/apache/mod-allowfileowner.html 背景 ロリポップの共有 Web サービス下のサイト改ざん事件で、 攻撃手法の一つとして 「他ユーザー所有のファイルへのシンボリックリンクを自分のコンテンツディレクトリ下に作り、Apache HTTPD 経由でアクセスする」手順が利用されたらしい。 参考: http://blog.tokumaru.org/2013/09/symlink-attack.html 当社サービス「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について http://lolipop.jp/info/news/4149/#090
エンジニアならウェブサーバーのひとつでも自腹で立てて運用すべき理由と、サーバー環境の選び方 2013-08-26 なんかスイッチが入ったので書いてみる。 目次 技術的なレイヤーは掘り下げるべきなので、ソフトウェア・エンジニアだってサーバー運用は経験すべき ウェブ系のソフトウェアエンジニアを職業としているのであれば、ウェブサーバーのひとつやふたつは自腹で立てて、実際に運用したほうがいい。 なぜかというと、技術的な仕事にはなんでもあてはまることなんだけど、技術的なレイヤーを掘り下げることには大きな意味がある。他にもやったほうがいいことは多々あるにせよ、レイヤーの掘り下げは特に重要だ。 ウェブ系ソフトウェアエンジニアであれば、仕事で使っているサーバーや言語を支えているOSレイヤーやミドルウェアのレイヤーが、どうセットアップされて、どう管理されているのか、知っているのと知っていないのでは、ソフトウ
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでのApache2.2系以前でのアクセス制御の書き方は賛否両論でした。僕はあまり好きじゃありませんでした。 過去のアクセス制御に関しては、以下の記事がとてもわかりやすくまとめられていると思います。 こせきの技術日記 – Apacheのアクセス制御をちゃんと理解する。 ここで、以下のように言及されています。 こんなバッドノウハウ、本当はどうでもいいと思う。Apache 3.0では、かっこいいDSL(VCL)で書けるようにする構想があるらしいのでがんばってほしい。 ということで、2.4系ではDSLとはいかないまでも、Require*というディレクティブを使ったモダンな書き方ができるようになったので、それを2.2系以前のアクセス制御の記述と比
ここ数年のデータ解析の重要性の高まりから、ログに関するソリューションが方々で活発に探求されている昨今でございます。ウェブサーバーの単純なアクセスログをそのまま保存するではなく追加情報を添加してみたり、あるいはアプリケーションから直接ログを吐いてそれらをデータウェアに投げ込んで・・・というのも当然のように行うようになりましたね。 しかしあまり自由度のない access_log の combined フォーマット。さてどうしたもんか・・・ ここで id:stanaka の登場です。 Labeled Tab Separated Valueというのは、はてなで使っているログフォーマットのことで、広く使われているTSV(Tab Separated Value)フォーマットにラベルを付けて扱い易くしたものです。はてなでは、もう3年以上、このフォーマットでログを残していて、one-linerからflue
どれぐらいスゴいかというと、「サーバーにインストールするだけで、あとは設定ファイルをちょちょっといじれば、かなり高速化できちゃう」というぐらいスゴいのです。しかも、どんなサイトでも、どんなCMSを使っていても「インストールするだけ」。 Webサイトを高速化すると、ユーザーに優しいし、場合によっては検索結果での順位にも良い影響が出るかもしれない……それはわかっていても、なかなか本格的にサイトを高速化するのは難しいものです。 サーバー側の高速化に加えて、HTMLのつくりや画像のファイルサイズ最適化、さらにはCSSを調整しての画像スプライト化やCSS/JSファイルの結合・最適化によるブラウザとサーバーの通信本数削減などなど、実はやらなきゃいけないことがたくさん。 グーグルの提供するmod_pagespeedは、そうしたことの、かなりの部分を自動的に行うものです。 mod_pagespeedはこん
CSS や JavaScript ファイルなどを gzip 圧縮して転送量の削減や Web サイト表示速度の向上を実現する方法を解説。既存 Web サイトのソースには一切手を加えない方法でまとめています。おまけでキャッシュ関連の記述もあり。 いや、1バイトの無駄もゆるせねぇんだよとか、難読化したいとかなら別にやればいいんですけど、CSS や JavaScript ファイルの改行やスペースを削除しただけでファイル容量圧縮、読み込み速ーい的なこという人がいるので今さらですが書いてみます。すでに色々なところで書かれてるのでかぶるのは承知の上で。 改行や無駄なスペースなどを削除すること自体が悪いと言ってるわけではありませんのでその辺は誤解ないようにお願いします。ただ、gzip 使って圧縮するのに比べたら、改行削除して削れるファイルサイズなんて微々たるものです。もちろん、両方やれば最大限ファイルサイ
はい、これは僕がいつも良く見るApacheとNginxの性能差に見えます。大体、ApacheはNginxの75%程度の性能に落ち着きます。数十バイトの静的コンテンツに対するリクエスト処理はNginxの得意分野だと思っていたので、大体こんなものです。 そこで、真面目にevent_mpmのチューニングを行ってみました。で、幾度となくベンチを試した結果導き出した、静的コンテンツに対する同時接続数100程度に対して最高のパフォーマンスを示すevent_mpmの設定は以下のようになりました。 [program lang=’apache’ escaped=’true’] StartServers 4 MinSpareThreads 4 MaxSpareThreads 4 ThreadsPerChild 2 MaxRequestWorkers 2 MaxConnectionsPerChild 0 [/p
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といいつつも、そこまで大したことはしていない。 luaという高速に動作する組み込み系のスクリプト言語で遊んでみたかったのと、それだったmod_luaで遊んでみればいいなと思っただけである。で、実際にmod_luaをコンパイルして遊んでみた。コンパイルオプションは以下。 ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-modules=all --enable-mods-shared=all --enable-mpms-shared='prefork worker event' -
リキッドデザインとかレスポンシブウェブデザイン流行ってるけどやっぱりPC,スマートフォン,携帯(ガラケー)は別に別にコンテンツ用意したほうが良い時もありますよね。 でも「SEOとか考えると…」「URLがばらばらになっちゃって…」なんてお客様のお悩みを解決する為にいまさら感がすごいですが魔法の設定をご用意いたしました! apacheの設定を書き換えよう httpd.confで以下を書くだけでOKです。 virtualhostとかしてるときは適切に気書き換えてね。 ##################################################################### #(C)makoto@2ch.to LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module mod
リバースプロキシ/ロードバランサ配下のApache HTTP Server(以降、単にhttpdと記す)ではmod_rpafというモジュールを使用すると、アクセス元のIPアドレスを正しく取得して、そのIPアドレスでログに出力したり、アクセス制御を行ったりすることができるようになります。 今回の記事の前半ではこのmod_rpafについてインストール方法や設定方法について説明します。 後半ではmod_rpafを使ってもアクセス制御ができない問題が発生して、それを解決した経緯などを紹介します。具体的にはロードバランサとしてAmazon Elastic Load Balancingを、プロキシサーバとしてnginxを、バックエンドサーバとしてAmazon Linux 2011.09のhttpdを使ったときにアクセス元IPアドレスによるアクセス制御がうまくできない問題が発生しました。このあたりにご興
いつの間にかさくらのVPSの標準OSがCentOS6になってたので設定を見直してみました。 月額980円/月から利用でき、2週間のお試し期間もあるのでこれを機会にサーバ設定に足を踏み入れてみてはどうでしょう? 慣れると10分くらいでウェブサーバが立ち上げれるようになります。 すみません。こんなに多くの人が見てると思わなかったんです。 お一人様サーバ向けのつもりで書いてます。 タイトルもタグもネタだったのにツッコまれまくりで恥ずかしい… 公開鍵登録しよう どうせ自分しか触らないなしrootで作業しちゃってもいいんじゃない? リブート(またはsshのrestart)以降秘密鍵がないとsshでログイン出来なくなるので気をつけてください。 mkdir ~/.ssh/ touch ~/.ssh/authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/au
Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Expressions http://httpd.apache.org/docs/2.4/en/expr.html やSetEnvIfExpr, RewriteCond, Headerで使える評価式 の追加 http://httpd.apache.org/docs/2.4/en/mod/core.html#if ヘッダや環境変数を参照して細かい制御ができるようになったことに加え、else的なブロックを書くのに苦労したことがあるんで朗報です ErrorLogFormat http://httpd.apache.org/docs/2.4/en/mod/core.html#errorlogformat ErrorLogも書式設定できるように。 %L (L
ブログやウェブサイトのパフォーマンス改善や運営・セキュリティに役立つ「.htaccess」の設定を紹介します。 .htaccess Files for the Rest of Us [ad#ad-2] 下記は各ポイントを意訳したものです。 リダイレクトとリライト オリジナルのエラーページ 特定のリソースへのアクセス制限 特定のIPのアクセス阻止 IEのレンダリングモードの設定 有効期限を設定してトラフィックを軽減 gzip圧縮の利用 リダイレクトとリライト リダイレクト サイトを移転したなど、永続的なリダイレクトには「HTTP301リダイレクト」で設定します。 転送先のURLは絶対URLで指定します。 Redirect 301 ^old\.html$ http://ドメイン/new.html リライト リライト(書き換え)をする場合は、下記のようになります。 RewriteEngine o
僕のところに、毎月1,2件必ず寄せられる質問があります。 それは、「wwwあり」のURLと「wwwなし」のURLに関する質問です。 もう少し正確に言うと、「wwwあり」と「wwwなし」の統合です。 同じコンテンツを示すURLが、「http://www.example.com/」と「http://example.com/」のように、2つに分かれてしまっている場合があります。 人間にとっては同じでも、検索エンジンにとってはまったく別のページになります。 被リンクが両方に張られていたら分散してしまうし、それよりもなによりも異なるURLで同じコンテンツなので、複製コンテンツとしてマークされてしまう危険も付きまといます。 本来ならサイトの構築を始める前に、「wwwあり」で運用するのか、「wwwなし」で運用するのか決めるべきですが、何らかの事情で分かれてしまっていることもあるでしょう。 そこで、「ww
ツイッターで「Apacheログをtail中にステータスコード部分だけに色つけしたい」ってのを見たので作ってみた。 #!/bin/sed -f ## MEMO # [0m reset # [1m bold # [3m italic # [4m underline # [5m blink # [30m black # [31m red # [32m green # [33m yellow # [34m blue # [35m magenta # [36m cyan # [37m white s/\(HTTP\/1..\"\) \(2[0-9][0-9]\) /\1 \x1b[34m\2\x1b[0m / s/\(HTTP\/1..\"\) \(3[0-9][0-9]\) /\1 \x1b[32m\2\x1b[0m / s/\(HTTP\/1..\"\) \(4[0-9][0-9]\) /\1
nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く