• ベストアンサー

Apacheをroot以外の権限で動かしたいのですが、可能でしょうか。

Apacheをroot以外の権限で動かしたいのですが、可能でしょうか。 (BOF対策です。) 現在、CentOS 5.4を使用しており、root以外のユーザでapacheを起動すると、 Permission denied: make_sock: could not bind to address 0.0.0.0:80 とポート80に対する権限が無いと怒られてしまいます。 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#116115
noname#116115
回答No.1

ポート80を開くには root 権限が必要ですが、その後は httpd.conf の User ディレクティブと Group ディレクティブに指定された権限で動作します。 これが気に入らないという話であれば、8080など1024番以上のポートで起動して、iptables で80番宛をフォワードする方法もありますよ。 そもそもBOF対策として意味はあるのか? という根本的な問題はありますが・・・

pokapoka1980
質問者

お礼

ありがとうございました。 BOFによるスタック破壊からの不正コードの実行が行われた際、実行時点でapacheが持っている権限以上にはなれない(apacheのプログラムの一部として動作する)ため、実行できるコードが制限され、被害を最小化できる、ということです。

関連するQ&A

  • PHP

    CentOS6でアパッチを起動しようとすると ルート権限で service httpd start コマンド打つと Permission denied: make_sock: could not bind to address [::]:18080 とでて失敗します。 なぜでしょうか?

  • fedora core1にapache

    apacheをインストール後、ブラウザでテストすると port80 だけ動きません。 cat /opt/apache/logs/error_log | more をチェックすると すでに80は使われているみたいなのですが、 [Fri May 21 19:08:46 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80 どうしたらいいでしょうか? 改善策をアドバイスお願いします。

  • Apache起動エラー

    Apacheを起動したときに「通常、各ソケット アドレスに対してプロトコル、ネットワークアドレス、または、ポートのどれか1つのみをしようできます。:make_sock:could not bind to address 0.0.0.0:80 no sockets available,shutting down Unable to open logs・・・ 」といったメッセージが出て起動しません。どのようにすればよろしいでしょうか。よろしくお願いいたします。

  • アパッチ2.2.11が起動しません。

    アパッチ2.2.11が起動しません。 XAMPP version 1.7.1を導入しています。アパッチがなぜか起動しなくなりました。 ポート80はfreeです。 MySqlは通常通り軌道します。 apache_start.batを実行すると、 「要求したアドレスのコンテキストが無効です。:make_sock:could not bind to address 12.34.56.78:81 no listening sockets available,shutting down Unableto open logs Apache nicht gestartet werden Apache could not be started」 とでます。解決方法がありましたら、ご教授下さい。 windows7 32bitを使用しております。

    • ベストアンサー
    • PHP
  • apacheのポートが使用されている?

    httpd startのコマンドを打って : (99)Cannot assign requested address: make_sock: could not bind to address 192.168.100.146:80 no listening sockets available, shutting down Unable to open logs この様なエラーが出てしまいました。80番のポートが使用されているらしいです。 それで "lsof -i:80"を打ったところ [root@kishimoto conf]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME firefox-b 3025 root 37u IPv4 23932 TCP 192.168.100.163:39713->64.233.189.104:http (CLOSE_WAIT) と出ました。"firefox-b"が80番のポートを使用しているみたいです。   ここで質問なのですが、"firefox-b"を移動させるにはどうしたらよろしいですか?それかapacheを別のポートに移動させる方法も可能なのですか? 以上です、ご協力よろしくお願いします。

  • 自宅サーバー構築でのapache設定

    dell x300 XPpro 無線LANです。ルータは、NEC Aterm WR6600Hです。 自宅サーバー構築でapacheをインストールして、start→apache →control apache server →startとすると 「(OS 10043)通常各ソケットアドレスに対してプロトコル、ネットワークアドレス、またはポートのどれか1つのみに使用できます。:make_sock:could not bind to address 0.0.0.80」のエラーがでます。サーバのipは、192.168.0.10です。IE6でhttp://127.0.0.1にすると説明書にある画面は出ず、It start!の画面が出ます。 80ポートの設定が悪いと思うのですが、ルータを見ても分かりません。 どなたか、対策をお教え下さい。

  • ファイルの実行権限について

    はじめまして、今回phpに携わる事になりましたが 今回の質問がphpの問題なのか、環境の問題なのかは分かりませんが ご教授を受けたくて投稿する事にしました。 まず環境ですがFreeBSD上にphpファイルがあり TeraTerm上で、そのphpファイルの所有者をrootユーザに変更しまして root権限で実行したところPermission deniedとなり 実行出来ませんでした。 (phpファイル自体のパーミッションは755です) 環境の問題で発生するのかスクリプトの問題で発生するのかが 私には分かっていないのですが、Permission deniedが 発生する原因としてファイルのパーミッション以外に 何が考えられるのかご教授下さい。 よろしくお願い致します。

    • 締切済み
    • PHP
  • Apacheがインストールできない

    OSはWindowsXPを使っています。 インストールしようとしているバージョンは2.0.45です。 インストール中にコマンドプロンプトが立ち上がって「(OS 10048)通常、各ソケットアドレスに対してプロトコル、ネットワークアドレス、またはポートのどれか1つのみを使用できます。: make_sock : could not bind to address 0.0.0.0:80 no listening sockets available, shutting down. Unable to open logs」というエラーが出てから「[error] (OS 2)指定されたファイルが見つかりません。: No installed service named "Apache2"」というエラーが出ます。 他にもバージョン2.0.50や2.0.54などをインストールしてみたのですが同じエラーが出ました。 ちなみにバージョン1.3.33のApacheはインストールできました。 どれもWindowsインストーラパッケージでインストールしているのですが…

  • グローバルIP一つ(固定)でのWeb公開

    今回、プロバイダーのコース変更をしグローバルIDを一つ固定でもらいました。 そこで試しにWebを公開したいと思いアパッチをインストールしました。 OSはTurboLinux6.0です。 とりあえず、LAN内ではアクセスすることできました。 しかし、他のプロバイダーからアクセスするとできません。ログを見てみると下記のようなメッセージが残っています。 98)Address already in use: make_sock: could not bind to port 80 これって、ポート80が使えません。っていうことですよね。 っていうことはWebを公開するためのポートを80以外にすればいいのでしょうか?

  • Apache(Webが見れない)

    LinuxES3にApache1.3.34を入れました。 エラーログを見ると Permission denied: access to /ante.htm failed because search permissions are missing on a component of the path とでます。 httpd.confでDocumentrootも設定しました。 エラーログよりパーミッションなのですが実際ドキュメントルートに挙げるユーザはローカルユーザです。 root権限じゃいけないのでしょうか? またどういった設定で回避可能でしょうか? よろしくお願いします。