メインコンテンツまでスキップ

「Apache」タグの記事が7件件あります

全てのタグを見る

Apache エラー解決法 AH00526: Syntax error ~ httpd.conf:Invalid command ' ', perhaps misspelled or defined by a module not included in the server configuration

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

表題のエラーで嵌った為、解決法を共有するもの。

事象

Apache httpdの公式Docker imageであるhttpd:2.4.46において、/usr/local/apache2/conf/httpd.confにカスタム設定を記述の上コンテナ起動した際に以下のエラーメッセージが出力しhttpdプロセスが起動せず。

Apache: ModSecurity (WAF) のインストール・設定方法 - Webアプリ脆弱性対策

· 約8分
Yu Sasaki
Enterprise Security Manager / Advisor

本記事はWAF (Web Application Firewall)ソフトでApacheモジュールの一つである、ModSecurityのインストール及び簡易的な設定方法を記載する。本運用を考慮した設定は本記事では割愛するが、必要な参考リンクは適時記載するので参照されたし。

概要 (全体像)

ModSecurity:TrustWave社がGPLv2 ライセンスのもと提供しているOSSのWAF。 ModSecurity: Open Source Web Application Firewall 下記の資料にWAFの概要からModSecurityの導入〜運用までの検討ポイントが記載されている。 IPA 独立行政法人 情報処理推進機構:Web Application Firewall 読本 OWASP Core Rule Set:OWASP(Open Web Application Security Project)がGPLv2 ライセンスのもと提供しているModSecurityのルール(シグネチャ)。 Category:OWASP ModSecurity Core Rule Set Project - OWASP Category:OWASP Best Practices: Use of Web Application Firewalls - OWASP OWASP 当サイトを含む下手なブログ記事等を参照するよりも先ずは公式と上記のリンクを読んだ方が理解が早い。

Apache: 起動エラー - Could not reliably determine the server's fully qualified domain name

· 約3分
Yu Sasaki
Enterprise Security Manager / Advisor

事象

先日CentOS (v5.5)上でApache Webサーバをインストール直後に起動・再起動したところ、下記のエラーが発生した。

# apachectl restart
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
httpd not running, trying to start

サーバのFQDNを確定できなかったと言うエラー。

Linux: Apacheの設定ファイル(httpd.conf)の検索 - BackTrack

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

BackTrack上のhttpd.confを開こうと思い、/etc/httpd/へ探しに行ったら当該ディレクトリが無いとのこと(ディストリビューションやビルド方法によってよくある。。)。そういった場合は以下のように検索する。 メニューからApacheを起動後、下記のコマンドを実行する。

コマンド

# ps -ef | grep apache ← apacheのパスを確認
# /usr/sbin/apache2 -V ← parametersを確認

実行結果

root@bt:~# ps -ef | grep apache
root 1965 1 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1969 1965 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1970 1965 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1971 1965 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1972 1965 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 1973 1965 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2015 1965 0 13:27 ? 00:00:00 /usr/sbin/apache2 -k start
root 2138 2020 0 13:55 pts/0 00:00:00 script apache_conf_path.txt
root 2139 2138 0 13:55 pts/0 00:00:00 script apache_conf_path.txt
root 2154 2140 0 13:57 pts/1 00:00:00 grep --color=auto apache
root@bt:~# /usr/sbin/apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built: Nov 18 2010 21:19:09
Server's Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
root@bt:~#

結果、設定ファイルのパスは/etc/apache2/apache2.confと分かる。

Linux: RedmineとSubversionのインストール・設定例

· 約7分
Yu Sasaki
Enterprise Security Manager / Advisor

Linux(ここではCentOS)にプロジェクト管理ソフトウェアであるRedmine 1.2.2とバージョン管理システムであるSubversionのインストール方法と設定例を以下に紹介。想定としては、WebサーバやDB以外は何も設定されていないサーバ環境を対象とした手順。すでにインストールしているものや設定済みのものは適時読み飛ばし下さい。 ※参考サイトは記事の末尾をご参照。

Apacheでよく使うコマンドと設定項目

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

設置環境はFedoraを想定。 注:ソースからインストールした場合や他の環境だと一部ファイルのパスが違うところがある。 機会があれば今後も少しずつ書き足し・修正していく。

コマンド

起動

# /etc/rc.d/init.d/httpd start または、 # service httpd start

終了

# /etc/rc.d/init.d/httpd stop または、 # service httpd stop

再起動

# /etc/rc.d/init.d/httpd restart または、 # service httpd restart

自動起動に設定

# chkconfig httpd on

自動起動の確認(Run level 3:on)

# chkconfig --list httpd

設定の反映

# /etc/rc.d/init.d/httpd reload

ディレクトリの所有者の変更

# chown <ユーザ名>. /var/www/html/

ディレクトリをApache実行ユーザに変更

# chown -R apache:apache /var/www/html/cgi-bin/

httpd.confの設定

設定ファイルhttpd.confのパス

/etc/httpd/conf/httpd.conf

外部設定ファイル*.confを置くパス

/etc/httpd/conf.d/*.conf ・起動時に読み込まれる ・AliasとDirectoryを合わせて用いる場合が多い

DocumentRoot

ルートディレクトリの設定 e.g. DocumentRoot "/var/www/html" で www.example.com/へのアクセスは/var/www/htmlのインデックスページとなる。

Alias

Alias <ドメイン以下のURLパス> <サーバ内のディレクトリパス> e.g. Alias /blog /var/www/blog の場合は、http://www.example.com/blog/にアクセスした際、サーバの/var/www/blog/内の既定のインデックスファイルが読み込まれる。

Directoryタグ

e.g.

<directory "/var/www/html">〜<directory>

属性にディレクトリパスを指定している。

.htaccessを許可する場合

AllowOverride All

IPアドレスによるアクセス制限

Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.0/24

↑はlocalhost、イントラネット以外からのアクセスを拒否

.htaccessによるパスワード認証

.htaccessファイル内の設定例

SSLRequireSSL # SSL経由のアクセス
AuthUserFile <認証するユーザリストのパス>
AuthGroupFile <パス>
AuthName "<ページ名>"
AuthType Basic # 認証タイプ
require valid-user

認証するユーザの登録

初回は # htpasswd -b -c <保存先> <ユーザ名> <パスワード> 二件目以降は既にファイルが作成されているので-cを抜く # htpasswd -b <保存先> <ユーザ名> <パスワード> ここで作成したファイルのパスを上のAuthUserFile項目に書く。