他の人が設定したサーバーを使用しています。サーバーはApache / 2.0.59(httpd)を実行しているCentOS 4.6です。ポート8443にアップデートサービスが設定されています。動作していることを知っていますが、誰かがそのポートにアクセスするときにApacheがどのファイルを提供しているかを知る必要があります。
httpd.confファイルに内容があるかどうか調べましたが、何もありませんでした。を試しましたが、nmap
現在開いているポートのみが表示されます。出力はnmap
次のとおりです
8443/tcp open https-alt
それでは、誰かがそのポートに接続したときにどのファイルが提供されたのかをどうやって知ることができますか?
答え1
スイッチを使用すると、設定のhttpd
場所を表示してその設定ファイルを見つけることができます-V
。
$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built: Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, 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="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
このコマンドを使用して、lsof
Unixプロセスがどのファイルにアクセスしているかを確認することもできます。私のバージョンはhttpd
ストックポート80を使用していたので、あなたの場合は80を8443に変更してください!
$ netstat -tapn|grep ::80
tcp 0 0 :::80 :::* LISTEN 5338/httpd
これで、lsof
次のコマンドを実行してログファイルが記録されている場所を確認できます。
$ lsof -p 5338|grep log
httpd 5338 root mem REG 253,0 10440 3141 /usr/lib64/httpd/modules/mod_logio.so
httpd 5338 root mem REG 253,0 27200 3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd 5338 root 2w REG 253,0 2014 395029 /var/log/httpd/error_log
httpd 5338 root 7w REG 253,0 4140 394789 /var/log/httpd/access_log
access_log
設定ファイルの場所を確認し、それを確認して「ディレクトリ」および「場所」ディレクティブを確認できる必要があります。これらの仕様は、ファイルを提供するときに使用するローカルディレクトリをApacheに伝えます。
何をすべきか?
access_log
次に、サーバーへのアクセスに対応するエントリがあることを再確認します。つまり、サーバーをナビゲートすると、次のファイルhttp://www.somedom.com/somefile
に記録されたこのアクセスを表示できます。access_log
192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
ファイルはどこにありますか?
私たちが得た上記の知識を持って、次のように適用を始めることができます。
このビットは、httpd -V
Apacheの根について教えてくれます。
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
したがって、私たちは基本的な設定ファイルがここにあることを知っています。/etc/httpd/conf/httpd.conf
したがって、そのファイルの次の行を見てください。
$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
<Directory "/var/www/error">
今これが私たちがいるディレクトリであることがわかりましたaccess_log
。次に、そのファイルを探して、DocumentRoot
この場所にない場合は、次に出力で上記のディレクトリに集中します。Directories
somefile
Include
grep
/etc/httpd/conf.d/*.conf
これらのファイルはApacheで使用される追加の設定なので、これらのファイルを表示するにはこれらの手順を繰り返す必要がありますgrep
。
答え2
あなたは試すことができます
# netstat -ntaupe | grep 8443